DMISMN/'Created by [山涧果子] on 星期日, 二月 26, 2017', 4.0
UNITS/MM, ANGDEC
WKPLAN/XYPLAN
PRCOMP/ON
TECOMP/ON
FLY/1.000000
MODE/PROG, MAN
SNSET/APPRCH, 2.000000
SNSET/RETRCT, 2.000000
SNSET/DEPTH, 0.000000
SNSET/SEARCH, 10.000000
SNSET/CLRSRF, 20.000000
RECALL/D(MCS)
SNSLCT/S(ROOTSN1)
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
MODE/MAN
F(PLN1) = FEAT/PLANE,CART, -8.750000, -8.212204, 0.000000, 0.000000,$
0.000000, 1.000000
$$ Empty Meas Block
MEAS/PLANE, F(PLN1), 4
ENDMES
DATDEF/FA(PLN1), DAT(A)
D(CRD1) = DATSET/FA(PLN1), ZDIR
D(CRD1) = TRANS/ZORIG, FA(PLN1)
F(LN1) = FEAT/LINE,BND,CART, -40.000000, -55.000000, -14.979186, 30.000000,$
-55.000000, -14.979186, 0.000000, -1.000000, 0.000000
$$ Empty Meas Block
MEAS/LINE, F(LN1), 2
ENDMES
D(CRD2) = ROTATE/ZAXIS, FA(LN1), XDIR
$$ Empty Meas Block
F(CIR1) = FEAT/CIRCLE,INNER,CART, 0.000000, 0.000000, 0.000000, 0.000000,$
0.000000, 1.000000, 45.000000
$$ Empty Meas Block
MEAS/CIRCLE, F(CIR1), 4
ENDMES
DATDEF/FA(CIR1), DAT(C)
D(CRD3) = TRANS/XORIG, FA(CIR1), YORIG, FA(CIR1)
$$ Set.CAD2PCS.CADM_1
MODE/PROG,MAN
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/DEPTH, 0.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, 20.0000
F(PLN2) = FEAT/PLANE,CART, -8.750000, -8.212204, 0.000000, 0.000000,$
0.000000, 1.000000
$$ Measurement points are created through nominal points
MEAS/PLANE, F(PLN2), 4
GOTO/CART, 28.500000, -58.500000, 21.500000
GOTO/CART, -32.762630, 24.421206, 21.500000
PTMEAS/CART, -32.762630, 24.421206, -0.000003, 0.000000, 0.000000, 1.000000
PTMEAS/CART, -33.230370, -31.051683, 0.000004, 0.000000, 0.000000, 1.000000
PTMEAS/CART, 43.058819, -37.594501, 0.000005, 0.000000, 0.000000, 1.000000
PTMEAS/CART, 82.742889, 2.979593, 0.000000, 0.000000, 0.000000, 1.000000
ENDMES
OUTPUT/FA(PLN2)
$$ MACRO: EASI_CLEARPLN_GOTO
$$ FUNCTION: CLEARANCE SURFACE IMPLEMENTATION
$$ Move machine CLEAR SURFACE DIST above the current clear surface
$$ plane and then move machine parallel to the clear surface plane
$$ ALL Macro parameters are in PCS and Current UNITS
$$ Last update: 3-1-04 Add mode checking. only works in PROG MODE
$$ Last update: 8-24-04 Clear position is based on the surface of
$$
$$ This sample DMIS Macro is provided by External-Array Software, Inc.
$$ It should be modified for your own use. There is no guarantee for
$$ the quality of this Macro. November, 2003
M(EASI_CLEARPLN_GOTO) = MACRO/ISNOM, TARX, TARY, TARZ
DECL/LOCAL, REAL, CCX, CCY, CCZ, CCI, CCJ, CCK
DECL/LOCAL, REAL, CURX, CURY, CURZ, TD, CLRDIST, SDIAM
DECL/LOCAL, CHAR, 255, CLRLABEL, FLABEL, MMODE, SNAME
MMODE = VALUE/MODE
CLRLABEL = VALUE/SNSET, CLRSRF
IF/ ( (LEN(CLRLABEL) .GT. 0) .AND. (MMODE .EQ. 'PROG,MAN') )
CLRDIST = VALUE/SNSET, CLRSRF, DIST
FLABEL = ASSIGN/'FA'
IF/ ISNOM .EQ. 0
FLABEL = ASSIGN/'F'
ENDIF
CCX = OBTAIN/FLABEL(@CLRLABEL), 3
CCY = OBTAIN/FLABEL(@CLRLABEL), 4
CCZ = OBTAIN/FLABEL(@CLRLABEL), 5
CCI = OBTAIN/FLABEL(@CLRLABEL), 6
CCJ = OBTAIN/FLABEL(@CLRLABEL), 7
CCK = OBTAIN/FLABEL(@CLRLABEL), 8
SNAME = VALUE/SNSLCT
SDIAM = OBTAIN/SS(SNAME), 8
CCX = ASSIGN/CCX + CCI * SDIAM/2
CCY = ASSIGN/CCY + CCJ * SDIAM/2
CCZ = ASSIGN/CCZ + CCK * SDIAM/2
CURX = VALUE/GOTO, XAXIS
CURY = VALUE/GOTO, YAXIS
CURZ = VALUE/GOTO, ZAXIS
TD = ASSIGN/(CURX - CCX) * CCI + (CURY - CCY) * CCJ + (CURZ - CCZ) * CCK
IF/ TD .LT. CLRDIST
TD = ASSIGN/(CLRDIST - TD)
GOTO/CURX+CCI*TD, CURY+CCJ*TD, CURZ+CCK*TD
ENDIF
TD = ASSIGN/(TARX - CCX) * CCI + (TARY - CCY) * CCJ + (TARZ - CCZ) * CCK
IF/ TD .LT. CLRDIST
TD = ASSIGN/(CLRDIST - TD)
GOTO/TARX+CCI*TD, TARY+CCJ*TD, TARZ+CCK*TD
ENDIF
ENDIF
ENDMAC
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/DEPTH, 0.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, FA(PLN2), 20.0000
F(LN2) = FEAT/LINE,BND,CART, -35.000000, -55.000000, -14.979186, 25.000000,$
-55.000000, -14.979186, 0.000000, -1.000000, 0.000000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -38.500000, -58.499995, 21.500007
MEAS/LINE, F(LN2), 4
GOTO/CART, -38.500000, -58.499995, 21.500007
GOTO/CART, -33.500000, -56.999995, 21.500007
PTMEAS/CART, -33.500000, -55.000000, -14.979186, 0.000000, -1.000000,$
0.000000
PTMEAS/CART, -14.500000, -55.000000, -14.979186, 0.000000, -1.000000,$
0.000000
PTMEAS/CART, 4.500000, -55.000000, -14.979186, 0.000000, -1.000000, 0.000000
PTMEAS/CART, 23.500000, -55.000000, -14.979186, 0.000000, -1.000000, 0.000000
ENDMES
OUTPUT/FA(LN2)
F(CIR2) = FEAT/CIRCLE,INNER,CART, -0.000000, -0.000000, 0.000000, 0.000000,$
0.000000, 1.000000, 45.000000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 23.500000, -58.499995, 21.500008
MEAS/CIRCLE, F(CIR2), 4
GOTO/CART, 23.500000, -58.499995, 21.500008
GOTO/CART, 19.000000, 0.000000, 21.500000
GOTO/CART, 19.000000, 0.000000, 20.000000
PTMEAS/CART, 22.500000, 0.000000, 0.000000, -1.000000, 0.000000, 0.000000
GOTO/CART, 17.553711, -7.270985, 0.000000
GOTO/CART, 13.435029, -13.435029, 0.000000
GOTO/CART, 7.270985, -17.553711, 0.000000
PTMEAS/CART, 0.000000, -22.500000, 0.000000, 0.000000, 1.000000, 0.000000
GOTO/CART, -7.270985, -17.553711, 0.000000
GOTO/CART, -13.435029, -13.435029, 0.000000
GOTO/CART, -17.553711, -7.270985, 0.000000
PTMEAS/CART, -22.500000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000
GOTO/CART, -17.553711, 7.270985, 0.000000
GOTO/CART, -13.435029, 13.435029, 0.000000
GOTO/CART, -7.270985, 17.553711, 0.000000
PTMEAS/CART, 0.000000, 22.500000, 0.000000, 0.000000, -1.000000, 0.000000
GOTO/CART, 0.000000, 19.000000, 20.000000
ENDMES
OUTPUT/FA(CIR2)
D(CRD4) = DATSET/FA(PLN2), ZDIR, FA(LN2), XDIR, FA(CIR2), XORIG
D(CRD4) = TRANS/ZORIG, FA(PLN2), YORIG, FA(CIR2), XORIG, -0
$$ Set.CAD2PCS.CADM_1
MODE/PROG,MAN
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/DEPTH, 0.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, FA(PLN2), 20.0000
F(J1) = FEAT/CIRCLE,INNER,CART, 32.000000, 0.000000, 0.000000, 0.000000,$
0.000000, 1.000000, 10.000000
F(J2) = FEAT/CIRCLE,INNER,CART, 16.000000, 27.712813, 0.000000, -0.000000,$
0.000000, 1.000000, 10.000000
F(J3) = FEAT/CIRCLE,INNER,CART, -16.000000, 27.712813, 0.000000, -0.000000,$
0.000000, 1.000000, 10.000000
F(J4) = FEAT/CIRCLE,INNER,CART, -32.000000, -0.000000, -0.000000, -0.000000,$
0.000000, 1.000000, 10.000000
F(J5) = FEAT/CIRCLE,INNER,CART, -16.000000, -27.712813, 0.000000, -0.000000,$
0.000000, 1.000000, 10.000000
F(J6) = FEAT/CIRCLE,INNER,CART, 16.000000, -27.712813, 0.000000, 0.000000,$
0.000000, 1.000000, 10.000000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 30.710218, 0.765808, 21.500000
MEAS/CIRCLE, F(J1), 4
GOTO/CART, 30.710218, 0.765808, 21.500000
PTMEAS/CART, 27.700726, 2.552694, 0.000000, 0.859855, -0.510539, 0.000000
PTMEAS/CART, 29.447306, -4.299274, 0.000000, 0.510539, 0.859855, -0.000000
PTMEAS/CART, 36.299274, -2.552694, -0.000000, -0.859855, 0.510539, -0.000000
PTMEAS/CART, 34.552694, 4.299274, -0.000000, -0.510539, -0.859855, 0.000000
GOTO/CART, 32.765808, 1.289782, 21.500000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 14.682657, 26.995452, 21.500000
MEAS/CIRCLE, F(J2), 4
GOTO/CART, 14.682657, 26.995452, 21.500000
PTMEAS/CART, 11.608855, 25.321611, 0.000000, 0.878229, 0.478240, -0.000000
PTMEAS/CART, 18.391202, 23.321668, 0.000000, -0.478240, 0.878229, -0.000000
PTMEAS/CART, 20.391145, 30.104015, 0.000000, -0.878229, -0.478240, 0.000000
PTMEAS/CART, 13.608798, 32.103958, 0.000000, 0.478240, -0.878229, 0.000000
GOTO/CART, 15.282639, 29.030156, 21.500000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -14.682657, 26.995452, 21.500000
MEAS/CIRCLE, F(J3), 4
GOTO/CART, -14.682657, 26.995452, 21.500000
PTMEAS/CART, -11.608855, 25.321611, 0.000000, -0.878229, 0.478240, 0.000000
PTMEAS/CART, -13.608798, 32.103958, -0.000000, -0.478240, -0.878229, 0.000000
PTMEAS/CART, -20.391145, 30.104015, -0.000000, 0.878229, -0.478240, 0.000000
PTMEAS/CART, -18.391202, 23.321668, 0.000000, 0.478240, 0.878229, 0.000000
GOTO/CART, -16.717361, 26.395469, 21.500000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -30.710218, 0.765808, 21.500000
MEAS/CIRCLE, F(J4), 4
GOTO/CART, -30.710218, 0.765808, 21.500000
PTMEAS/CART, -27.700726, 2.552694, -0.000000, -0.859855, -0.510539, 0.000000
PTMEAS/CART, -34.552694, 4.299274, -0.000000, 0.510539, -0.859855, 0.000000
PTMEAS/CART, -36.299274, -2.552694, 0.000000, 0.859855, 0.510539, -0.000000
PTMEAS/CART, -29.447306, -4.299274, 0.000000, -0.510539, 0.859855, -0.000000
GOTO/CART, -31.234192, -1.289782, 21.500000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -15.513944, -26.293747, 21.500000
MEAS/CIRCLE, F(J5), 4
GOTO/CART, -15.513944, -26.293747, 21.500000
PTMEAS/CART, -14.379812, -22.982592, 0.000000, -0.324038, -0.946044, 0.000000
PTMEAS/CART, -20.730221, -26.092625, 0.000000, 0.946044, -0.324038, 0.000000
PTMEAS/CART, -17.620188, -32.443034, -0.000000, 0.324038, 0.946044, 0.000000
PTMEAS/CART, -11.269779, -29.333001, -0.000000, -0.946044, 0.324038, 0.000000
GOTO/CART, -14.580934, -28.198869, 21.500000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 15.513944, -26.293747, 21.500000
MEAS/CIRCLE, F(J6), 4
GOTO/CART, 15.513944, -26.293747, 21.500000
PTMEAS/CART, 14.379812, -22.982592, 0.000000, 0.324038, -0.946044, -0.000000
PTMEAS/CART, 11.269779, -29.333001, 0.000000, 0.946044, 0.324038, -0.000000
PTMEAS/CART, 17.620188, -32.443034, 0.000000, -0.324038, 0.946044, -0.000000
PTMEAS/CART, 20.730221, -26.092625, 0.000000, -0.946044, -0.324038, 0.000000
GOTO/CART, 17.419066, -27.226757, 21.500000
ENDMES
T(TP2D1)=TOL/POS,2D, 0.020000,FA(PLN2),FA(LN2),FA(CIR2)
OUTPUT/FA(J1), TA(TP2D1)
T(TP2D2)=TOL/POS,2D, 0.020000,FA(PLN2),FA(LN2),FA(CIR2)
OUTPUT/FA(J2), TA(TP2D2)
T(TP2D3)=TOL/POS,2D, 0.020000,FA(PLN2),FA(LN2),FA(CIR2)
OUTPUT/FA(J3), TA(TP2D3)
T(TP2D4)=TOL/POS,2D, 0.020000,FA(PLN2),FA(LN2),FA(CIR2)
OUTPUT/FA(J4), TA(TP2D4)
T(TP2D5)=TOL/POS,2D, 0.020000,FA(PLN2),FA(LN2),FA(CIR2)
OUTPUT/FA(J5), TA(TP2D5)
T(TP2D6)=TOL/POS,2D, 0.020000,FA(PLN2),FA(LN2),FA(CIR2)
OUTPUT/FA(J6), TA(TP2D6)
DECL/COMMON,REAL,TP2D1_ACT
TP2D1_ACT = VALUE/TA(TP2D1),ACT
DECL/COMMON,REAL,TP2D2_ACT
TP2D2_ACT = VALUE/TA(TP2D2),ACT
DECL/COMMON,REAL,TP2D3_ACT
TP2D3_ACT = VALUE/TA(TP2D3),ACT
DECL/COMMON,REAL,TP2D4_ACT
TP2D4_ACT = VALUE/TA(TP2D4),ACT
DECL/COMMON,REAL,TP2D5_ACT
TP2D5_ACT = VALUE/TA(TP2D5),ACT
DECL/COMMON,REAL,TP2D6_ACT
TP2D6_ACT = VALUE/TA(TP2D6),ACT
DECL/COMMON,DOUBLE,V1
V1 = ASSIGN/MX(TP2D1_ACT,TP2D2_ACT,TP2D3_ACT,TP2D4_ACT,TP2D5_ACT,TP2D6_ACT)
WRITE/DID(DEFAULTSCREEN),'最大位置度误=',V1