DMIS语言简易教程.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DMIS 语言 简易 教程
- 资源描述:
-
DMIS 4.0 简单教程 几何元素 F(CIRC3)=FEAT/CIRCLE,INNER,CART,-32.5000,38.3494,-25.0000,0.0000,0.0000,1.0000,10.0000 MEAS/CIRCLE,F(CIRC3),3 PTMEAS/CART,-32.5000,33.3494,-25.0000,0.0000,1.0000,0.0000 PTMEAS/CART,-36.8301,40.8494,-25.0000,0.8660,-0.5000,0.0000 PTMEAS/CART,-28.1699,40.8494,-25.0000,-0.8660,-0.5000,0.0000 ENDMES F(CIRC3)=FEAT/CIRCLE,INNER,CART,-32.5000,38.3494,-25.0000,0.0000,0.0000,1.0000,10.0000 “MEAS”指令表示一个测量过程的开始。如果系统处在“MODE/AUTO”状态下,那么系统将自动测量下面的空间点。如果系统的状态是“MODE/PROG”,则PTMEAS将无须干预地将指定的点测量完毕。 MEAS/CIRCLE,F(CIRC3),3 “PTMEAS”指令只是指明需要测量的点的坐标和触测的方向。 PTMEAS/CART,-28.1699,40.8494,-25.0000,-0.8660,-0.5000,0.0000 “ENDMES”指令将结束点的测量,然后计算结果。 DECL变量定义 DECL/CHAR,80,TCDIRS DECL/INTGR,TCNSLT DECL/DOUBLE,TCDIFX,TCDIFY,TCDIFZ DECL/CHAR,80,RESULTS[10] DECL/CHAR,80,RESULTS[10,5] 通过“DECL”指令,可以定义各种变量 DECL/INTGR,IND DECL/CHAR,80,RESULTS[10] DO/IND,1,10,1 RESULTS[IND]=ASSIGN/'' ENDDO 可以定义以下类型的变量: BOOL CHAR INTGR REAL VECTOR LONG 这些变量的有效范围可以是: COMMON GLOBAL LOCAL ASSIGN变量赋值 在DMIS中进行变量赋值并不像只用“=”号那样简单 TCDIRS=ASSIGN/'C:\Programmi\Coord3\ARCO\Data\' TCNSLT=ASSIGN/6 TEXT提示信息 TEXT/OPER,'MAKE SURE THE PART IS ON THE FIXTURE' text OPER must be closed pressing oK TEXT/MAN,'MEAS UPPER HOLE' text MAN disappear automatically when you measure the 1st point 数据输入 TEXT/QUERY,(NMVAR),20,A,L,'Write your name' 提取数据 把一个变量赋值为任何一个参数的定义。不要忘了“F”和“FA”、“S”、“SA”的区别: 语句中的序号代表元素定义中数据位置: F(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0 F(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0 F(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0 FA(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0 FA(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0 FA(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0 DECL/INTGR,i DECL/CHAR,20,elnm DECL/DOUBLE,xx,yy,zz DO/i,1,3 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 使用“EVAL”而不是使用“OUTPUT”时,可以在不输出该数据的情况下,得到需要的数据。 DECL/DOUBLE,tol_value T(TP)=TOL/POS,2D,1.0000 EVAL/FA(COORD3),TA(TP) tol_value=OBTAIN/TA(TP),3 CHAR 定义一个字符函数,返回一个长度为1、包含一个值为1-255的基于‘X’的字符。 CHR(x) $$ *** to print ALL the ASCII characters *** DECL/CHAR,50,st DECL/INTGR,ii DISPLY/OFF DISPLY/TERM,V(TEXT) DO/ii,1,255 st=ASSIGN/CHR(ii) st=ASSIGN/CONCAT(STR(ii),' ',st) TEXT/OUTFIL,st ENDDO CONCAT Is used to concatenate more than 1 string FILENAME=ASSIGN/CONCAT(PART1,NAME,'.TXT') SCSNS 用来获取实际激活的测头的名字 DECL/DOUBLE,PRDIAM DECL/CHAR,50,SENSOR_NAME SENSOR_NAME=ASSIGN/SCSNS() PRDIAM=OBTAIN/SA(@SENSOR_NAME),10 FILE 文件 $$———————————————————————————————————————— $$ write points coordinates to file $$————————————————————————————————————————DECL/CHAR,50,filnm,elnm DECL/INTGR,i DECL/DOUBLE,xx DECL/DOUBLE,yy DECL/DOUBLE,zz TEXT/QUERY,(filnm),50,A,L,'insert file name' filnm=ASSIGN/CONCAT('C:\',filnm,'.TXT') DID(F1)=DEVICE/STOR,filnm OPEN/DID(F1),DIRECT,OUTPUT,OVERWR F(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0 F(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0 F(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0 FA(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0 FA(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0 FA(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0 DO/i,1,3 elnm=ASSIGN/CONCAT('poi_',STR(i)) xx=OBTAIN/FA(@elnm),3 yy=OBTAIN/FA(@elnm),4 zz=OBTAIN/FA(@elnm),5 WRITE/DID(F1),xx WRITE/DID(F1),yy WRITE/DID(F1),zz ENDDO CLOSE/DID(F1) $$———————————————————————————————————————— $$ read from file $$———————————————————————————————————————— DECL/CHAR,50,filnm DECL/CHAR,50,xyz DECL/DOUBLE,xx DECL/DOUBLE,yy DECL/DOUBLE,zz TEXT/QUERY,(filnm),50,A,L,'insert file name' filnm=ASSIGN/CONCAT('C:\',filnm,'.TXT') DID(F1)=DEVICE/STOR,filnm OPEN/DID(F1),DIRECT,INPUT READ/DID(F1),xx READ/DID(F1),yy READ/DID(F1),zz F(POI_10)=FEAT/POINT,CART, xx,yy,zz, 0,0,0 FA(POI_10)=FEAT/POINT,CART, xx,yy,zz, 0,0,0 READ/DID(F1),xx READ/DID(F1),yy READ/DID(F1),zz F(POI_20)=FEAT/POINT,CART, xx,yy,zz, 0,0,0 FA(POI_20)=FEAT/POINT,CART, xx,yy,zz, 0,0,0 READ/DID(F1),xx READ/DID(F1),yy READ/DID(F1),zz F(POI_30)=FEAT/POINT,CART, xx,yy,zz, 0,0,0 FA(POI_30)=FEAT/POINT,CART, xx,yy,zz, 0,0,0 result=ASSIGN/CONCAT(STR(xx),' , ',STR(yy),' , ',STR(zz)) TEXT/OPER,result CLOSE/DID(F1) 逻辑操作符 .AND. .OR. .NOT. 关系操作符 .EQ. equal to .NE. NOT equal to .LT. less than .LE. less than or equal .GT. greater than .GE. greater than or equal to 条件判断 IF/(NCYCLE .EQ. 10) $$instructions ELSE $$instructions ENDIF 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 分枝选择 DECL/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 程序跳转 JUMPTO/(CONTINUEFROMHERE) $$ instructions $$ instructions (CONTINUEFROMHERE) $$ instructions $$ instructions 数学函数 ABS(X) absolute value ACOS(X) arccosine ASIN(X) arcsine ATAN(X) arctangent ATAN2(Y,X) arctangent of y/x, the sign of y and x determinate the quadrant DTOR(X) convert degrees to radians RTOD(X) convert radians to degrees EXP(X) exponential INT(X) return an integer MN(val1, val2, …) obtain the smallest value of a list of values MX(val1, val2, …) obtain the biggest value of a list of values NINT(X) return an integer rounding the nearest value LEN(str1) length of a string INDX(str1,str2) location of a substring in a string SDATE() return the date ‘yyyy/mm/dd’ STIME() return the date ‘hh:mm:ss’ COS(X) Real or Double (argument in radians) SIN(X) Real or Double (argument in radians) TAN(X) Real or Double (argument in radians) SQRT(X) square root STR(X) convert a number in a string VAL(X) convert a string in number 宏 宏可以在主程序中,也可以在外部文件中。 如果在主程序中,宏必须位于程序开始的位置。 M(foro)=MACRO/off_x,off_y,'nome_ci' DECL/LOCAL,DOUBLE,r_foro,z_mis r_foro=ASSIGN/6.25 z_mis=ASSIGN/-2.5 F(@nome_ci) = FEAT/CIRCLE, INNER, CART, off_x, off_y, z_mis, 0, 0, 1, r_foro*2 MEAS/CIRCLE, F(@nome_ci), 4 GOTO/off_x, off_y, 7 PTMEAS/CART, off_x+r_foro, off_y, z_mis, -1, 0, 0 PTMEAS/CART, off_x, off_y+r_foro, z_mis, 0, -1, 0 PTMEAS/CART, off_x-r_foro, off_y, z_mis, 1, 0, 0 PTMEAS/CART, off_x, off_y-r_foro, z_mis, 0, 1, 0 GOTO/off_x, off_y, 7 ENDMES ENDMAC $$ instructions $$ instructions CALL/M(foro),12.5,12.5,(foro1) $$ instructions $$ instructions 在使用“EXTFIL”指令后,可以在外部文件中定义宏 EXTFIL/DMIS,'c:\cim\MACRO.dmi' 宏的外部文件必须以“.DMI”为后缀,由“DMISMD”开始,并由“ENDFIL”结束。在宏定义文件中,它的语法和DMIS程序相同。 DMISMD/'module_name' M(macro_1)=MACRO/passedtext TEXT/OPER,CONCAT('You passed the following text to the macro: ',passedtext) ENDMAC M(macro_2)=MACRO/num1,num2 DECL/DOUBLE,sumres sumres=ASSIGN/num1+num2 TEXT/OPER,CONCAT('The sum of the 2 numbers is: ',STR(sumres)) ENDMAC ENDFIL 使用变量 当在元素名称、测头、或坐标系名称中使用变量时,必须在变量名前加一个“@”字符。 F(@nome_po) = FEAT/POINT, CART, off_x-8.25, off_y, 0, 0, 0, 1 MEAS/POINT, F(@nome_po), 1 PTMEAS/CART, off_x-8.25, off_y, 0, 0, 0, 1 ENDMES DELAY延时 将正在执行的程序延时几秒 DMESW/DELAY,time $$ stop the execution for … seconds e.g. DMESW/DELAY,2 $$ stop the execution for 2 seconds 输入输出指令 得到控制器的IO状态 IOTEST(io number) $$ read the status of an input DMEHW/IOSET,io number $$ to switch ON an output DMEHW/IORESET,io number $$ to switch OFF an output e.g. DECL/BOOL,RSLT RSLT=ASSIGN/IOTEST(5) $$ this gives the status of Input n° 5 DMEHW/IOSET,4 $$ to switch ON output n° 4 DMEHW/IORESET,4 $$ to switch OFF output n° 4 陌生人之间,没有距离,只有默契! 屏幕输出: TEMPSTRING = PROMPT/TEXT,'旋转探针角度'展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




DMIS语言简易教程.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/11894867.html