调用外部测量圆的子程序
SUBROUTINE/CIRCLE,
DATA = "DATA" : ,
R = "R" : ,
SN = "START_NO." : ,
EN = "END_NO." : ,
=
打开一个文件,用于输出测量值
FPTR =FILE/OPEN,C:and SettingsDocuments,WRITE
ASSIGN/NUM = 0
利用变量定义,设置读取外部数据的文件名及路径
ASSIGN/V3 = "D:/PCDMIS3.5/DATA/"
ASSIGN/V4 = ".DAT"
ASSIGN/V5 = V3+DATA+V4
定义孔的测量深度
C1 =COMMENT/INPUT,HOLE'S DEPTH
定义+\-公差带
C2 =COMMENT/INPUT,+tol
C3 =COMMENT/INPUT,-tol
打开需要读取的数据文件
FPTR1 =FILE/OPEN,V5,READ
L5 =LABEL/
变量赋值
F1 =FILE/READLINE,FPTR1,NO+","+XX+","+YY+","+ZZ+","+DD
ASSIGN/NUM = NUM+1
这个IF判断是为了让程序可以在任意指定的起始位置开始测量孔,而不一定非要从第一个孔开始测量
IF_GOTO/NUM>=SN ,GOTO = L2
GOTO/L5
IF/R==1
ASSIGN/XX = -XX X轴对称
END_IF/
IF/R==2
ASSIGN/YY = -YY y轴对称
END_IF/
IF/R==3
ASSIGN/ZZ = -ZZ z轴对称
END_IF/
ELSE/
L2 =LABEL/
自动圆测量
CIRCLENO =AUTO/CIRCLE, SHOWHITS=YES, SHOWALLPARAMS=YES
THEO/XX,YY,ZZ,0,0,1,DD
ACTL/-0.1728,6.5911,-32.187,0.0254281,-0.4017274,0.9154062,0
TARG/XX,YY,ZZ,0,0,1
THEO_THICKNESS = 0, RECT, IN, CIRCULAR, LEAST_SQR ,$
AUTO MOVE = YES, DISTANCE = 20, RMEAS = None, READ POS = NO, FIND HOLE = NO, REMEASURE = NO ,$
NUMHITS = 4, INIT = 0, PERM = 0, SPACER = 0, PITCH = 0 ,$
START ANG = 0, END ANG = 360, DEPTH = C1.INPUT ,$
ANGLE VEC = 1,0,0
MEAS/CIRCLE
HIT/BASIC,0,0,0,-1,0,0,0,0,0
HIT/BASIC,0,0,0,0,-1,0,0,0,0
HIT/BASIC,0,0,0,1,0,0,0,0,0
HIT/BASIC,0,0,0,0,1,0,0,0,0
ENDMEAS/
评价
FORMAT/TEXT,OPTIONS,HEADINGS, , ;MEAS,NOM,DEV, , ,
DIM LOC1= LOCATION OF CIRCLE CIRCLENO UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=1.00 OUTPUT=BOTH
AX MEAS NOMINAL DEV
X -0.1728 0.0000 -0.1728
Y 6.5911 0.0000 6.5911
D 0.0000 0.0000 0.0000
END OF DIMENSION LOC1
DIM LOC2= LOCATION OF CIRCLE CIRCLENO UNITS=MM ,$
GRAPH=OFF TEXT=OFF MULT=1.00 OUTPUT=BOTH
AX MEAS NOMINAL DEV
Z -32.1870 0.0000 -32.1870
END OF DIMENSION LOC2
变量赋值
ASSIGN/V2 = LOC1.X.MEAS
END_ELSE/
将指定值输出到指定文件中(路径在程序开始时已经设置)
FILE/WRITELINE,FPTR,V2
判断,如果计数=结束值,结束程序
IF_GOTO/NUM==EN,GOTO = END
循环
GOTO/L5
END =LABEL/
结束子程序
ENDSUB/
这是一个测量孔的通用程序