-
DMIS 4.0
简单教程
几何元素
F(CIRC3)=FEA
T/CIRCLE,INNER,CART,-32.5000,38.3494,-25.0000,0.00
00,0.0000,1.0000,10.0
000
MEAS/CIRCLE,F(CIRC3),3
PTMEA
S/CART,-32.5000,33.3494,-25.0000,0.0000,1.0000,0.0
000
PTMEAS/CART,-36.8301,40.8494,-25.00
00,0.8660,-0.5000,0.0000
PTMEAS/CART,-2
8.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.0
000
“
MEAS
”指令表示一个测量过程的开始。如果系统处在“
MO
DE/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
中进行变量赋值并不像只用“
=
”号那样简单
TCD
IRS=ASSIGN/'C:ProgrammiCoord3ARCOData'
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 1s
t point
数据输入
TEXT/QUERY,(NMVAR),20,A,L,'Write your
name'
提取数据
把一个变量赋
值为任何一个参数的定义。不要忘了“
F
”和“
FA
”、“
语句中的序号代表元素定义中数据位置:<
/p>
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(@eln
m),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
S
”、“
< br>SA
”的区别:
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
$$$$
——————
——————————————————————————————————
D
ECL/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
$$$$
< br>————————————————————————————————————————
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