INCLUD/DMIS,'NET_DMIS_DEFINES.DMI'
UNITS/MM,ANGDEC
PRCOMP/ON
D(MACHINE)=DATSET/MCS
DMESW/COMAND,'PROBE_VAL/INIT'
DECL/INTGR,A1,V1,V3,V40,V44,V46,V77,V99
$$A1 清空报告的选项;V1 量块测量次数,从1到V44
$$V3 测量一个量块在两个不同的位置;V40 绕行路径:左1右2上3;V46 左右边采点;
$$V77 垂直度是哪个平面上的,XY平面上等于0;V99 坐标系是否重建的选项;
DECL/DOUBLE,A2,V2,V41,V42,V43,V45,V64,V107
$$A2 测针直径值;V2块规长度;V45测针半径值;V41 前端避让距离>=1MM;V42 侧面避让距离>=20MM
$$V43 后端避让距离>=1MM;V64 运行速度;V107获取距离的实测值
DECL/CHAR,256,SS1,SS3,SS4,SS5
$$SS1 获取当前的测头名称显示到报告界面;
$$SS3,SS4 操作者输入的AB角度值,SS5合并SS3,SS4,当前测头角度名称
A1=PROMPT/'清空报告,0清空,1不清空'
IF/(A1.LE.0)
DMESW/COMAND,'REPORT/CLEAR'
ENDIF
V2=ASSIGN/400.0000
V40=ASSIGN/2
V41=ASSIGN/10.00
V42=ASSIGN/70.00
V43=ASSIGN/10.00
V44=ASSIGN/2
V77=ASSIGN/0
V64=ASSIGN/200
DO/V3,1,2,1
IF/(V3.EQ.2)
TEXT/OPER,'请改变量块的摆放位置 '
SS3=PROMPT/'请输入A角'
SS4=PROMPT/'请输入B角'
SS5=ASSIGN/CONCAT('A',SS3,'B',SS4)
$$DID(DEFAULT)=DEVICE/STOR,'DEFAULT'
$$OPEN/DID(DEFAULT),SNS
S(@SS5)=SNSDEF/PROBE,INDEX,POL,0.0,0.0,0.0000,0.0000,1.0000,83.0000,3.0000
SNSLCT/SA(@SS5)
ENDIF
D(MACHINE)=DATSET/MCS
DMESW/COMAND,'SPECIAL/GAGE-OPEN,1'
DMESW/COMAND,'SPECIAL/GAGE-LENA,V2'
$$SS3=PROMPT/'请输入A角'
$$SS4=PROMPT/'请输入B角'
$$SS5=ASSIGN/CONCAT('A',SS3,'B',SS4)
$$DID(DEFAULT)=DEVICE/STOR,'DEFAULT'
$$OPEN/DID(DEFAULT),SNS
$$S(@SS5)=SNSDEF/PROBE,INDEX,POL,0.0,0.0,0.0000,0.0000,1.0000,83.0000,3.0000
$$SNSLCT/SA(@SS5)
$$A2=OBTAIN/SA(@SS5),10
$$V45=ASSIGN/A2/2
V45=ASSIGN/PROBE_RAD
FEDRAT/POSVEL,MMPS,V64
DMESW/COMAND,'SPECIAL/GAGE-PAR,V45,V64'
DMESW/COMAND,'SPECIAL/GAGE-PROBE,SS1,0'
$$V60=X **********
$$V61=Y *********
$$V62=Z ***********
$$DMESW/COMAND,'SPECIAL/GAGE-POS,V60,V61,V62'**********
V99=PROMPT/'坐标系1,原点2,再运行3'
PRCOMP/OFF
IF/(V99.EQ.3)
RECALL/DA(1)
ELSE
IF/(V99.EQ.2)
RECALL/DA(1)
MODE/MAN
F(大侧面点)=FEAT/POINT,CART,4.5,0,-4.5,0,0,-1
MEAS/POINT,F(大侧面点),1
$$PTMEAS/CART,4.5,0,-4.5,0,0,-1
ENDMES
F(前端面点)=FEAT/POINT,CART,0,17.5,4.5,-1,0,0
MEAS/POINT,F(前端面点),1
$$PTMEAS/CART,0,17.5,4.5,-1,0,0
ENDMES
F(小侧面点)=FEAT/POINT,CART,4.5,0,4.5,0,-1,0
MEAS/POINT,F(小侧面点),1
$$PTMEAS/CART,4.5,0,4.5,0,-1,0
ENDMES
D(1)=TRANS/XORIG,FA(前端面点),YORIG,FA(小侧面点),ZORIG,FA(大侧面点)
SAVE/DA(1)
ELSE
MODE/MAN
GEOALG/PLANE,LSTSQR
F(大侧面)=FEAT/PLANE,CART,151.888454,114.534794,30.000000,0,0,1.00000000
MEAS/PLANE,F(大侧面),4
$$PTMEAS/CART,31.407455,169.360657,30.000000,0,0,1.00000000
$$PTMEAS/CART,268.863922,160.453629,30.000000,0,0,1.00000000
$$PTMEAS/CART,274.022858,65.560959,30.000000,0,0,1.00000000
$$PTMEAS/CART,33.259583,62.763931,30.000000,0,0,1.00000000
ENDMES
SNSET/DEPTH,0
F(前端面)=FEAT/LINE,UNBND,CART,36.340958,0,5.530098,0.99996837,0,0.00795380,0,-1.00000000,$
0
MEAS/LINE,F(前端面),2
$$PTMEAS/CART,36.340958,0,5.530098,0,-1.00000000,0
$$PTMEAS/CART,256.325378,0,7.279865,0,-1.00000000,0
ENDMES
F(小侧面)=FEAT/POINT,CART,0,51.851379,9.990265,-1.00000000,0,0
MEAS/POINT,COMP,DME,F(小侧面),1
$$PTMEAS/CART,0,51.851379,9.990265,-1.00000000,0,0
ENDMES
DATDEF/F(大侧面),DAT(A)
D(1_S)=DATSET/DAT(A),-ZDIR
D(1_R)=ROTATE/ZAXIS,FA(前端面),-YDIR
D(1_T)=TRANS/ZORIG,FA(大侧面)
D(1_T)=TRANS/XORIG,FA(前端面)
D(1_T)=TRANS/YORIG,FA(小侧面)
SAVE/DA(1)
ENDIF
D(1)=TRANS/XORIG,V45,YORIG,V45,ZORIG,V45
SAVE/DA(1)
ENDIF
PRCOMP/ON
RECALL/DA(1)
MODE/AUTO,PROG,MAN
FEDRAT/POSVEL,MMPS,V64
DO/V1,1,V44,1
IF/(V40.EQ.3)
IF/(V1.EQ.1)
V46=PROMPT/'左边采点1,右边采点2'
ENDIF
IF/(V46.EQ.2)
GOTO/CART,-1*V41-V45,35+V45+V42,1.5
ELSE
IF/(V46.EQ.1)
GOTO/CART,-1*V41-V45,-1*V45-V42,1.5
ELSE
TEXT/OPER,'请输入有效值'
ENDIF
ENDIF
ELSE
GOTO/CART,-1*V41-V45,2,-1*V45-V42
ENDIF
F(工作面)=FEAT/PLANE,CART,0,17.5,4.5,-1,0,0
MEAS/PLANE,F(工作面),4
PTMEAS/CART,0,2,1.5,-1,0,0
PTMEAS/CART,0,2,7.5,-1,0,0
PTMEAS/CART,0,33,7.5,-1,0,0
PTMEAS/CART,0,33,1.5,-1,0,0
ENDMES
DATDEF/F(工作面),DAT(A)
D(坐标系-NEW_S)=DATSET/DAT(A),-XDIR
SAVE/DA(坐标系-NEW)
F(P1)=FEAT/POINT,CART,0,17.5,4.5,-1,0,0
MEAS/POINT,F(P1),1
PTMEAS/CART,0,17.5,4.5,-1,0,0
ENDMES
IF/(V3.EQ.1)
DMESW/COMAND,'SPECIAL/GAGE-POS,FA(P1)'
ENDIF
IF/(V40.EQ.3)
IF/(V46.EQ.2)
GOTO/CART,-1*V41-V45,35+V45+V42,4.5
GOTO/CART,V2+V45+V43,35+V45+V42,4.5
ELSE
IF/(V46.EQ.1)
GOTO/CART,-1*V41-V45,-1*V45-V42,4.5
GOTO/CART,V2+V45+V43,-1*V45-V42,4.5
ENDIF
ENDIF
ELSE
GOTO/CART,-1*V41-V45,17.5,-1*V45-V42
GOTO/CART,V2+V45+V43,17.5,-1*V45-V42
ENDIF
GOTO/CART,V2+V45+V43,17.5,4.5
F(P2)=FEAT/POINT,CART,V2,17.5,4.5,1,0,0
MEAS/POINT,F(P2),1
PTMEAS/CART,V2,17.5,4.5,1,0,0
ENDMES
IF/(V3.EQ.1)
DMESW/COMAND,'SPECIAL/GAGE-POS,FA(P2)'
ENDIF
T(距离-1)=TOL/DISTB,NOMINL,V2,-0.005,0.005,PT2PT,AVG
DMESW/COMAND,'OUTPUT_UNIT/MM'
OUTPUT/FA(P1),FA(P2),TA(距离-1)
V107=OBTAIN/TA(距离-1),4
DMESW/COMAND,'SPECIAL/GAGE-IN,V107'
IF/(V40.EQ.3)
IF/(V46.EQ.2)
GOTO/CART,V2+V45+V43,35+V45+V42,4.5
GOTO/CART,-1*V41-V45,35+V45+V42,1.5
ELSE
IF/(V46.EQ.1)
GOTO/CART,V2+V45+V43,-1*V45-V42,4.5
GOTO/CART,-1*V41-V45,-1*V45-V42,1.5
ENDIF
ENDIF
ELSE
GOTO/CART,V2+V45+V43,17.5,-1*V45-V42
GOTO/CART,-1*V41-V45,2,-1*V45-V42
ENDIF
DMESW/COMAND,'SPECIAL/GAGE-END,1'
ENDDO
$$量块测量重复次数V1的结束
ENDDO
$$在两个位置测量V3的结束
$$}IMPORT_PROG