海克斯康DMIS语言01.docx

上传人:b****5 文档编号:27629796 上传时间:2023-07-03 格式:DOCX 页数:22 大小:22.25KB
下载 相关 举报
海克斯康DMIS语言01.docx_第1页
第1页 / 共22页
海克斯康DMIS语言01.docx_第2页
第2页 / 共22页
海克斯康DMIS语言01.docx_第3页
第3页 / 共22页
海克斯康DMIS语言01.docx_第4页
第4页 / 共22页
海克斯康DMIS语言01.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

海克斯康DMIS语言01.docx

《海克斯康DMIS语言01.docx》由会员分享,可在线阅读,更多相关《海克斯康DMIS语言01.docx(22页珍藏版)》请在冰豆网上搜索。

海克斯康DMIS语言01.docx

海克斯康DMIS语言01

 

DMIS初级教程-高级语言篇(不断更新)

 

DMIS语言的高级语句部分,和大多数编程语言类似,包含变量声明、表达式、结构、输入输出、

 

宏等等,如网友有编程经验,会很快熟悉这一部分。

 

从一个简单常用的例子说起,循环可能是我们在高级应用服务中运用最多的语句,DMIS标准中

 

的循环语句为主字DO

 

语法格式为

 

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,以此类推.

 

_________________________________________________________________

 

_________________________________

 

一.变量的声明.

 

上面的循环手动测量圆,用到了一个变量I,在DMIS中,所有的变量在使用前都需要经过声明,声

 

明这个变量的名称,类型,作用范围.

 

变量声明的函数为

 

DECL/var_1var_2var_3

 

定义变量的作用范围

 

其中Var_1为COMMON普通

 

或者GLOBAL全局变量

 

或者LOCAL局部变量

 

或者不存在

 

定义变量的类型

 

Var_2为BOOL布尔型

 

或者INTGR整数型

 

或者LONG长整型

 

或者REAL实数型

 

或者DOUBLE双精度型

 

或者CHAR,n字符型

 

或者VECTOR向量型

 

Var_3为Varname变量名称

 

相同类型的变量可以在同一个DECL语句中声明。

 

比如:

DECL/COMMON,INTGR,I

 

这个语句就表示声明了一个整数型变量,名称为I.后面程序中表达式所需要整数的

 

就可以用I来替代.

 

再或者DECL/COMMON,CHAR,20,TEMPSTR

 

这个语句声明一个字符串变量,名称为TEMPSTR,长度为20,表示这个变量所存储的

 

字符长度最大为20,如果超过20,后面的字符将不读入变量.

 

变量的名称由1到16个字母数字、下划线组成,名称的第一个字符只能为希腊字

 

母。

变量名称不能使用DMIS预留字,预留字包括DMIS主字、次字、常用函数等等。

 

如果这里不指定Var_1,DMISMN声明的程序块用GLOBAL为默认值,在MACRO声明

 

的程序块中用LOCAL为默认值。

 

变量数组的声明例子为:

 

DECL/COMMON,DOUBLE,RAPLUS[3,3]

 

这个语句表示声明了一个2维的数组RPLUS[3,3],此次一共声明了9个变量,分别

 

RAPLUS[1,1]RAPLUS[1,2]RAPLUS[1,3]

 

RAPLUS[2,1]RAPLUS[2,2]RAPLUS[2,3]

 

RAPLUS[3,1]RAPLUS[3,2]RAPLUS[3,3]

 

DMIS中变量数组的起始从1开始,而其它常用的高级编程语言如C从0开始。

 

二、结构语句。

 

介绍三个常用的DMIS语句,DO和CASE.

 

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

 

DO/index,initial,limit,increment

 

循环体

 

ENDDO

 

语句中,index是一个整型变量,initial是这个变量的起始值,limit是这个变量的结束值,incre

 

ment是这个变量的增幅。

例如语句

 

DO/I,2,30,3

 

循环体

 

ENDDO

 

意义即为I开始的值为2,运行第一遍循环后I的值变为5,第2遍后变为8,第三遍后变为1

 

1⋯⋯⋯⋯,到I的值大于30后结束循环

 

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

 

------------------------------------------------------------------------------------------

 

CASE为条件分支选择,语法为:

 

