DMIS语言简易教程.doc_第1页
DMIS语言简易教程.doc_第2页
DMIS语言简易教程.doc_第3页
DMIS语言简易教程.doc_第4页
DMIS语言简易教程.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DMIS 4.0 简单教程 几何元素F(CIRC3)=FEAT/CIRCLE,INNER,CART,-32.5000,38.3494,-25.0000,0.0000,0.0000,1.0000,10.0000MEAS/CIRCLE,F(CIRC3),3PTMEAS/CART,-32.5000,33.3494,-25.0000,0.0000,1.0000,0.0000PTMEAS/CART,-36.8301,40.8494,-25.0000,0.8660,-0.5000,0.0000PTMEAS/CART,-28.1699,40.8494,-25.0000,-0.8660,-0.5000,0.0000ENDMESF(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,TCDIRSDECL/INTGR,TCNSLTDECL/DOUBLE,TCDIFX,TCDIFY,TCDIFZDECL/CHAR,80,RESULTS10DECL/CHAR,80,RESULTS10,5通过“DECL”指令,可以定义各种变量DECL/INTGR,INDDECL/CHAR,80,RESULTS10DO/IND,1,10,1RESULTSIND=ASSIGN/ENDDO可以定义以下类型的变量:BOOLCHARINTGRREALVECTORLONG这些变量的有效范围可以是:COMMONGLOBALLOCALASSIGN变量赋值在DMIS中进行变量赋值并不像只用“=”号那样简单TCDIRS=ASSIGN/C:ProgrammiCoord3ARCODataTCNSLT=ASSIGN/6TEXT提示信息TEXT/OPER,MAKE SURE THE PART IS ON THE FIXTURE text OPER must be closed pressing oKTEXT/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,0F(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0F(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0FA(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0FA(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0FA(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0DECL/INTGR,iDECL/CHAR,20,elnmDECL/DOUBLE,xx,yy,zzDO/i,1,3elnm=ASSIGN/CONCAT(poi_,STR(i)xx=OBTAIN/FA(elnm),3yy=OBTAIN/FA(elnm),4zz=OBTAIN/FA(elnm),5elnm=ASSIGN/CONCAT(newpoi_,STR(i)F(elnm)=FEAT/POINT,CART, xx,yy,zz, 0,0,0FA(elnm)=FEAT/POINT,CART, xx,yy,zz, 0,0,0ENDDO使用“EVAL”而不是使用“OUTPUT”时,可以在不输出该数据的情况下,得到需要的数据。DECL/DOUBLE,tol_valueT(TP)=TOL/POS,2D,1.0000EVAL/FA(COORD3),TA(TP)tol_value=OBTAIN/TA(TP),3CHAR定义一个字符函数,返回一个长度为1、包含一个值为1-255的基于X的字符。CHR(x)$ * to print ALL the ASCII characters *DECL/CHAR,50,stDECL/INTGR,iiDISPLY/OFFDISPLY/TERM,V(TEXT)DO/ii,1,255st=ASSIGN/CHR(ii)st=ASSIGN/CONCAT(STR(ii), ,st)TEXT/OUTFIL,stENDDOCONCATIs used to concatenate more than 1 stringFILENAME=ASSIGN/CONCAT(PART1,NAME,.TXT)SCSNS用来获取实际激活的测头的名字DECL/DOUBLE,PRDIAMDECL/CHAR,50,SENSOR_NAMESENSOR_NAME=ASSIGN/SCSNS()PRDIAM=OBTAIN/SA(SENSOR_NAME),10FILE 文件$ write points coordinates to file$DECL/CHAR,50,filnm,elnmDECL/INTGR,iDECL/DOUBLE,xxDECL/DOUBLE,yyDECL/DOUBLE,zzTEXT/QUERY,(filnm),50,A,L,insert file namefilnm=ASSIGN/CONCAT(C:,filnm,.TXT)DID(F1)=DEVICE/STOR,filnmOPEN/DID(F1),DIRECT,OUTPUT,OVERWRF(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0F(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0F(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0FA(POI_1)=FEAT/POINT,CART, 1.111,2.222,3.333, 0,0,0FA(POI_2)=FEAT/POINT,CART, 4.444,5.555,6.666, 0,0,0FA(POI_3)=FEAT/POINT,CART, 7.777,8.888,9.999, 0,0,0DO/i,1,3elnm=ASSIGN/CONCAT(poi_,STR(i)xx=OBTAIN/FA(elnm),3yy=OBTAIN/FA(elnm),4zz=OBTAIN/FA(elnm),5WRITE/DID(F1),xxWRITE/DID(F1),yyWRITE/DID(F1),zzENDDOCLOSE/DID(F1)$ read from file$DECL/CHAR,50,filnmDECL/CHAR,50,xyzDECL/DOUBLE,xxDECL/DOUBLE,yyDECL/DOUBLE,zzTEXT/QUERY,(filnm),50,A,L,insert file namefilnm=ASSIGN/CONCAT(C:,filnm,.TXT)DID(F1)=DEVICE/STOR,filnmOPEN/DID(F1),DIRECT,INPUTREAD/DID(F1),xxREAD/DID(F1),yyREAD/DID(F1),zzF(POI_10)=FEAT/POINT,CART, xx,yy,zz, 0,0,0FA(POI_10)=FEAT/POINT,CART, xx,yy,zz, 0,0,0READ/DID(F1),xxREAD/DID(F1),yyREAD/DID(F1),zzF(POI_20)=FEAT/POINT,CART, xx,yy,zz, 0,0,0FA(POI_20)=FEAT/POINT,CART, xx,yy,zz, 0,0,0READ/DID(F1),xxREAD/DID(F1),yyREAD/DID(F1),zzF(POI_30)=FEAT/POINT,CART, xx,yy,zz, 0,0,0FA(POI_30)=FEAT/POINT,CART, xx,yy,zz, 0,0,0result=ASSIGN/CONCAT(STR(xx), , ,STR(yy), , ,STR(zz)TEXT/OPER,resultCLOSE/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)$instructionsELSE$instructionsENDIFDO循环DECL/INTGR,iDECL/CHAR,20,elnmDECL/DOUBLE,xx,yy,zzDO/i,1,3,1elnm=ASSIGN/CONCAT(poi_,STR(i)xx=OBTAIN/FA(elnm),3yy=OBTAIN/FA(elnm),4zz=OBTAIN/FA(elnm),5elnm=ASSIGN/CONCAT(newpoi_,STR(i)F(elnm)=FEAT/POINT,CART, xx,yy,zz, 0,0,0FA(elnm)=FEAT/POINT,CART, xx,yy,zz, 0,0,0ENDDO分枝选择DECL/INTGR,iDECL/CHAR,50,txi=ASSIGN/10SELECT/iCASE/10tx=ASSIGN/CONCAT(THE ACTUAL VALUE OF X IS: ,STR(i)TEXT/OPER,txENDCASCASE/20tx=ASSIGN/CONCAT(THE ACTUAL VALUE OF X IS: ,STR(i)TEXT/OPER,txENDCASDFTCASTEXT/OPER,X is not equal to the 2 casesENDCASENDSEL程序跳转JUMPTO/(CONTINUEFROMHERE)$ instructions$ instructions(CONTINUEFROMHERE)$ instructions$ instructions数学函数ABS(X) absolute valueACOS(X) arccosineASIN(X) arcsineATAN(X) arctangentATAN2(Y,X) arctangent of y/x, the sign of y and x determinate the quadrantDTOR(X) convert degrees to radiansRTOD(X) convert radians to degreesEXP(X) exponentialINT(X) return an integerMN(val1, val2, ) obtain the smallest value of a list of valuesMX(val1, val2, ) obtain the biggest value of a list of valuesNINT(X) return an integer rounding the nearest valueLEN(str1) length of a stringINDX(str1,str2) location of a substring in a stringSDATE() return the date yyyy/mm/ddSTIME() return the date hh:mm:ssCOS(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 rootSTR(X) convert a number in a stringVAL(X) convert a string in number宏宏可以在主程序中,也可以在外部文件中。如果在主程序中,宏必须位于程序开始的位置。M(foro)=MACRO/off_x,off_y,nome_ciDECL/LOCAL,DOUBLE,r_foro,z_misr_foro=ASSIGN/6.25z_mis=ASSIGN/-2.5F(nome_ci) = FEAT/CIRCLE, INNER, CART, off_x, off_y, z_mis, 0, 0, 1, r_foro*2MEAS/CIRCLE, F(nome_ci), 4GOTO/off_x, off_y, 7PTMEAS/CART, off_x+r_foro, off_y, z_mis, -1, 0, 0PTMEAS/CART, off_x, off_y+r_foro, z_mis, 0, -1, 0PTMEAS/CART, off_x-r_foro, off_y, z_mis, 1, 0, 0PTMEAS/CART, off_x, off_y-r_foro, z_mis, 0, 1, 0GOTO/off_x, off_y, 7ENDMESENDMAC$ instructions$ instructionsCALL/M(foro),12.5,12.5,(foro1)$ instructions$ instructions在使用“EXTFIL”指令后,可以在外部文件中定义宏EXTFIL/DMIS,c:cimMACRO.dmi宏的外部文件必须以“.DMI”为后缀,由“DMISMD”开始,并由“ENDFIL”结束。在宏定义文件中,它的语法和DMIS程序相同。DMISMD/module_nameM(macro_1)=MACRO/passedtextTEXT/OPER,CONCAT(You passed the following text to the macro: ,passedtext)ENDMACM(macro_2)=MACRO/num1,num2DECL/DOUBLE,sumressumres=ASSIGN/num1+num2TEXT/OPER,CONCAT(The sum of

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论