DMISMN/''
$$ *** 程序初始段 ***
MODE/MAN
RECALL/D(MAC)
WKPLAN/XYPLAN
UNITS/MM,ANGDEC,TEMPC
DECPL/DIST,4,VEC,8,ANGLE,4,TEMP,1
TECOMP/OFF
PRCOMP/ON
PTBUFF/ON
SNSET/DEPTH,0.0000
SNSET/CLRSRF,OFF
FLY/5.0000
FEDRAT/MESVEL,PCENT,0.50
FEDRAT/POSVEL,PCENT,0.75
FEDRAT/ROTVEL,PCENT,0.75
FEDRAT/SCNVEL,PCENT,0.75
ACLRAT/MESACL,PCENT,0.75
ACLRAT/POSACL,PCENT,0.75
V(TEXT)=VFORM/ALL
V(HTML)=VFORM/DME,'HTM',ALL
V(SPCLIGHT)=VFORM/STAT,'SDD',ALL
V(QSSTATQ)=VFORM/STAT,'DFQ',ALL
V(QSSTATD)=VFORM/STAT,'DFD',ALL
V(GRAPHF)=VFORM/DME,'DMG',ALL
V(GRAPHV)=VFORM/DME,'DMG/V',ALL
V(GRAPHP)=VFORM/DME,'DMG/P',ALL
V(GRAPHO)=VFORM/DME,'DMG/O',ALL
V(GRAPHA)=VFORM/DME,'DMG/A',ALL
$$ *** 程序初始段结束 ***
$$===========================================================
DECL/REAL,STANG,STEPA,ROLL,SAFEZ,X1,Y1,Z1,I1,J1,K1,R1,A1,IJK,I0,J0,K0
DECL/INTGR,II,STEPNUM
DECL/CHAR,80,FILENAME
$$===========================================================
V(TEXT)=VFORM/ALL
SNSET/SEARCH,10.000
SNSET/APPRCH,5.0000
SNSET/RETRCT,5.0000
TEXT/OPER,'-----盘状凸轮数模测量程序-----'
TEXT/OPER,'----- 单边测量 -----'
STANG=PROMPT/'起始角度?'
STEPA=PROMPT/'角度间隔?'
STEPNUM=ASSIGN/INT(360/STEPA)
$$ROLL=PROMPT/'滚子直径?'
$$SAFEZ=PROMPT/'安全高度?'
TEXT/OPER,CONCAT('在起点(a=',STR(stang),')附近测量一点,测量完毕后不要移动测头!')
F(POI_1)=FEAT/POINT,CART,0,0,0,0,0,1
MEAS/POINT,F(POI_1),1
ENDMES
X1=OBTAIN/FA(PO1),3
Y1=OBTAIN/FA(PO1),4
Z1=OBTAIN/FA(PO1),5
I0=OBTAIN/FA(PO1),6
J0=OBTAIN/FA(PO1),7
K0=OBTAIN/FA(PO1),8
IJK=ASSIGN/(X1*I0+Y1*J0+Z1*K0)
IF/ (IJK .LT. 0)
IJK=ASSIGN/-1
ELSE
IJK=ASSIGN/1
ENDIF
MODE/PROG,MAN
F(GSU_1)=FEAT/GSURF
G(ALL_THE_MODEL)=GEOM/OFFSET,0.000
MEAS/GSURF,F(GSU_1),STEPNUM
DO/ II,1 ,STEPNUM,1
R1=ASSIGN/SQRT(X1*X1+Y1*Y1)
A1=ASSIGN/((II-1)*STEPA+STANG)
I1=ASSIGN/COS(A1*3.1415926/180)*IJK
J1=ASSIGN/SIN(A1*3.1415926/180)*IJK
K1=ASSIGN/0
COMMAND=ASSIGN/CONCAT('PTMEAS/POL,STR(R1),',',STR(A1),',',STR(Z1),',',STR(I1),',',STR(J1),',',STR(K1)')
DMESW/COMAND,COMMAND
X1=OBTAIN/FA(PO1),3
Y1=OBTAIN/FA(PO1),4
ENDDO
ENDMES
CONST/GEOM,F(GSU_1),NEARPT,FA(GSU_1)
MODE/MAN
ENDFIL