CASE/arg_1

 

其中arg_1为整数或者字符串,用一个例子来说明,输出两个圆CIR1、CIR2的距离,选择

是输出最大距离、最小距离还是两个圆心的距离。

 

decl/common,char,20,dist_cir

 

tempchar

 

=prompt/text,'

 

输出距离类型

 

',list,dist_cir,'

 

最大距离

 

','最小距离

 

','圆心距离

 

'

 

select/dist_cir

 

case/'最大距离'

 

T(cir_dis)=TOL/DISTB,LIMIT,20,21,PT2PT,MAX

 

endcas

 

case/'最小距离'

 

T(cir_dis)=TOL/DISTB,LIMIT,20,21,PT2PT,MIN

 

endcas

 

case/'圆心距离'

 

T(cir_dis)=TOL/DISTB,LIMIT,20,21,PT2PT,AVG

 

endcas

 

endsel

 

OUTPUT/FA(CIR1),FA(CIR2),TA(cir_dis)

 

上面的语句用CASE做条件选择,选择定义的距离公差是最大、最小还是平均。

 

三.输入部分

 

DMIS可以从用户界面上取得输入值,也是在HLL中常用的主字PROMPT,

后面的功能语法有

 

PROMPT/TEXT,'hello,world'---------------界面出现一行提示hello

world

 

PROMPT/EDIT,var_1--------------------出现对话框,把对话框内输入

的数据赋值给var_1

 

PROMPT/CHECK,'直径',var_1-------------

如果勾选上,var_1的值为1,反之var_1的值为

 

0

 

出现勾选项

 

在"直径"后面,

 

PROMPT/LIST,var_1,"圆度","位置度","直径公差"-----------出现一个

下拉菜单,中间包含圆度位置度直径公差,选则一项就将值赋给var_1,例如我在下拉菜单中选择了"位置度",那么字符串变量var_1的值就为"位置度"

 

PROMPT/TITLE,'校验程序'------------出现的窗口的标题栏即为'校验程

序'

 

PROMPT/PICTURE,'filename'------------出现一个图片,filename为此

文件和路径和文件名

 

下面是一个范例的提示窗口,如图

 

上传的图片

 

抱歉,您所在的组无权下载附件,请注册或登陆

 

语句如下:

 

DECL/CHAR,20,List_var1

DECL/DOUBLE,edit_var1,edit_var2,edit_var3

DECL/INTGR,Check_var1,Check_var2,Check_var3

 

Tempchar=Prompt/Title,'孔测量程序',$

Text,'孔的数量',edit,edit_var1,$

Text,'孔的直径',edit,edit_var2,$

Text,'直径公差带',edit,edit_var3,$

List,List_var1,'直角坐标系','极坐标系',$

Check,'位置度',Check_var1,Check,'圆度',Check_var2,Ch

eck,'直径公差',Check_var3

 

原来的用户提示还有TEXT/OPER,因为是DMIS早期版本的功能,后来用Pro

mpt取代了.

 

DMIS常见问题汇总

 

一、DMIS的作用。

 

DMIS可以帮助检测人员去完成更复杂的检测和评价。

可以更深刻地理

解检测的意义和原理。

 

实现更多灵活的要求。

 

DMIS标准的检测程序,可以导入到市场上支持DMIS语言的软件中去实现测量,如OpenDMIS、Calypso、LK等等,程序具有通用性。

 

二、DMIS语言的分类。

 

DMIS语言分为测量相关的,包括定义检测元素、测量、输出等等,大

部分的语句三坐标软件本身可以进行记录或者自动生成。

 

结构相关的,对测量的过程进行控制,比如循环,

判断选择,进行特定的计算和评价。

 

三、常用的DMIS语言介绍。

 

1.定义检测元素,F(CIR1)=FEAT/CIRCLE,INNER,CART,300,324,

0,0,1,40

 

作用:

等同于图纸中所标注的数值,上例中,语句的意思定义

一个需要检测的孔X方向上距离为300,Y方向上距离为324,直径为40。

关键字:

FEAT

 

2.自动测量该元素,MEAS/CIRCLE,F(CIR1),4

Endmes

 

作用:

