假定您的零件包含许多特征,但是您只要反复测量一些特征,获得这些特征的一组全面的统计数据。假定您根据用户的响应跳转的测量例程中的特定部分。使用流程控制命令可以完成此类任务以及许多其它任务。通过设置某些命令的条件,您可以控制测量例程的流程
今天我们介绍完成此类任务所需的信息。包括语法条件语句、循环和子例程。同时还提供了许多样例代码。
使用控制对
插入|流程控制命令|
控制对子菜单提供了多个成对的命令,可以在“编辑”窗口中用来控制测量例程的正确流程。要在“编辑”窗口中插入控制对类型的命令,只需键入相应命令,或从该子菜单中选择命令。
重要:使用条件分支语句测试YES / NO注释值时,应注意测试查找的是大写字母的"YES"或"NO"值。小写字母"Yes"或"No"
不起作用。有关注释的信息,请参见“插入报告命令”一章中的“插入程序员注释”主题。
If / End If
插入|流控制命令|控制对| If / End If菜单项允许您添加条件块到测量例程。仅在IF
命令的表达式评估为true(非)时,方执行IF和END IF命令之间的项目。否则,执行流将跳至END/IF命令之后的第一条命令。
21_使用流程控制的分支
IF / END IF语句在“编辑”窗口中的命令行为:
IF/expression
END_IF/
要插入If / End If命令,请执行以下步骤:
1.将光标放在“编辑”窗口中的所需位置。
2.从菜单栏中选择If / End If。IF / END IF语句将显示在“编辑”窗口中。
If / End If样例代码
参见以下样例,询问用户是否要测量点特征。
C1=注释/是否,是否要测量点特征PNT1?
IF/C1.INPUT=="YES" PNT1=特征/点,直角
…
…
终止测量/
END_IF/
样例代码的说明
C1=COMMENT/YESNO
此行取用并存储用户的YES或NO响应。
IF/C1.INPUT=="YES"
此行是表达式。它测试注释1的输入是否为YES。若为YES,则IF语句为TRUE,并在IF语句后继续执行语句,在本例中,测量的是PNT1特征。若为NO,则移至END_IF语句。
END_IF
此行结束执行IF / END IF代码块中的命令。若用户在此注释处单击No,PC-DMIS将转至此行后面的代码。
Else If / End Else If
插入|流控制命令|控制对| Else If / End Case If菜单项允许您添加条件块到测量例程。仅在
ELSE IF命令的表达式评估为True(非)时方执行ELSE IF和END ELSE IF命令之间的项目。ELSE IF / END ELSE IF块必须紧跟在IF / END IF块或其他ELSE IF / ENDELSE IF块之后。若当前块以上的所有IF / ELSE IF表达式评估为
False,则将评估此表达式。若此表达式评估为false (0),则执行将移转至END ELSE IF命令之后的下一命令。若当前块以上的任何IF / ELSE IF表达式均评估为
True,则将跳过此序列中所有后续ELSE IF / END ELSE IF块。
ELSE IF / END ELSE IF语句在“编辑”窗口中的命令行为:
ELSE_IF/expression
END_ELSE_IF/
要插入ELSE IF / END ELSE IF命令,请执行以下步骤:
1.将光标放在“编辑”窗口中现有IF/END IF语句或ELSE IF/END ELSE IF
语句后面的所需位置。
2.从菜单栏中选择Else If / End Else If。ELSE IF / END ELSE IF
语句将显示在“编辑”窗口中。
注:此类型块只有放在IF / END IF或ELSE IF / END ELSE IF
块之后才有效。无效放置的控制对在“编辑”窗口中将显示为红色文本。
Else If / End Else If样例代码
参见以下样例,在测定点的任何一个X、Y或Z值超过定义的公差时显示一条消息通知用户:
PNT2=FEAT/POINT,RECT
…
…
ENDMEAS/
IF/PNT2.X7.1
COMMENT/OPER,“PNT2的X测量值:”+ PNT2.X +“超出公差”。END_IF/
ELSE_IF/PNT2.Y3.5
COMMENT/OPER,“PNT2的Y测量值:”+ PNT2.Y +“超出公差”。
END_ELSEIF/
ELSE_IF/PNT2.Z1.1
COMMENT/OPER,“PNT2的Z测量值:”+ PNT2.Z +“超出公差”。
END_ELSEIF/
样例代码的说明
该代码首先测试点的X值。如果条件值为假,代码将测试Y值。如果Y值的条件值为假,代码将测试Z值。
如果其中任一条件值为真,PC-DMIS会显示关联的注释,并跳过其它条件语句。
IF/PNT2.X7.1
此行是表达式。用于测试X测量值是否小于6.9或大于7.1。若超出其中任何一个界限,将执行第一条注释。
END_IF
此行结束执行IF / END IF代码块中的命令。若IF THEN条件评估为false,PC-DMIS
将转至此行后面的命令。
ELSE_IF/PNT2.Y3.5
此行是第一条ELSE_IF命令的表达式。它仅在其上面的IF / END IF块传回false时执行。此代码行测试Y测量值是否小于3.3或大于3.5。若超出这两个界限中的任何一个界限,则执行第二条注释。
END_ELSEIF/
此行结束执行第一个ELSE IF / END ELSE IF代码块中的命令。
ELSE_IF/PNT2.Z1.1
此行是第二条ELSE IF命令的表达式。仅在其上的ELSE IF / END ELSE IF块传回False
时,方执行此表达式。用于测试Z测量值是否小于0.9或大于1.1。若超出其中任何一个界限,将执行第三条注释。
END_ELSEIF/
此行结束执行第二个ELSE IF / END ELSE IF代码块中的命令。
相关书籍
领取专属 10元无门槛券
私享最新 技术干货