DMIS赋值的主字为ASSIGN
不像C语言中,赋值直接变量 = 表达式子,DMIS的语法为
Varname = assign/表达式.
例如,假设之前声明过一个整型变量Tempint,赋值的语句为
Tempint = assign/50
或者表达式
Tempint = assign/25*2
或者包含其它函数的
Tempint = assign/sqrt(2500)
结果都是把50这个值赋给了变量Tempint.
例如前面声明了字符串变量Tempstr
Tempstr = assign/‘helloworld’
或者其它函数的表达式
Tempstr = assign/concat(‘hello’,‘world’) concat是字符串联接函数
运行结果,Tempstr的值为字符串helloworld.
变量赋值
变量定义后就可以给它分配数据。DMIS语言中可用于赋值的命令包括:ASSIGN、VALUE、PROMPT、READ。
注意:每执行一次赋值命令,变量中存储的原数据都会被覆盖掉。
ASSIGN语句
把数据分配给已定义的变量里,格式如下:
变量名称=ASSIGN/表达式
变量名称:一个已定义的变量名。
表达式:一个数字常量,一个字符串,一个算术表达式,一个逻辑表达式或一个内部函数。
ASSIGN语句例子
把一个变量(OldVar)里的数据拷贝到另一个变量(NewVar)里。
NewVar=ASSIGN/OldVar
如果拷贝的变量类型不同则需要添加转换函数。
DECL/LOCAL,REAL,RealVar
DECL/LOCAL,CHAR,50,CharVar
$$把实数变量转换成字符型变量
CharVar=ASSIGN/STR(RealVar)
$$把字符转换成实数
RealVar=ASSIGN/VAL(CharVar)
把数字输入变量
Number=ASSIGN/3
把字符输入变量
$$注意用单引号
CharVar=ASSIGN/’ABcd’
把数学公式的计算结果输入到变量
$$计算半径Radius的圆面积
Area=ASSIGN/3.1415*(Radius* Radius)
把逻辑判断结果输入到变量
$$如果FormVar大于0.05得到1否则得到0
OutOfTolVar=ASSIGN/(FormVar.GT.0.05)
自学习
变量数据区双击变量名称,输入数值或字符,自学习会生成赋值语句:
如果字符串赋值要写到单引号里面
如果想转换变量类型需要调用一些特殊函数,可以在变量数值输入框里右键就会弹出各种函数
OBTAIN语句
OBTAIN语句设置变量与DMIS项目的属性值相等,格式如下:
变量名称=OBTAIN/标签,序号
变量名称:已定义的变量名。
标签:元素、公差、探头。
序号:数字编号,分别代表不同的属性。
OBTAIN语句例子
将圆的理论X、Y、Z、D值输出到变量
CIR1_X = OBTAIN/F(CIR1),4
CIR1_Y = OBTAIN/F(CIR1),5
CIR1_Z = OBTAIN/F(CIR1),6
CIR1_D = OBTAIN/F(CIR1),10
拖放实际圆到实数
各元素输出项目与编号对应关系
2. 获取公差的偏差值
KNPTR1=OBTAIN/TA(TCIR1),2
获取探头数据
DECL/COMMON,REAL,ROOTSN2_A45_B45_DX
ROOTSN2_A45_B45_DX = OBTAIN/SA(ROOTSN2_A45_B45),2
DECL/COMMON,REAL,ROOTSN2_A45_B45_DY
ROOTSN2_A45_B45_DY = OBTAIN/SA(ROOTSN2_A45_B45),3
DECL/COMMON,REAL,ROOTSN2_A45_B45_DZ
ROOTSN2_A45_B45_DZ = OBTAIN/SA(ROOTSN2_A45_B45),4
DECL/COMMON,REAL,ROOTSN2_A45_B45_F
ROOTSN2_A45_B45_F = OBTAIN/SA(ROOTSN2_A45_B45),5
DECL/COMMON,REAL,ROOTSN2_A45_B45_F_1
ROOTSN2_A45_B45_F_1 = OBTAIN/SA(ROOTSN2_A45_B45),7
探头属性与序号的对应关系:
4. 获取坐标系的法矢方向
DECL/COMMON,VECTOR,CRD2_VX
KNPTR1 = OBTAIN/D(CRD2),5
KNPTR2 = OBTAIN/D(CRD2),6
KNPTR3 = OBTAIN/D(CRD2),7
CRD2_VX = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
DECL/COMMON,VECTOR,CRD2_VY
KNPTR1 = OBTAIN/D(CRD2),8
KNPTR2 = OBTAIN/D(CRD2),9
KNPTR3 = OBTAIN/D(CRD2),10
CRD2_VY = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
DECL/COMMON,VECTOR,CRD2_VZ
KNPTR1 = OBTAIN/D(CRD2),11
KNPTR2 = OBTAIN/D(CRD2),12
KNPTR3 = OBTAIN/D(CRD2),13
CRD2_VZ = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
PROMPT语句
Prompt语句可以弹出一个用户自定义的对话框,里面有多种控件(包含:按钮、下拉列表、输入框、文本框、复选框),通过对控件的操作如点击或编辑实现将参数输入DMIS程序的目的。
Prompt语句例子
输入数据
KNPTR1 = PROMPT/‘请输入数值:’, 1000.000000, -1000.000000
变量名称右键,输入各参数后点击确认后生成自学习语句
运行语句会弹出对话框,输入数值就会将数值赋给变量。
2. 输入字符
KNPTC1 = PROMPT/‘请输入文本:’
运行语句,在提示框内输入字符串,字符就被赋给了变量。
3. 播放声音提示
KNPTN1 = PROMPT/SOUND, ‘C:\Users\ye\Desktop\Ring01.wav’
弹出图片提示
KNPTN1 = PROMPT/PICTURE, ‘C:\Users\ye\Desktop\Image 1.png’
5. prompt复合语句
用一个语句实现多种变量类型同时输入。
程序编辑区右键点击其他功能,再点击Prompt提示,弹出一个复合语句编辑器,在prompt 类型里选择要赋值的变量类型,再添加文本提示,然后点击绿色箭头添加到Prompt条目里,最后再点击DMIS,就会在DMIS编辑区生成自学习语句。
运行生成的程序产生的效果如下,这样点击按钮、激活选项、输入数据操作后都会将不同类型的数据赋给相应的变量。
也可以这样:
KNPTN1 = PROMPT/TITLE,‘多行输入’,TEXT,‘第一行:’,EDIT,KNPTC1,TEXT,$
'第二行:',EDIT,KNPTC2,TEXT,'第三行:',EDIT,KNPTC3
运行后的结果是这样:
VALUE语句
Value语句设置变量与DMIS项目的属性值相等,格式如下:
变量名称=VALUE/标签,关键词
变量名称:已定义的变量名。
标签:元素、公差。
关键词:如INTOL、PTDATA、ACT、DEV、AMT等 ,控制输出项目。
VALUE语句例子
读取曲线测量点数到整数变量里
GCV1_PTDATA = VALUE/FA(GCV1),PTDATA
将实际曲线拖放到整数标签上自学习下自动生成value语句
2. 读取公差的实际值、偏差值、超差值到变量里
TCLD2_ACT = VALUE/TA(TCLD2),ACT
TCLD2_DEV = VALUE/TA(TCLD2),DEV
TCLD2_AMT = VALUE/TA(TCLD2),AMT
将公差拖放到实数标签上
3. 判断公差值是否超差,超差为0,不超差为1 。
KNPTN1=VALUE/TA(TCIR1),INTOL
统计公差或者超差的数量。程序里必须有公差评价的语句,而且必须在它们的后面运行。
KNPTN1 = VALUE/TOL,ALL
KNPTN2 = VALUE/TOL,OUTOL
5. 获取测针球心当前的坐标
CURX = VALUE/GOTO, XAXIS
CURY = VALUE/GOTO, YAXIS
CURZ = VALUE/GOTO, ZAXIS