测量机自动移动到孔CIR1的位置,以4个点的数量对

其进行测量。

关键字:

MEAS

3.公差定义,T(TDIAM1)=TOL/DIAM,-0.1,0.1

作用:

定义一个直径公差,按图纸给出上下公差为(-0.1,0.

1).

关键字:

TOL

 

4.输出报告,OUTPUT/FA(CIR1),TA(TDIAM1)

作用:

把孔CIR1的直径、理论、实际、偏差输出到报告中。

关键字:

OUTPUT

 

上面的关键字在常规的三坐标检测中,用到的频率相对很高,只在对应其它元素测量,如点、面,或者做其它的评价时,对应参数有些不同而已。

在结构控制方面,比较常用的关键字有

 

5.循环,DO/I,1,10

ENDDO

作用:

将DO和ENDDO中间的过程重复10次。

如果把测量孔的语句放进去,结果即为连续10次测量该孔。

广泛用在有规则分布的小孔、特征点的检测方面,根据一个特征点,可以对其它所有的特征点进行检测。

关键字:

DO

 

6.选择,SELECT/name

CASE/’零件1’

ENDCAS

CASE/’零件2’

 

ENDCAS

ENDSEL

作用:

对应选择,如果name的值是’零件1’,就执行第一个CASE里面的内容,如果name的值是’零件2’,就执行第二个CASE里面的内容。

以此类推。

广泛用在多个零件在一个夹具上,共同进行检测时的需要。

关键字:

SELECT、CASE

 

7.提示,PROMPT/

作用:

提示用户,以及接受检测人员,键盘的输入。

广泛用于提示检测人员检测完成,更换工件;提示方法可以为声音、字符文本或者图片。

或者接受用户输入一些数据,例如图纸的理论值、工件编号等等。

关键字:

PROMPT

(论坛上关于PROMPT有一篇帖子对应功能详

细的讲解)

 

8.其它常用字符函数或者数学函数

作用:

对于一些不能直接进行测量的元素,例如螺旋线的基圆,依靠其它孔的位置对其进行定位。

中间需要的一些计算公式和函数,可以由DMIS提供的标准数学函数来进行计算。

关键字:

STR、MOD等

 

先看图,本课程讲解的是如图中所用的公式的用法用一些实例代码

+-*/就不用说了吧,小学就学过的

%:

求余,像+-*/一样的运算式,如:

7%3=1,10%6=4,前面那个数将后面的数整除后,得到的余

数.

 

^:

二次幂,也就是平方的意思;5^2=25

!

:

逻辑非,比如说运用在IF判断语句里面

实例:

赋值/V1=1

IF/!

(V1==2)

'V1

的值为

1,这里判断

V1=2

返回的结果是

False,但如果加上!

,那么!

(V1==2)

这个条件返回的值就为

True

注释/操作者,否,请编辑注释文本!

'这里会执行到,因为上面条件返回的值为

True

END_IF/

==:

等于,它与"="

的区别是:

==一般用于判断条件表达式内

而=用于赋值语句里面,它都是

代表等于的意思,只是应用位置不一样

<>:

不等于,比如上面实例代码中!

(V1==2),我改成!

(V1<>2),返回的结果是什么呢?

自已想

想。

(结果为False),它与==是相反的

<,>,<=,>=:

这四个分别是表示小于,大于,小于等于,大于等于。

没啥好讲的,知道就行了

":

":

这个冒号一般大家用不着,因为它一般都用于指定的语句当中,比如调用子程序,调用外

部基准的代码中

"":

双引号:

表达式是一条字符串

\":

在字符串中加入引号,比如说:

赋值/V1="我选用\"A基准作基准\""

注释/操作者,否,V1

运行的结果为:

当你不用\",那你就不能做出这种提示效果来

\\:

在字符串中加入反斜线,没有特别的意思,比如赋值/V1="我选用A基准作基准\",在

PC-DMIS看来是错误的

 

未完待续.......

 

():

这个就和我们学数学一样的,()里面的先计算,是一个功能

{}:

这个东西有点像赋值那个命令的功能,

比如说:

V1=文件/读取行,FPTR,{TMP},这条命令,TMP自动申明一个变量接受

文件读入的一行资料,并可以在下面程序中直接调用TMP这个变量

