如果想改变程序的运行方向就要使用跳转语句,在DMIS里有几种命令可实现有条件的跳转,条件跳转就是必须满足给定的条件程序才能跳转。
IF…ENDIF程序块
IF语句以IF开头,ENDIF结尾,它可以使程序在满足规定的逻辑条件下跳转到其他行。逻辑条件由已定义的变量、算法或逻辑表达式组成。IF语句允许嵌套,语句格式如下:
IF/End IF用于在零件程序中添加条件块。只有当IF命令的表达式求值为真(非零)时,才会执行If和End If命令之间的各项。否则,执行流程将跳至EndIF命令之后的第一个命令。
(1)在使用变量存储数据前必须用‘DECL’语句来定义。
在变量数据区定义CHAR型变量C1
(2)对变量C1进行赋值
(3)IF/ENDIF 语句
或利用DMIS模板
打开RationalDMIS的DMIS编辑器,找到DMIS模板,里面其他分项的高级语言中IF条件分支,拖放到编辑器里就可以用了。
(4)要选择测量的圆孔测量语句放在IF/ENDIF之间。
(5)运行程序测量工件
如果你输入的“Y”那么软件就会执行If后的程序语句对CIR1进行测量然后再执行EndIF后的程序语句,如果你输入的“N(或其他字符)”那么软件就会跳过IF后的程序语句直接执行End IF后的程序语句对圆2进行测量。
其余示例(傅海鑫):
例子
1. 如果变量VarA的数值比VarB的大,就会弹出提示“A比B大”
DECL/LOCAL,DOUBLE,VarA,VarB
VarA=ASSIGN/2
VarB=ASSIGN/1
IF/(VarA.GT.VarB)
TEXT/OPER,'A比B大'
ENDIF
2. 下面的程序模拟登陆过程,密码正确提示可以登陆,错误的话要重新输入密码
(LOGIN)
KNPTN1 = PROMPT/TITLE,'登录',TEXT,'姓名:',EDIT,KNPTC1,TEXT,'密码:',EDIT,KNPTC2
IF/(KNPTC1.EQ.'DAVE').AND.(KNPTC2.EQ.'1234')
TEXT/OPER, '登录成功!'
ELSE
TEXT/OPER, '姓名或密码错误,请重新输入!'
JUMPTO/(LOGIN)
ENDIF
3. 下面的的程序让坐标机沿S型路径走一个矩形区域,注意“AND”运算符的用法。
DECL/LOCAL,DOUBLE,XVAR,YVAR
(STARTGO)
GOTO/XVAR,YVAR,50
XVAR=ASSIGN/XVAR+100
IF/(XVAR.EQ.500)
XVAR=ASSIGN/0
YVAR=ASSIGN/YVAR+100
ENDIF
IF/((XVAR.LE.500).AND.(YVAR.LE.500))
JUMPTO/(STARTGO)
ENDIF