RationalDMIS 7.1 高级编程之DMIS赋值语句_数据
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。

注意:每执行一次赋值命令,变量中存储的原数据都会被覆盖掉。

RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_02

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)

自学习

变量数据区双击变量名称,输入数值或字符,自学习会生成赋值语句:

RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_03
如果字符串赋值要写到单引号里面RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_04
如果想转换变量类型需要调用一些特殊函数,可以在变量数值输入框里右键就会弹出各种函数RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_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

拖放实际圆到实数

RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_06
各元素输出项目与编号对应关系

RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_07
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

探头属性与序号的对应关系:

RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_08
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

变量名称右键,输入各参数后点击确认后生成自学习语句
RationalDMIS 7.1 高级编程之DMIS赋值语句_赋值_09
运行语句会弹出对话框,输入数值就会将数值赋给变量。RationalDMIS 7.1 高级编程之DMIS赋值语句_赋值_10
2. 输入字符

KNPTC1 = PROMPT/‘请输入文本:’
RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_11
运行语句,在提示框内输入字符串,字符就被赋给了变量。RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_12
3. 播放声音提示

KNPTN1 = PROMPT/SOUND, ‘C:\Users\ye\Desktop\Ring01.wav’RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_13

弹出图片提示

KNPTN1 = PROMPT/PICTURE, ‘C:\Users\ye\Desktop\Image 1.png’
RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_14
5. prompt复合语句

用一个语句实现多种变量类型同时输入。
RationalDMIS 7.1 高级编程之DMIS赋值语句_赋值_15
程序编辑区右键点击其他功能,再点击Prompt提示,弹出一个复合语句编辑器,在prompt 类型里选择要赋值的变量类型,再添加文本提示,然后点击绿色箭头添加到Prompt条目里,最后再点击DMIS,就会在DMIS编辑区生成自学习语句。RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_16
运行生成的程序产生的效果如下,这样点击按钮、激活选项、输入数据操作后都会将不同类型的数据赋给相应的变量。RationalDMIS 7.1 高级编程之DMIS赋值语句_变量名_17
也可以这样:

KNPTN1 = PROMPT/TITLE,‘多行输入’,TEXT,‘第一行:’,EDIT,KNPTC1,TEXT,$

'第二行:',EDIT,KNPTC2,TEXT,'第三行:',EDIT,KNPTC3

运行后的结果是这样:
RationalDMIS 7.1 高级编程之DMIS赋值语句_赋值_18

VALUE语句

Value语句设置变量与DMIS项目的属性值相等,格式如下:

变量名称=VALUE/标签,关键词

变量名称:已定义的变量名。

标签:元素、公差。

关键词:如INTOL、PTDATA、ACT、DEV、AMT等 ,控制输出项目。

VALUE语句例子

读取曲线测量点数到整数变量里

GCV1_PTDATA = VALUE/FA(GCV1),PTDATA

将实际曲线拖放到整数标签上自学习下自动生成value语句

RationalDMIS 7.1 高级编程之DMIS赋值语句_赋值_19
2. 读取公差的实际值、偏差值、超差值到变量里

TCLD2_ACT = VALUE/TA(TCLD2),ACT

TCLD2_DEV = VALUE/TA(TCLD2),DEV

TCLD2_AMT = VALUE/TA(TCLD2),AMT

将公差拖放到实数标签上
RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_20
3. 判断公差值是否超差,超差为0,不超差为1 。

KNPTN1=VALUE/TA(TCIR1),INTOL

统计公差或者超差的数量。程序里必须有公差评价的语句,而且必须在它们的后面运行。

KNPTN1 = VALUE/TOL,ALL

KNPTN2 = VALUE/TOL,OUTOL
RationalDMIS 7.1 高级编程之DMIS赋值语句_数据_21
5. 获取测针球心当前的坐标

CURX = VALUE/GOTO, XAXIS

CURY = VALUE/GOTO, YAXIS

CURZ = VALUE/GOTO, ZAXIS