首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PC-DMIS高级编程(二)

假定您的零件包含许多特征,但是您只要反复测量一些特征,获得这些特征的一组全面的统计数据。假定您根据用户的响应跳转的测量例程中的特定部分。使用流程控制命令可以完成此类任务以及许多其它任务。通过设置某些命令的条件,您可以控制测量例程的流程

今天我们介绍完成此类任务所需的信息。包括语法条件语句、循环和子例程。同时还提供了许多样例代码。

使用控制对

插入|流程控制命令|

控制对子菜单提供了多个成对的命令,可以在“编辑”窗口中用来控制测量例程的正确流程。要在“编辑”窗口中插入控制对类型的命令,只需键入相应命令,或从该子菜单中选择命令。

重要:使用条件分支语句测试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代码块中的命令。

相关书籍

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181201A1ESIR00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券