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