RationalDMIS 7.1 DMIS基本语句 |
您所在的位置:网站首页 › 印章的评价语句 › RationalDMIS 7.1 DMIS基本语句 |
DMIS的全称是 Dimensional Measuring Interface Standard(尺寸测量接口标准),这个标准的开发最早是由国际计算机辅助制造有限公司的质量保证程序组织的。在1985的2月启动,作为尺寸测量接口的规格,这个规格,实际上就是做联接尺寸测量设备的提供者和使用者工作的一个结果,即自动审查数据系统中的通讯标准。 第一个版本,DMIS1.0是由IIT研究院开发的,该研究院隶属于CAM-I,在1986年的三月完成。到发帖之日起,总共经历了6个版本即:1.0,2.0;2.1;3.0;4.0;5.0,从2.1的版本开始,被ANSI(美国国家标准化组织)接受为一个标准。 DMIS语言分为两个部分,面向测量设备(DME)相关和面向程序结构相关。
面向测量设备的DMIS语句 面向测量设备相关的DMIS程序按照三坐标测量机的工作流程,大体可以分为元素定义、建立坐标系、元素测量、元素构造、公差定义及评价、输出报告几个阶段。 元素定义(FEAT)所有元素在测量前,都必须先存在理论值。元素定义的作用即使所需要测量的元素或者需要构造的元素进行理论值的定义。 以圆为例: F(CIR1) = FEAT/CIRCLE, INNER, CART, 20 ,50, 40, 0,0,1, 10 F 代表定义的元素为理论值 CIR1 元素的名称 FEAT 进行元素定义的主关键字 CIRCLE 定义的几何元素类型为圆 INNER 圆为内圆(孔) CART 圆在笛卡尔坐标系的参数下进行定义 20,50,40 圆心的X,Y,Z坐标值 0,0,1 圆所在平面的向量 10 圆的直径值 F如果替换为FA,代表所定义的元素为实际元素,同样实际元素在定义前,该元素必须先存在理论值。 CIR1此类标签名,由大小写字母,数字,中划线,下划线,点来组成,不能使用DMIS保留的关键字做标签名。 CIRCLE为定义语句的参数,这里可以替换为POINT,PLANE,LINE等等,代表所定义的元素类型为点、平面、直线等等。 INNER这里可以替换为OUTTER,表示定义圆的类型为外圆(轴)。 CART可替换为POL,表示该元素在极坐标系下进行几何定义。 所有语句的标点符号,均为英文半角输入法,切勿在中文全角输入法下进行程序的编写。 常见的几种元素的定义语句有: 定义点 F(PT1) = FEAT/POINT,CART, 82.439011, 153.899094, 70.000000, 0.000000,$ 0.000000, 1.000000定义直线 F(LN1) = FEAT/LINE,BND,CART, 0.000000, 32.525862, 70.000000, 131.664892,$ 32.525862, 70.000000, 0.000000, -0.707107, 0.707106定义平面 F(PLN1) = FEAT/PLANE,CART, 109.388051, 93.106978, 70.000000, 0.000000,$ 0.000000, 1.000000定义球 F(SPH1) = FEAT/SPHERE,OUTER,CART, 128.000000, 161.213956, 70.000000, 25.000000 定义圆柱 F(CYL1) = FEAT/CYLNDR,INNER,CART, 83.818768, 91.526173, 48.478155, 0.000000,$ 0.000000, 1.000000, 80.000000, 43.043691定义圆锥 F(CON1) = FEAT/CONE,INNER,CART, -5.945278, -17.190257, -72.083435, 0.462984,$ 0.517299, 0.719756, 30.882446定义椭圆 F(ELL1) = FEAT/ELLIPS,INNER,CART, 72.887983, 85.414244, 61.742124,$ 131.458363, 102.277578, 61.742124,MAJOR, 0.000000, 0.000000, 1.000000,$ 116.138793定义键槽 F(SLT1) = FEAT/CPARLN,INNER,ROUND,CART, 15.475128, 91.371459, 57.785059,$ 0.000000, 0.000000, 1.000000, 0.000000, 1.000000, 0.000000, 97.462792,$ 17.354300定义圆环 F(TRS1) = FEAT/TORUS,INNER,CART, 94.657833, 110.323318, 66.057457, 0.248024,$ -0.012081, 0.968679, 111.629389, 27.160451** 测量(MEAS)** 元素定义结束后,可以使用MEAS对所定义的元素进行测量。 以测量圆为例: MEAS/CIRCLE,F(CIR_11),4 PTMEAS/CART,-15.5,35.5,107.5,-1,0,0 PTMEAS/CART,-25.5,35.5,107.5,1,0,0 GOTO/-20.5,35.5,107.5 PTMEAS/CART,-20.5,40.5,107.5,0,-1,0 PTMEAS/CART,-20.5,30.5,107.5,0,1,0 ENDMES CIRCLE 代表所测量的元素类型为圆,测量点将按照元素类型进行拟合。 F(CIR_11) 为所测量元素的名称,测量结果将作为该元素的实际值。 4 指定该元素的测量点数,这里表示测量4个点,只能为正整数,在进行扫描时无效。 PTMEAS 代表在测量该元素时的测量点信息,参数由坐标系类型、XYZ,IJK组成。 对于测量需要注意的地方: 在测量点的情况下(测量的类型为POINT),如果测量点数设置为1,那么将按照定义的理论值去测量。如果设置为0,将记录当时测针红宝石球心的坐标,将此作为当前测量点实际值。 当打开AUTO模式时,测量设备将使用内部定义的算法来分布测量点进行测量。 当使用PROG模式时,测量设备会按照下面所给的PAMEAS、PTMEAS和GOTO语句去测量元素。 测量块后必须跟ENDMES为结束标志,中间可以插入高级语句以及其他主关键字。 MEAS/ENDMES中可插入的关键字列表: 首先根据图纸确立参考元素,以一个平面为例: DATDEF/FA(PLN1),DAT(A) 以该参考作为工件坐标系的Z轴方向。 D(CRD1)=DATSET/DAT(A),ZDIR,ZORIG D 表示定义的类型为坐标系。 CRD1 为所定义的坐标系名称。 DATSET 为定义公差的关键字。 DAT(A) 表示使用基准A,在这里基准A指平面PLN1。 ZDIR 表示坐标系Z轴的方向。 ZORIG 表示坐标系Z轴的位置。 这个语句简单说,就是产生了一个新的坐标系CRD1,把平面PLN1作为该坐标系的XY平面。 以面,线,圆的方式建立一个工件坐标系的完整语句为: DATDEF/FA(PLN1), DAT(A) DATDEF/FA(LN1), DAT(B) DATDEF/FA(CIR1), DAT(C)D(CRD1) = DATSET/DAT(A), ZDIR, ZORIG, DAT(B), XDIR, YORIG, DAT©, XORIG 分别以平面PLN1、直线PLN1、圆CIR1作为基准A、B、C,按照坐标系空间自由度,三个方向上的平移和饶三个轴方向上的旋转。基准A限制饶Z轴的方向和Z轴的位置,基准B限制了X轴的方向和Y轴的位置,基准C限制了X轴的位置 元素构造(CONST)该部分为根据需要产生一个新的元素,如两点拟合一条直线,中分等等。 以中点为例: CONST/POINT, F(MIDPT1), MIDPT, FA(CIR1), FA(CIR2) CONST为构造的主关键字。 POINT为所构造结果元素的类型,也可以为PLANE,LINE等等。 F(MIDPT1)为构造结果元素的理论值。 MIDPT表示构造的方式,这里是中分。 FA(CIR1),FA(CIR2)为进行构造所需要的元素。 除了MIDPT,支持的常用的构造方式还有 PARTO 平行、INTOF相交、PERPTO垂直、TANTO相切、PROJPT投影、MOVEPT移动、BF拟合。 定义公差及评价(TOL)以位置度公差为例,定义公差的语句为 T(TPOS2D1)=TOL/POS,2D, 0.100000,F(PLN1),F(LN1),F(CYL1) T 表示定义的类型为公差 TPOS2D1 表示该公差的名称 TOL 为定义公差的关键字 POS 公差定义的类型,此处为位置度。 2D 位置度公差的参数,表示此公差为2维位置度公差 公差带 F(PLN1) 第一参考 F(LN1) 第二参考 F(CYL1) 第三参考 常用的公差评价语句有 平面度 T(TFLAT1) = TOL/FLAT, 0.1 全跳动 T(TRNOUT1) = TOL/TRNOUT, 0.100000,F(CYL1) 对称度 T(TSYM1) = TOL/SYM, 0.200000,F(PLN1) 直线度 T(TSTRGHT1) = TOL/STRGHT, 0.050000 曲面轮廓度 T(TPROFS1) = TOL/PROFS, -0.100000, 0.100000,F(CYL1) 点轮廓度 T(TPROFP1) = TOL/PROFP, -0.100000, 0.100000 线轮廓度 T(TPROFL1) = TOL/PROFL, -0.100000, 0.100000 平行度公差 T(TPARLEL1)=TOL/PARLEL, 0.050000,FA(PLN2) 垂直度公差 T(TPERP1)=TOL/PERP, 0.050000,FA(PLN3) 锥角公差 T(TCONEANG1) = TOL/ANGL, -0.020000, 0.020000 角度公差 T(TANGLB1) = TOL/ANGLB, 45, -0.020000, 0.020000 倾斜度公差 T(TANGLR1) = TOL/ANGLR, 45.000000, 0.100000,FA(PLN3) 圆跳动公差 T(TCRNOUT1) = TOL/CRNOUT, 0.200000,F(CYL1) 直径公差 T(TDIAM1) = TOL/DIAM, -0.020000, 0.020000 圆柱度 T(TCYLCTY1) = TOL/CYLCTY, 0.020000 同心度 T(TCONCEN1) = TOL/CONCEN, 0.200000,FA(CIR2) 圆度 T(TCIRLTY1) = TOL/CIRLTY, 0.050000 半径公差 T(TRAD1) = TOL/RAD, -0.020000, 0.020000 宽度公差 T(TWIDTH2)=TOL/WIDTH, -0.010000, 0.010000,SHORT 输出报告(OUTPUT)对测量的元素进行评价及输出,首先我们需要定义个一个输出设备,以输出到D盘demo目录下的demo.txt文件为例: 首先定义一个设备: DID(demo_tech) = DEVICE/STOR,‘D:\demo\demo.txt’ DID 表示定义一个设备 Demo_tech 所定义设备的名称 DEVICE 定义设备的关键字 STOR 该设备为一个存储设备 ‘D:\demo\demo.txt’ 该设备的路径及文件名称 以覆盖的方式打开这个设备: OPEN/DID(demo_tech),FDATA,V(DEFAULTFORMAT),OUTPUT,OVERWR OPEN 打开设备 FDATA 指定数据的格式 V(DEFAULTFORMAT) 输出格式,这里表示为软件默认的输出格式 OUTPUT 该设备为输出数据使用 OVERWR 输出时覆盖之前设备的内容 输出指定元素的数据 TEXT/OUTFIL,‘输出演示’ OUTPUT/FA(SLT1), TA(TWIDTH1) OUTPUT/FA(CIR2) TEXT 往指定的位置中插入文本 OUTFIL 向输出文件中插入文本 ‘输出演示’ 所插入的字符串 OUTPUT 输出的关键字 FA(SLT1), TA(TWIDTH1) 元素SLT1评价于公差TWIDTH1,这里实际是键槽使用了宽度公差TWIDTH1进行评价 FA(CIR2) 输出元素CIR2的实际值的相关信息。 关闭设备 CLOSE/DID(demo_tech) 输出时不指定设备名,软件默认为在屏幕中输出,该设备的名称是DEFAULTSCREEN。 一个设备的OPEN必须对应一个CLOSE。 面向结构相关的DMIS语句 变量定义所有的变量在使用前都需要进行声明,变量的名称由1到16个字母数字、下划线组成,名称的第一个字符只能为希腊字母。变量名称不能使用DMIS预留字,预留字包括DMIS主字、次字、常用函数等等DECL/COMMON,DOUBLE,XX,NUM[3,30] DECL/COMMON,INTGR,I DECL/COMMON,CHAR,20,TEMPSTR DECL 为变量定义的关键字 COMMON 变量的作用范围,这里是公共变量 DOUBLE 变量的数据类型,这个是双精度数字型变量 XX 变量名称 NUM[3,30] 定义的变量为一个3*30的变量数组 INTGR 变量的数据类型为整数型 CHAR 变量的数据类型为字符型变量 20 字符变量的长度最多为20个字符,中文算两个字符。 赋值 XX = ASSIGN/40.213 NUM[1,1] = ASSIGN/30.213*20 - 30 I = ASSIGN/1TEMPSTR = ASSIGN/‘Hello world’ XX 变量名称 ASSIGN 赋值的关键字 NUM[1,1] 数组变量 赋值语句‘/’之后,可以跟具体的值或者是一个表达式。 赋值表达式或者值需要和变量类型保持一致。 逻辑表达式.AND. 逻辑与 .OR. 逻辑或 .NOT. 逻辑非 .EQ. 等于 .NE. 不等于 .LT. 小于 .LE. 小于等于 .GT. 大于 .GE. 大于等于 界面输入界面输入的关键字是PROMPT,例如 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,Check,’ 直径公差',Check_var3运行结果如下图 例如 IF/(NCYCLE .EQ. 10) $$instructions ELSE $$instructions ENDIF $$ instructions为输入的表达式,在NCYCLE的值和10比较后选择执行哪一句表达式。 DO循环例如 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后结束。 分支选择 SELECT CASEDECL/INTGR,i DECL/CHAR,50,tx i=ASSIGN/10 SELECT/i CASE/10 tx=ASSIGN/CONCAT('THE ACTUAL VALUE OF X IS: ',STR(i)) TEXT/OPER,tx ENDCAS CASE/20 tx=ASSIGN/CONCAT('THE ACTUAL VALUE OF X IS: ',STR(i)) TEXT/OPER,tx ENDCAS DFTCAS TEXT/OPER,‘X is not equal to the 2 cases’ ENDCAS ENDSEL 程序跳转JUMPTOJUMPTO/(DEMO) $$ instructions $$ instructions (DEMO) $$ instructions $$ instructions 常用字符函数和数学函数ABS(X) 绝对值 ACOS(X) 反余弦 ASIN(X) 反正弦 ATAN(X) 反正切 ATAN2(Y,X) 取回角度(输入XY坐标,然后返回这个点到坐标原点的角度,以X轴线上为0值开始,两个值不能同时为0,返回值在正负PIE之间。) COS(X) 余弦 DBLE(X) 将数字变量’x’变为双精度型类型变量 DTOR(X) 角度转弧度 EXP(X) 指数函数 INT(X) 取整数部分 LN(X) 自然对数 LOG(X) 以10为底的对数 MN(val1, val2, …) 取出列表值中的最小值 MOD(x,y) x/y的求余运算 MX(val1, val2, …) 取出列表值中的最大值 NINT(X) 四舍五入取整 ORD(x) 顺序返回一个值,如果x为BOOL型,flase返回0,true返回1.如果x为字符型,返回第一个字符的ASCI I值。 RL(X) 返回实数型数据 RTOD(X) 弧度转角度 SIN(X) 正弦 SQRT(X) 返回平方根 TAN(X) 正切 宏定义宏定义的语法为:M(demo_m) = Macro/var_1,‘name_1’ ENDMACM 表示定义内容为宏程序 demo_m 宏名称 var_1 宏程序所传递的参数变量 name_1 宏程序中所传递的标签名 以一个程序对比为例,输出圆CIR1的直径\X坐标\Y坐标\Z坐标,正常的DMIS程序为 DECL/COMMON,DOUBLE,DATAC[4] DATAC[1] = OBTAIN/FA(CIR1),4 DATAC[2] = OBTAIN/FA(CIR1),5 DATAC[3] = OBTAIN/FA(CIR1),6 DATAC[4] = OBTAIN/FA(CIR1),10 WRITE/DID(DEFAULTSCREEN),DATAC[1] WRITE/DID(DEFAULTSCREEN),DATAC[2] WRITE/DID(DEFAULTSCREEN),DATAC[3] WRITE/DID(DEFAULTSCREEN),DATAC[4]将上面一段程序做为宏程序则为: M(demo) = MACRO/‘CIR1’ DECL/COMMON,DOUBLE,DATAC[4] DATAC[1] = OBTAIN/FA(CIR1),4 DATAC[2] = OBTAIN/FA(CIR1),5 DATAC[3] = OBTAIN/FA(CIR1),6 DATAC[4] = OBTAIN/FA(CIR1),10 WRITE/DID(DEFAULTSCREEN),DATAC[1] WRITE/DID(DEFAULTSCREEN),DATAC[2] WRITE/DID(DEFAULTSCREEN),DATAC[3] WRITE/DID(DEFAULTSCREEN),DATAC[4]ENDMAC CALL/M(demo),(CIR1) 如果要完成同样的输出要求针对圆CIR2,CIR3,CIR4,CIR5,只需要在程序中对这个宏进行调用就可达到要求,程序所添加的内容即为: CALL/M(demo),(CIR2) CALL/M(demo),(CIR3) CALL/M(demo),(CIR4) CALL/M(demo),(CIR5) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |