$$
MODE/MAN
TEXT/OPER,'测量一个顶面,然后测量前方的直线,最后测量左侧的点。'
F(PLN1)=FEAT/PLANE,CART,32.0068,35.4983,0.0000,0.0000,0.0000,1.0000
$$ Measurement points are created through actual points
MEAS/PLANE, F(PLN1), 4
PTMEAS/CART, 4.9622, 54.1968, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 3.5285, 11.7327, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 58.7345, 8.5180, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 60.8020, 67.5454, 0.0000, 0.0000, 0.0000, 1.0000
ENDMES
F(LN1)=FEAT/LINE,BND,CART,4.1956,0.0000,-2.8969,60.1243,0.0000,-3.1040,0.0000,-1.0000,0.0000
$$ Measurement points are created through actual points
MEAS/LINE, F(LN1), 2
PTMEAS/CART, 4.1956, 0.0000, -2.8969, 0.0000, -1.0000, 0.0000
PTMEAS/CART, 60.1243, 0.0000, -3.1040, 0.0000, -1.0000, 0.0000
ENDMES
F(PT1)=FEAT/POINT,CART,0.0000,6.3489,-3.7005,-1.0000,0.0000,0.0000
MEAS/POINT, F(PT1), 1
PTMEAS/CART, 0.0000,6.3489,-3.7005,-1.0000,0.0000,0.0000
ENDMES
MODE/PROG,MAN
$$ 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/GOTOM, XAXIS
CURY = VALUE/GOTOM, YAXIS
CURZ = VALUE/GOTOM, 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(PLN1), 20.0000
F(CIR1)=FEAT/CIRCLE,INNER,CART,31.5000,31.5000,-3.0000,0.0000,0.0000,1.0000, 20.0000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 25.8435, 27.3763, 21.0000
MEAS/CIRCLE, F(CIR1), 5
GOTO/CART, 25.8435, 27.3763, 21.0000
PTMEAS/CART, 23.4193, 25.6091, -3.0000, 0.8081, 0.5891, 0.0000
GOTO/CART, 27.3947, 25.8302, -3.0000
GOTO/CART, 29.3477, 24.8391, -3.0000
GOTO/CART, 31.5113, 24.5000, -3.0000
PTMEAS/CART, 34.6056, 21.9944, -3.0000, -0.3106, 0.9506, 0.0000
GOTO/CART, 35.6237, 25.8435, -3.0000
GOTO/CART, 37.1698, 27.3947, -3.0000
GOTO/CART, 38.1609, 29.3477, -3.0000
PTMEAS/CART, 41.5000, 31.5162, -3.0000, -1.0000, -0.0016, 0.0000
GOTO/CART, 38.1539, 33.6739, -3.0000
GOTO/CART, 37.1565, 35.6237, -3.0000
GOTO/CART, 35.6053, 37.1698, -3.0000
PTMEAS/CART, 34.5748, 41.0156, -3.0000, -0.3075, -0.9516, 0.0000
GOTO/CART, 31.4887, 38.5000, -3.0000
GOTO/CART, 29.3261, 38.1539, -3.0000
GOTO/CART, 27.3763, 37.1565, -3.0000
PTMEAS/CART, 23.4003, 37.3648, -3.0000, 0.8100, -0.5865, 0.0000
GOTO/CART, 25.8302, 35.6053, 21.0000
ENDMES
F(CIR2)=FEAT/CIRCLE,INNER,CART,52.4500,11.5500,-3.0000,0.0000,0.0000,1.0000, 6.7960
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 52.0537, 11.5128, 21.0000
MEAS/CIRCLE, F(CIR2), 5
GOTO/CART, 52.0537, 11.5128, 21.0000
PTMEAS/CART, 49.0668, 11.2327, -3.0000, 0.9956, 0.0934, 0.0000
PTMEAS/CART, 51.7063, 8.2344, -3.0000, 0.2188, 0.9758, 0.0000
PTMEAS/CART, 55.3735, 9.8182, -3.0000, -0.8604, 0.5097, 0.0000
PTMEAS/CART, 55.0005, 13.7953, -3.0000, -0.7506, -0.6608, 0.0000
PTMEAS/CART, 51.1027, 14.6695, -3.0000, 0.3965, -0.9180, 0.0000
GOTO/CART, 52.2922, 11.9154, 21.0000
ENDMES
T(TDST1)=TOL/DISTB,NOMINL,28.9500,-0.0500,0.0500,XYPLAN,AVG
OUTPUT/FA(CIR1),FA(CIR2),TA(TDST1)
ENDFIL