天天看点

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