天天看點

NETDMIS 4.2 量塊程式

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      
v9