首先,我要先强调一下:并不是一讲【粗找正】就意味着每个测量程序都要粗找正。实际上很多零件的测量,也都是可以直接通过手动采样来完成零件坐标系的精找正的。
那么,【粗找正】现存问题是什么呢?
问题1:编写的各类零件测量程序都是先粗找正再精找正;
问题2:粗找正的采样同精找正除手动和自动方式不同外,其余都样。
上述问题虽然不影响测量结果,但至少说不是优化程序。因为粗找正的主要目的就是为了简化操作,提高功效。所以,我们创建的粗找正程序,即不需要考虑测量精度,也不一定非要按图样标注的基准选择测量特征。
$$/* Header
DMISMN/'Created by [爱科腾瑞科技(北京)有限公司-091521-DEMO-11022(华清)] on 星期六, 三月 20, 2021', 4.0
UNITS/MM, ANGDEC, MMPS
WKPLAN/XYPLAN
PRCOMP/ON
TECOMP/ON
FLY/1.0000
MODE/MAN
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/DEPTH, 0.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, 20.0000
RECALL/D(MCS)
SNSLCT/S(40-D2)
GEOALG/BF, LSTSQR
GEOALG/ANGLB, DEFALT
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
$$*/
MODE/MAN
F(PT1)=FEAT/POINT,CART,8.0338,7.3999,0.0000,0.0000,0.0000,1.0000
MEAS/POINT, F(PT1), 1
PTMEAS/CART, 8.0338,7.3999,0.0000,0.0000,0.0000,1.0000
ENDMES
F(PT2)=FEAT/POINT,CART,4.7226,0.0000,-2.5332,-0.0000,-1.0000,-0.0000
MEAS/POINT, F(PT2), 1
PTMEAS/CART, 4.7226,0.0000,-2.5332,-0.0000,-1.0000,-0.0000
ENDMES
F(PT3)=FEAT/POINT,CART,0.0000,6.8155,-4.2904,-1.0000,0.0000,0.0000
MEAS/POINT, F(PT3), 1
PTMEAS/CART, 0.0000,6.8155,-4.2904,-1.0000,0.0000,0.0000
ENDMES
D(CRD1) = TRANS/XORIG, FA(PT3), YORIG, FA(PT2), ZORIG, FA(PT1)
$$ Set.CAD2PCS.CADM_1
MODE/PROG,MAN
GOTO/-5.0000, 6.0000, 20.0000
F(PLN1)=FEAT/PLANE,CART,31.8940,28.5040,0.0000,0.0000,0.0000,1.0000
$$ Measurement points are created through nominal points
MEAS/PLANE, F(PLN1), 6
PTMEAS/CART, 6.4435, 9.0070, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 3.7534, 48.1683, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 28.1047, 83.1703, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 59.6368, 21.1744, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 59.7677, 5.7210, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 33.6580, 3.7833, 0.0000, 0.0000, 0.0000, 1.0000
ENDMES
D(CRD2) = DATSET/FA(PLN1), ZDIR
D(CRD2) = TRANS/ZORIG, FA(PLN1)
$$ 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(LN1)=FEAT/LINE,BND,CART,3.5742,0.0000,-3.0000,62.0587,0.0000,-3.0000,0.0000,-1.0000,0.0000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 33.6580, 3.7833, 21.0000
MEAS/LINE, F(LN1), 3
GOTO/CART, 33.6580, 3.7833, 21.0000
GOTO/CART, 3.5742, -3.0000, 21.0000
PTMEAS/CART, 3.5742, 0.0000, -3.0000, -0.0000, -1.0000, -0.0000
PTMEAS/CART, 22.5635, 0.0000, -3.0000, -0.0000, -1.0000, -0.0000
PTMEAS/CART, 62.0587, 0.0000, -3.0000, -0.0000, -1.0000, -0.0000
ENDMES
F(PT4)=FEAT/POINT,CART,0.0000,4.4796,-3.3413,-1.0000,0.0000,0.0000
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -3.0000, 4.4796, -3.3413
MEAS/POINT, F(PT4), 1
GOTO/CART, 62.0587,-3.0000,21.0000
GOTO/CART, -3.0000,4.4796,21.0000
PTMEAS/CART, 0.0000,4.4796,-3.3413,-1.0000,0.0000,0.0000
ENDMES
D(CRD3) = DATSET/FA(PLN1), ZDIR, FA(LN1), XDIR, YORIG, FA(PT4), XORIG
D(CRD3) = TRANS/ZORIG, FA(PLN1), YORIG, -0, XORIG, -0
$$ Set.CAD2PCS.CADM_1
一句话,就是通过最少的手动测量使测量程序安全准确进入到DCC测量状态。见下页粗找正示例。