典型的3-2-1创建工件坐标系的步骤如下:
1、测量用于建立零件找正的几何特征,通常测量零件的一个平面
2、测量必要的其他几何特征,用来锁定零件的自由度
3、设为原点,建立坐标系,锁定工件
DMIS程序: 快速3-2-1坐标系 和 快速平分坐标系,在勾选创建元素的时候会自学习记录DMIS程序;
优点:有无数模都可以,对工件装夹要求不高,不要求工件更多的面与三轴垂直或平行!程序和6点拟合不一码事,对手动测点位置要求不高。
切记:
需要勾选“创建元素”和设置原点偏移。
(1)用来创建新坐标系的测量点不需要存在数据库.默认情况下,新坐标系建立后它们就丢失掉了.但"创建元素"选项可以用来选择保存这些点.
(2)当选中这个复选框后,就会创建出这些元素同时在自学习模式打开的情况下产生DMIS语句.产生的DMIS语句是可以重复运行的.
(3)原点偏移:X, Y, 和Z轴的原点偏移可以使用户在创建新坐标系时能够选择将新坐标系的原点移动一段特定的距离.
DMISMN/'Created by [深圳力合精密装备科技有限公司-090118] on 星期五, 七月 13, 2018', 4.0
UNITS/MM, ANGDEC, MMPS
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, 30.000000
RECALL/D(MCS)
SNSLCT/S(ROOTSN1)
GEOALG/BF, LSTSQR
GEOALG/ANGLB, DEFALT
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
MODE/MAN
$$ Following block is generated by Quick 321 alignment
DECL/COMMON, DOUBLE, DPROBEX, DPROBEY, DPROBEZ
PRCOMP/OFF
F(PT1)=FEAT/POINT,CART,7.694157,81.508110,36.996286,0.000000,0.000000,1.000000
F(PT2)=FEAT/POINT,CART,7.423362,23.213751,36.996286,0.000000,0.000000,1.000000
F(PT3)=FEAT/POINT,CART,77.289940,12.674599,36.996286,0.000000,0.000000,1.000000
F(PT4)=FEAT/POINT,CART,7.260486,-1.996286,16.243505,-0.000000,-1.000000,-0.000000
F(PT5)=FEAT/POINT,CART,51.274487,-1.996286,16.954004,-0.000000,-1.000000,-0.000000
F(PT6)=FEAT/POINT,CART,-1.996286,17.036184,29.230076,-1.000000,0.000000,0.000000
MEAS/POINT, F(PT1), 1
PTMEAS/CART, 7.694157,81.508110,36.996286,0.000000,0.000000,1.000000
ENDMES
MEAS/POINT, F(PT2), 1
PTMEAS/CART, 7.423362,23.213751,36.996286,0.000000,0.000000,1.000000
ENDMES
MEAS/POINT, F(PT3), 1
PTMEAS/CART, 77.289940,12.674599,36.996286,0.000000,0.000000,1.000000
ENDMES
MEAS/POINT, F(PT4), 1
PTMEAS/CART, 7.260486,-1.996286,16.243505,-0.000000,-1.000000,-0.000000
ENDMES
MEAS/POINT, F(PT5), 1
PTMEAS/CART, 51.274487,-1.996286,16.954004,-0.000000,-1.000000,-0.000000
ENDMES
MEAS/POINT, F(PT6), 1
PTMEAS/CART, -1.996286,17.036184,29.230076,-1.000000,0.000000,0.000000
ENDMES
KNPTR1 = OBTAIN/FA(PT1)[1], 5
KNPTR2 = OBTAIN/FA(PT1)[1], 6
KNPTR3 = OBTAIN/FA(PT1)[1], 7
F(PLN1) = FEAT/PLANE, CART, 0,0,0, KNPTR1,KNPTR2,KNPTR3
CONST/PLANE, F(PLN1), BF, FA(PT1), FA(PT2), FA(PT3)
KNPTR1 = OBTAIN/FA(PT4), 3
KNPTR2 = OBTAIN/FA(PT4), 4
KNPTR3 = OBTAIN/FA(PT4), 5
KNPTV1 = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
KNPTR1 = OBTAIN/FA(PT5), 3
KNPTR2 = OBTAIN/FA(PT5), 4
KNPTR3 = OBTAIN/FA(PT5), 5
KNPTV2 = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
KNPTV3 = ASSIGN/KNPTV2 - KNPTV1
KNPTV1 = ASSIGN/VUNIT(KNPTV3)
KNPTR1 = OBTAIN/FA(PT4)[1], 5
KNPTR2 = OBTAIN/FA(PT4)[1], 6
KNPTR3 = OBTAIN/FA(PT4)[1], 7
F(LN1) = FEAT/LINE, UNBND, CART, 0.000000, 0.000000, 0.000000, VECX(KNPTV1), VECY(KNPTV1), VECZ(KNPTV1), KNPTR1, KNPTR2, KNPTR3
CONST/LINE, F(LN1), BF, FA(PT4), FA(PT5)
D(CRD1) =DATSET/FA(PLN1), ZDIR, ZORIG
D(CRD1) =ROTATE/ZAXIS, FA(LN1), XDIR
D(CRD1) =TRANS/YORIG, FA(LN1)
D(CRD1) =TRANS/XORIG, FA(PT6)
KNPTC1 =VALUE/SNSLCT
KNPTR1 =OBTAIN/SS(KNPTC1), 8
DPROBEZ =ASSIGN/(KNPTR1/2)
KNPTR1 = OBTAIN/FA(PT4)[1], 5
KNPTR2 = OBTAIN/FA(PT4)[1], 6
KNPTR3 = OBTAIN/FA(PT4)[1], 7
KNPTV1 = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
KNPTV2 = ASSIGN/VCART(0,1,0)
IF/(VDOT(KNPTV1,KNPTV2) .GT. 0)
DPROBEY = ASSIGN/(-DPROBEZ)
ELSE
DPROBEY = ASSIGN/DPROBEZ
ENDIF
KNPTR1 = OBTAIN/FA(PT6)[1], 5
KNPTR2 = OBTAIN/FA(PT6)[1], 6
KNPTR3 = OBTAIN/FA(PT6)[1], 7
KNPTV1 = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)
KNPTV2 = ASSIGN/VCART(1,0,0)
IF/(VDOT(KNPTV1,KNPTV2) .GT. 0)
DPROBEX = ASSIGN/(-DPROBEZ)
ELSE
DPROBEX = ASSIGN/DPROBEZ
ENDIF
D(CRD1) =TRANS/XORIG, DPROBEX, YORIG, DPROBEY, ZORIG, -DPROBEZ
D(CRD1) =TRANS/ZORIG, -35
PRCOMP/ON
$$ Set.CAD2PCS.CADM_1
$$
MODE/PROG,MAN
F(PLN1)=FEAT/PLANE,CART,31.250000,46.787796,35.000000,0.000000,0.000000,1.000000
$$ 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, F(PLN1), 30.0000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, -3.996286, 17.494539, 66.996286
MEAS/PLANE, F(PLN1), 4
GOTO/CART, -3.996286, 17.494539, 66.996286
GOTO/CART, 10.172074, 26.745173, 66.996286
PTMEAS/CART, 10.172074, 26.745173, 35.000000, 0.000000, 0.000000, 1.000000
PTMEAS/CART, 7.951038, 75.315872, 35.000000, 0.000000, 0.000000, 1.000000
PTMEAS/CART, 86.402725, 53.018738, 35.000000, 0.000000, 0.000000, 1.000000
PTMEAS/CART, 76.716408, 19.077938, 35.000000, 0.000000, 0.000000, 1.000000
ENDMES
F(LN1)=FEAT/LINE,BND,CART,7.171782,-1.998258,16.243505,52.054069,-0.001972,16.409681,0.044434,-0.999012,0.000000
$$ Measurement points are created through actual points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 7.438058, -7.984912, 16.243505
MEAS/LINE, F(LN1), 2
PTMEAS/CART, 7.171782, -1.998258, 16.243505, 0.044434, -0.999012, 0.000000
PTMEAS/CART, 52.054069, -0.001972, 16.409681, 0.044434, -0.999012, 0.000000
ENDMES
F(LN2)=FEAT/LINE,BND,CART,0.000000,17.976633,30.609835,0.000000,67.622932,28.699263,-1.000000,0.000000,0.000000
$$ Measurement points are created through actual points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, -5.992573, 17.976633, 30.609835
MEAS/LINE, F(LN2), 2
PTMEAS/CART, 0.000000, 17.976633, 30.609835, -1.000000, 0.000000, 0.000000
PTMEAS/CART, 0.000000, 67.622932, 28.699263, -1.000000, 0.000000, 0.000000
ENDMES
F(LN_PROJ1)=FEAT/LINE,BND,CART,7.171782,-1.998258,35.000000,52.054069,-0.001972,35.000000,0.000000,0.000000,1.000000
CONST/LINE,F(LN_PROJ1),PROJLI,FA(LN1),FA(PLN1)
F(LN_PROJ2)=FEAT/LINE,BND,CART,0.000000,17.976633,35.000000,0.000000,67.622932,35.000000,0.000000,0.000000,1.000000
CONST/LINE,F(LN_PROJ2),PROJLI,FA(LN2),FA(PLN1)
F(PT_INTER1)=FEAT/POINT,CART,-0.000000,-2.317246,35.000000,0.000000,0.000000,1.000000
CONST/POINT,F(PT_INTER1),INTOF,FA(LN_PROJ1),FA(LN_PROJ2)
D(CRD2) = DATSET/FA(PLN1), ZDIR, ZORIG, FA(LN_PROJ1), XDIR, FA(PT_INTER1), XORIG
D(CRD2) = TRANS/ZORIG, -35, YORIG, FA(PT_INTER1), 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, F(PLN1), 30.0000
F(CIR1)=FEAT/CIRCLE,INNER,CART,8.000000,55.000000,32.000000,0.000000,0.000000,1.000000, 10.000000
F(CIR2)=FEAT/CIRCLE,INNER,CART,24.000000,82.712813,32.000000,-0.000000,-0.000000,1.000000, 10.000000
F(CIR3)=FEAT/CIRCLE,INNER,CART,56.000000,82.712813,32.000000,0.000000,0.000000,1.000000, 10.000000
F(CIR4)=FEAT/CIRCLE,INNER,CART,72.000000,55.000000,32.000000,0.000000,0.000000,1.000000, 10.000000
F(CIR5)=FEAT/CIRCLE,INNER,CART,56.000000,27.287187,32.000000,-0.000000,-0.000000,1.000000, 10.000000
F(CIR6)=FEAT/CIRCLE,INNER,CART,24.000000,27.287187,32.000000,-0.000000,0.000000,1.000000, 10.000000
F(CIR7)=FEAT/CIRCLE,INNER,CART,40.000000,55.000000,32.000000,0.000000,0.000000,1.000000, 45.000000
F(CIR8)=FEAT/CIRCLE,INNER,CART,40.000000,55.000000,27.000000,0.000000,0.000000,1.000000, 20.000000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 7.489714, 55.864320, 66.996286
MEAS/CIRCLE, F(CIR1), 4
GOTO/CART, 7.489714, 55.864320, 66.996286
PTMEAS/CART, 5.458008, 59.305610, 32.000000, 0.508398, -0.861122, 0.000000
PTMEAS/CART, 3.694390, 52.458008, 32.000000, 0.861122, 0.508398, -0.000000
PTMEAS/CART, 10.541992, 50.694390, 32.000000, -0.508398, 0.861122, -0.000000
PTMEAS/CART, 12.305610, 57.541992, 32.000000, -0.861122, -0.508398, 0.000000
GOTO/CART, 8.864320, 55.510286, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 23.105464, 82.257570, 66.996286
MEAS/CIRCLE, F(CIR2), 4
GOTO/CART, 23.105464, 82.257570, 66.996286
PTMEAS/CART, 19.543867, 80.445021, 32.000000, 0.891227, 0.453558, 0.000000
PTMEAS/CART, 26.267792, 78.256680, 32.000000, -0.453558, 0.891227, -0.000000
PTMEAS/CART, 28.456133, 84.980605, 32.000000, -0.891227, -0.453558, -0.000000
PTMEAS/CART, 21.732208, 87.168946, 32.000000, 0.453558, -0.891227, 0.000000
GOTO/CART, 23.544757, 83.607349, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 55.020272, 82.494697, 66.996286
MEAS/CIRCLE, F(CIR3), 4
GOTO/CART, 55.020272, 82.494697, 66.996286
PTMEAS/CART, 51.119485, 81.626270, 32.000000, 0.976103, 0.217309, 0.000000
PTMEAS/CART, 57.086543, 77.832298, 32.000000, -0.217309, 0.976103, 0.000000
PTMEAS/CART, 60.880515, 83.799355, 32.000000, -0.976103, -0.217309, 0.000000
PTMEAS/CART, 54.913457, 87.593328, 32.000000, 0.217309, -0.976103, 0.000000
GOTO/CART, 55.781884, 83.692541, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 71.017020, 55.202958, 66.996286
MEAS/CIRCLE, F(CIR4), 4
GOTO/CART, 71.017020, 55.202958, 66.996286
PTMEAS/CART, 67.103286, 56.011037, 32.000000, 0.979343, -0.202207, 0.000000
PTMEAS/CART, 70.988963, 50.103286, 32.000000, 0.202207, 0.979343, -0.000000
PTMEAS/CART, 76.896714, 53.988963, 32.000000, -0.979343, 0.202207, -0.000000
PTMEAS/CART, 73.011037, 59.896714, 32.000000, -0.202207, -0.979343, 0.000000
GOTO/CART, 72.202958, 55.982980, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 55.197693, 27.890300, 66.996286
MEAS/CIRCLE, F(CIR5), 4
GOTO/CART, 55.197693, 27.890300, 66.996286
PTMEAS/CART, 52.003309, 30.291594, 32.000000, 0.799338, -0.600881, -0.000000
PTMEAS/CART, 52.995593, 23.290496, 32.000000, 0.600881, 0.799338, 0.000000
PTMEAS/CART, 59.996691, 24.282780, 32.000000, -0.799338, 0.600881, 0.000000
PTMEAS/CART, 59.004407, 31.283878, 32.000000, -0.600881, -0.799338, -0.000000
GOTO/CART, 56.603113, 28.089494, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 23.495160, 28.154700, 66.996286
MEAS/CIRCLE, F(CIR6), 4
GOTO/CART, 23.495160, 28.154700, 66.996286
PTMEAS/CART, 21.485141, 31.608701, 32.000000, 0.502972, -0.864303, 0.000000
PTMEAS/CART, 19.678486, 24.772328, 32.000000, 0.864303, 0.502972, 0.000000
PTMEAS/CART, 26.514859, 22.965673, 32.000000, -0.502972, 0.864303, -0.000000
PTMEAS/CART, 28.321514, 29.802046, 32.000000, -0.864303, -0.502972, -0.000000
GOTO/CART, 24.867513, 27.792027, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 22.635229, 61.391570, 66.996286
MEAS/CIRCLE, F(CIR7), 4
GOTO/CART, 22.635229, 61.391570, 66.996286
PTMEAS/CART, 18.884923, 62.771971, 32.000000, 0.938448, -0.345421, 0.000000
GOTO/CART, 21.511096, 54.259830, 32.000000
GOTO/CART, 23.201731, 47.240775, 32.000000
GOTO/CART, 27.449750, 41.402992, 32.000000
PTMEAS/CART, 32.228029, 33.884923, 32.000000, 0.345421, 0.938448, -0.000000
GOTO/CART, 40.740170, 36.511096, 32.000000
GOTO/CART, 47.759225, 38.201731, 32.000000
GOTO/CART, 53.597008, 42.449750, 32.000000
PTMEAS/CART, 61.115077, 47.228029, 32.000000, -0.938448, 0.345421, -0.000000
GOTO/CART, 58.488904, 55.740170, 32.000000
GOTO/CART, 56.798269, 62.759225, 32.000000
GOTO/CART, 52.550250, 68.597008, 32.000000
PTMEAS/CART, 47.771971, 76.115077, 32.000000, -0.345421, -0.938448, 0.000000
GOTO/CART, 46.391570, 72.364771, 66.996286
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 34.365828, 57.073808, 66.996286
MEAS/CIRCLE, F(CIR8), 4
GOTO/CART, 34.365828, 57.073808, 66.996286
PTMEAS/CART, 30.615521, 58.454209, 27.000000, 0.938448, -0.345421, 0.000000
GOTO/CART, 34.001091, 54.759845, 27.000000
GOTO/CART, 34.549635, 52.482442, 27.000000
GOTO/CART, 35.927947, 50.588316, 27.000000
PTMEAS/CART, 36.545791, 45.615521, 27.000000, 0.345421, 0.938448, 0.000000
GOTO/CART, 40.240155, 49.001091, 27.000000
GOTO/CART, 42.517558, 49.549635, 27.000000
GOTO/CART, 44.411684, 50.927947, 27.000000
PTMEAS/CART, 49.384479, 51.545791, 27.000000, -0.938448, 0.345421, 0.000000
GOTO/CART, 45.998909, 55.240155, 27.000000
GOTO/CART, 45.450365, 57.517558, 27.000000
GOTO/CART, 44.072053, 59.411684, 27.000000
PTMEAS/CART, 43.454209, 64.384479, 27.000000, -0.345421, -0.938448, 0.000000
GOTO/CART, 42.073808, 60.634172, 66.996286
ENDMES
CLOSE/DID(DEFAULTFILE)