RationalDMIS程序中的DMIS语句解释第五部分

2011年03月09日星期三12:

58

7)]

xml:

namespaceprefix=ons="urn:

schemas-microsoft-com:

office:

office"/>

D(label2)是要取出的工作坐标系名称,此坐标系会被激活成为当前坐标系.

DA(label1)是要取出的实际工作坐标系名称,此坐标系会被激活成为当前坐标系.

S(label3)是要取出的探头名称.

SA(label4)是要取出的实际探头名称.

DMIS接口的能力范围内。

 

FA(label5)是要取出的实际元素名称.

RT(label6)是要取出的转盘名称.

DID(label7)是保存有要取出数据的设备名称,当不指定DID(label7)时,会从测量机默认的存储设备中取出.

SNSLCT选择用来进行测量的探头

 

GEOALG用来设置某种元素类型的拟和算法

ENDFIL用来指示程序或模块结束

 

WKPLAN/XYPLAN

WKPLAN用来设置工作平面,DMIS的标准格式为:

WKPLAN/XYPLAN[YZPLAN][ZXPLAN]

 

GOHOME使探头回到其初始位置,DMIS的标准格式为:

GOHOME

 

DMESW

用于控制数据或测量机输入文件中发送数据的过程。

DMESW/CONTIN[PAUSE][DELAY,n][COMAND,'command']command'发送给接受系统的命令,用单撇号围起来。

COMAND

意味着用单撇号围起来的文字数字字符串,

它后面跟随的要作为一个测量机指定的命令。

这个习惯性的测量机指令代码并不在

CONTIN

意味着测量机继续处理数据。

在DMESW/PAUSE语句之后和

下一个DMESW/CONTIN语句之前,所有接受的数据都被测量机忽略。

DELAY

意味着测量机要延时过程数据'n'秒钟。

n

一个正整数,代表以秒为单位的时间长度。

PAUSE

意味着测量机停止接受数据。

在DMESW/PAUSE语句之后和

下一个DMESW/CONTIN语句之前所遇到的所有接受的数据都被测量机忽略。

 

GOTARG

GOTARG用来初始化探头的直接路径移动并设置探头要移动到的位置,

DMIS的标准格式为:

GOTARG/x,y,z[CART,x,y,z][POL,r,a,h]

x,y,z是与当前坐标系原点相对的直角坐标值.CART,x,y,z是与当前坐标系原点相对的直角坐标值.POL,r,a,h是与当前工作平面中坐标系原点相对的极坐标值.备注:

 

GOTARG语句后必须有至少两个GOTO语句来定义必需的中间移动以使探头能安全的移动到设置的位置.

 

PSTHRU

通过没有解释或执行的输出文件,在监视程序中传递语句。

PSTHRU/CONTIN,[COMAND,'command'][PAUSE][START][STOP][TRMATX,a1,a2,a3,b1,b2,b3,c1,c2,c3,d1,d2,d3]

PRCOMP用来设置打开或关闭自动探头补偿,DMIS的标准格式为:

PRCOMP/ON[OFF]

 

TECOMP用来设置温度补偿,DMIS的标准格式为:

TECOMP/MACH,ON[OFF]

或TECOMP/PART,ON,[DA(label)][OFFSET,xoff,yoff,zoff],tmpexp,

ALL[[tmpexpunc],'tempsns']

或TECOMP/PART,OFF

MACH表示要设置机器的温度补偿.

PART表示要设置工件的温度补偿.

ON表示打开温度补偿.

OFF表示关闭温度补偿.

DA(label)是作为温度补偿热量数据的坐标系名称.OFFSET,xoff,yoff,zoff表示相对于当前坐标系的偏移,

xoff为X方向相对于坐标原点的偏移,yoff为Y方向相对于坐标原点的偏移,zoff为Z方向相对于坐标原点的偏移.

tmpexp表示工件的热膨胀系数.

ALL表示使用所有的工件探头.

tmpexpunc表示工件热膨胀系数的不确定度.

'tempsns'是工件探头的名称.

 

GECOMP/ON

GECOMP用来打开或关闭几何补偿,DMIS的标准格式为:

GECOMP/ON[OFF]

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 管理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1