首页/文章/ 详情

RationalDMIS高级指令(DO循环语句)

2天前浏览59

实现工件程序的重复执行,使得满足工件的批量测量要求。


DMIS5.2标准如下:


  

  

   使用DO循环语句可以多次反复执行同一段程序,执行的次数可以是设定的数字、变量。


DO…ENDDO语句块


  DO…ENDDO语句块以DO开头,ENDDO结尾,可以反复多次执行一组程序行,支持嵌套。格式如下:


DO/变量, 初始值, 结束值, 步长

$$ DMIS语句

ENDDO


语法格式为:


DO/变量,启始值,终止值,步幅


那么一个语句如果为DO/I,1,10,1的意义就为,执行一个循环,I的值+1,增加10次之后,循环结束.


来看一个实例.


假设我的工件有一个孔,名为CIR1,我需要把它测量5次,取其中的最小值.那么测量部分的循环语句即为


AUTO/AUTO,PROG,MAN


DO/I,1,5


MEAS/CIRCLE,CIR1,4


ENDMES


ENDDO


运行这段语句,测量机就会自动去测量圆CIR1,直到5次结束后位置.


需要注意的地方: 


1. 所有的变量在使用前都必须声明,上面的I是一个整型变量,每循环一次,I+1


2.每一个DO语句都必须跟一个ENDDO表示该循环的结束.


3.步幅表示每次循环I的增量,如果步副是2,那么下次I就为3,再循环一个为5,以此类推.


     

    RationalDMIS程序编辑区右键模版里面——其他——高级语言——DO循环 ,里面有DO语句的模版供拖放参考。



DO循环在DMIS语句编程中是常用的语句,其语法为:




      DO/index,initial,limit,increment


      循环体


      ENDDO


   语句中,index是一个整型变量,initial是这个变量的起始值,limit是这个变量的结束值,increment是这个变量的增幅。例如语句


      DO/I,2,30,3


      循环体


      ENDDO


意义即为 I开始的值为2,运行第一遍循环后I的值变为5,第2遍后变为8,第三遍后变为11…………,到I的值大于30后结束循环


      最后一个参数increment可以不写,默认为1。

RationalDMIS高级指令(DO循环语句)


DMIS5.2标准示例:

RationalDMIS高级指令(DO循环语句)


示例一:


     圆循环名称自动变化程序


DECL/COMMON,INTGR,I

DECL/COMMON,CHAR,255,C1

DO/I,1,3,1

C1 = ASSIGN/CONCAT('J','-',STR(I))

F(@C1)=FEAT/CIRCLE,OUTER,CART,-0.0000,0.0000,-3.2790,0.0000,0.0000,1.0000, 48.0000

$$ Measurement points are created through nominal points

MEAS/CIRCLE, F(@C1), 4

  PTMEAS/CART,  24.0000,   0.0000, -3.2790,  1.0000,  0.0000, 0.0000

  GOTO/CART,    24.9447,  10.3325, -3.2790

  GOTO/CART,    19.0919,  19.0919, -3.2790

  GOTO/CART,    10.3325,  24.9447, -3.2790

  PTMEAS/CART,  -0.0000,  24.0000, -3.2790,  0.0000,  1.0000, 0.0000

  GOTO/CART,   -10.3325,  24.9447, -3.2790

  GOTO/CART,   -19.0919,  19.0919, -3.2790

  GOTO/CART,   -24.9447,  10.3325, -3.2790

  PTMEAS/CART, -24.0000,   0.0000, -3.2790, -1.0000,  0.0000, 0.0000

  GOTO/CART,   -24.9447, -10.3325, -3.2790

  GOTO/CART,   -19.0919, -19.0919, -3.2790

  GOTO/CART,   -10.3325, -24.9447, -3.2790

  PTMEAS/CART,  -0.0000, -24.0000, -3.2790, -0.0000, -1.0000, 0.0000

ENDMES

ENDDO




注意:


1. 元素名称要应用变量时,在变量名前必须加“@”。


2.添加DO语句时使用的变量名称不用提前定义变量,在DO语句中默认包含了定义变量的指令。


示例二:


     下面的例子将提示语句循环执行4次,每次提示循环到第几遍


DO/KNPTN1,1,4,1

$$将数字转化为字符并与提示合并

KNPTC1=ASSIGN/CONCAT('这是第',STR(KNPTN1),'遍循环')

TEXT/OPER, KNPTC1

ENDDO



示例三:


下面的程序控制机器在500X500的范围内走S形轨迹


DECL/LOCAL,REAL,XPOS,YPOS

DECL/LOCAL,INTGR,XN,YN

DO/YN,0,500,100

  $$RL函数将整数转换为实数

  YPOS=ASSIGN/RL(YN)

    DO/XN,0,500,100

      XPOS=ASSIGN/RL(XN)

      GOTO/XPOS,YPOS,50

    ENDDO

ENDDO


示例四:


       重复测量圆孔十次


DO/KNPTN1, 1, 10, 1

 

F(CIR1)=FEAT/CIRCLE,INNER,CART,90.0000,-0.0000,-38.3986,0.0000,0.0000,1.0000, 8.0000


$$ Measurement points are created through nominal points

MEAS/CIRCLE, F(CIR1), 4

  PTMEAS/CART, 86.1687, -1.1494, -38.3986,  0.9578,  0.2873, 0.0000

  PTMEAS/CART, 91.1494, -3.8313, -38.3986, -0.2873,  0.9578, 0.0000

  PTMEAS/CART, 93.8313,  1.1494, -38.3986, -0.9578, -0.2873, 0.0000

  PTMEAS/CART, 88.8506,  3.8313, -38.3986,  0.2873, -0.9578, 0.0000

ENDMES


ENDDO



示例五:


DECL/INTGR,I

DECL/CHAR,20,elnm

DECL/DOUBLE,xx,yy,zz

DO/I,1,3,1

elnm=ASSIGN/CONCAT('poi_',STR(i))

xx=OBTAIN/FA(@elnm),3

yy=OBTAIN/FA(@elnm),4

zz=OBTAIN/FA(@elnm),5

elnm=ASSIGN/CONCAT('newpoi_',STR(i))

F(@elnm)=FEAT/POINT,CART, xx,yy,zz, 0,0,0

FA(@elnm)=FEAT/POINT,CART, xx,yy,zz, 0,0,0

ENDDO

以上表示 DO ENDDO之间的内容循环3次。

每循环一次,变量I的值加1,到3后结束。

 



来源:山涧果子
UG控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-01-02
最近编辑:2天前
山涧果子
大专 签名征集中
获赞 204粉丝 51文章 652课程 0
点赞
收藏
作者推荐

RationalDMIS快速添加自定义提示语句

测量提示语言编辑,用户可根据实际情况,自定义添加提示语句。添加Prompt提示语句,用户可在提示语句弹出后,做更换工件或反转工件等操作。1.程序数据区-DMIS功能工具条,“插入注释行”。 允许各用户为个别的需求建立标题数据,TEXT语句允许文本信息输出到显示器(为操作人员)或到输出文件。 屏幕显示:将给定的提示信息在程序运行时以对话框形式弹出,提醒操作者注意下一步操作。2. 提示语句编辑功能,用户可根据情况自定义提示语句,完成提示相关操作。3.可随时更改屏幕提示语句。或激活直接编辑,直接修改提示语句。来源:山涧果子

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