如图所示,该零件要求测量位置度,其基准标注为平面A【孔端面】,原点为共圆中心。通常该类零件的坐标系第2轴,是测量一条轴线上的两对应孔或因奇数孔而找不到合适的一对孔时,而被迫采用测三孔共圆后再与其中一孔连线来旋转坐标轴等方法,手动操作过程显得比较繁琐。
本找正方法的特点是:不仅工件可以随便放置,而且手动操作又非常简单,其测量元素只是一个平面和圆孔阵中的任意两个圆。
具体操作步骤如下:
1.测平面,找正零件坐标系的第一轴,质心置原点;
2.测量圆孔阵中 的任意两个孔;
3.编辑并更改两测量孔的理论坐标值为图样标注;
4.选择平移和旋转完成最佳拟合坐标系的创建过程(包括原点的设置)。
5.即可以DCC方式测量圆孔阵诸圆;
6.必要时可对位置度评价的测量结果进行最佳拟合再处理。
MODE/MAN
F(PLN1)=FEAT/PLANE,CART,-1.7521,-7.7284,0.0000,-0.0000,0.0000,1.0000
$$ Measurement points are created through actual points
MEAS/PLANE, F(PLN1), 4
PTMEAS/CART, -39.0695, 29.9241, -0.0000, -0.0000, 0.0000, 1.0000
PTMEAS/CART, -36.0084, -38.9273, -0.0000, -0.0000, 0.0000, 1.0000
PTMEAS/CART, 23.5385, -43.0736, -0.0000, -0.0000, 0.0000, 1.0000
PTMEAS/CART, 44.5312, 21.1631, -0.0000, -0.0000, 0.0000, 1.0000
ENDMES
D(CRD1) = DATSET/FA(PLN1), ZDIR
D(CRD1) = TRANS/ZORIG, FA(PLN1)
DMESW/COMAND,'CrdType/Pol'
WKPLAN/XYPLAN
F(CIR1)=FEAT/CIRCLE,INNER,POL,40.0000,0.0000,-4.1949,0.0000,0.0000,1.0000, 10.0000
$$ Measurement points are created through actual points
MEAS/CIRCLE, F(CIR1), 4
PTMEAS/POL, 40.0598, 7.1608, -4.1949, 0.0505, -0.9987, -0.0000
PTMEAS/POL, 44.4303, 3.1507, -4.1949, -0.8726, -0.4884, -0.0000
PTMEAS/POL, 41.3917, 353.2338, -4.1949, -0.2207, 0.9753, -0.0000
PTMEAS/POL, 36.3190, 354.9117, -4.1949, 0.7648, 0.6442, -0.0000
ENDMES
F(CIR2)=FEAT/CIRCLE,INNER,POL,40.0000,135.0000,-4.0703,0.0000,0.0000,1.0000, 10.0000
$$ Measurement points are created through actual points
MEAS/CIRCLE, F(CIR2), 4
PTMEAS/POL, 44.9996, 134.9185, -4.0703, 0.6980, -0.7161, -0.0000
PTMEAS/POL, 44.3258, 131.5876, -4.0703, 0.2275, -0.9738, -0.0000
PTMEAS/POL, 40.3055, 127.8740, -4.0703, -0.7079, -0.7063, -0.0000
PTMEAS/POL, 37.3553, 128.7073, -4.0703, -0.9849, -0.1732, -0.0000
ENDMES
DMESW/COMAND,'D(CRD2) = LOCATE/XYDIR, ZAXIS, $
FA(CIR1), XYZAXI, $
FA(CIR2), XYZAXI'
$$/* Header
DMISMN/'Created by [爱科腾瑞科技(北京)有限公司-091520-DEMO-11023(力合)] on 星期五, 八月 07, 2020', 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, 15.0000
RECALL/D(MCS)
SNSLCT/S(D2L20)
GEOALG/BF, LSTSQR
GEOALG/ANGLB, DEFALT
GEOALG/CIRCLE, LSTSQR
GEOALG/ARC, LSTSQR
GEOALG/PLANE, LSTSQR
$$
$$
$$*/
MODE/MAN
F(PLN1)=FEAT/PLANE,CART,-1.7521,-7.7284,0.0000,-0.0000,0.0000,1.0000
$$ Measurement points are created through actual points
MEAS/PLANE, F(PLN1), 4
PTMEAS/CART, -39.0695, 29.9241, -0.0000, -0.0000, 0.0000, 1.0000
PTMEAS/CART, -36.0084, -38.9273, -0.0000, -0.0000, 0.0000, 1.0000
PTMEAS/CART, 23.5385, -43.0736, -0.0000, -0.0000, 0.0000, 1.0000
PTMEAS/CART, 44.5312, 21.1631, -0.0000, -0.0000, 0.0000, 1.0000
ENDMES
D(CRD1) = DATSET/FA(PLN1), ZDIR
D(CRD1) = TRANS/ZORIG, FA(PLN1)
DMESW/COMAND,'CrdType/Pol'
WKPLAN/XYPLAN
F(CIR1)=FEAT/CIRCLE,INNER,POL,40.0000,0.0000,-4.1949,0.0000,0.0000,1.0000, 10.0000
$$ Measurement points are created through actual points
MEAS/CIRCLE, F(CIR1), 4
PTMEAS/POL, 40.0598, 7.1608, -4.1949, 0.0505, -0.9987, -0.0000
PTMEAS/POL, 44.4303, 3.1507, -4.1949, -0.8726, -0.4884, -0.0000
PTMEAS/POL, 41.3917, 353.2338, -4.1949, -0.2207, 0.9753, -0.0000
PTMEAS/POL, 36.3190, 354.9117, -4.1949, 0.7648, 0.6442, -0.0000
ENDMES
F(CIR2)=FEAT/CIRCLE,INNER,POL,40.0000,135.0000,-4.0703,0.0000,0.0000,1.0000, 10.0000
$$ Measurement points are created through actual points
MEAS/CIRCLE, F(CIR2), 4
PTMEAS/POL, 44.9996, 134.9185, -4.0703, 0.6980, -0.7161, -0.0000
PTMEAS/POL, 44.3258, 131.5876, -4.0703, 0.2275, -0.9738, -0.0000
PTMEAS/POL, 40.3055, 127.8740, -4.0703, -0.7079, -0.7063, -0.0000
PTMEAS/POL, 37.3553, 128.7073, -4.0703, -0.9849, -0.1732, -0.0000
ENDMES
DMESW/COMAND,'D(CRD2) = LOCATE/XYDIR, ZAXIS, $
FA(CIR1), XYZAXI, $
FA(CIR2), XYZAXI'
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), 15.0000
F(圆-1)=FEAT/CIRCLE,INNER,POL,40.0000,0.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-2)=FEAT/CIRCLE,INNER,POL,40.0000,45.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-3)=FEAT/CIRCLE,INNER,POL,40.0000,90.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-4)=FEAT/CIRCLE,INNER,POL,40.0000,135.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-5)=FEAT/CIRCLE,INNER,POL,40.0000,180.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-6)=FEAT/CIRCLE,INNER,POL,40.0000,225.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-7)=FEAT/CIRCLE,INNER,POL,40.0000,270.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
F(圆-8)=FEAT/CIRCLE,INNER,POL,40.0000,315.0000,-3.0000,0.0000,0.0000,1.0000, 10.0000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 38.1638, 0.7928, 16.0000
MEAS/CIRCLE, F(圆-1), 5
GOTO/POL, 38.1720, 1.1900, 16.0000
PTMEAS/POL, 35.4650, 3.2035, -3.0000, 0.9181, -0.3964, 0.0000
GOTO/POL, 38.0092, 0.2812, -3.0000
GOTO/POL, 38.0510, 359.3406, -3.0000
GOTO/POL, 38.2929, 358.4744, -3.0000
PTMEAS/POL, 36.8880, 354.1601, -3.0000, 0.6607, 0.7507, 0.0000
GOTO/POL, 39.2502, 357.3187, -3.0000
GOTO/POL, 39.8632, 357.1367, -3.0000
GOTO/POL, 40.4850, 357.2372, -3.0000
PTMEAS/POL, 42.7657, 354.2272, -3.0000, -0.5098, 0.8603, 0.0000
GOTO/POL, 41.5223, 358.1764, -3.0000
GOTO/POL, 41.8437, 358.9144, -3.0000
GOTO/POL, 41.9917, 359.7455, -3.0000
PTMEAS/POL, 44.8920, 1.3975, -3.0000, -0.9757, -0.2190, 0.0000
GOTO/POL, 41.7331, 1.3999, -3.0000
GOTO/POL, 41.3486, 2.0808, -3.0000
GOTO/POL, 40.8340, 2.5773, -3.0000
PTMEAS/POL, 40.7714, 7.0133, -3.0000, -0.0933, -0.9956, 0.0000
GOTO/POL, 40.2358, 2.8368, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 26.2843, 28.2970, 16.0000
MEAS/CIRCLE, F(圆-2), 5
GOTO/POL, 38.6210, 47.1118, 16.0000
PTMEAS/POL, 36.6600, 50.5694, -3.0000, 1.0000, -0.0063, 0.0000
GOTO/POL, 38.2348, 46.3777, -3.0000
GOTO/POL, 38.0280, 45.4903, -3.0000
GOTO/POL, 38.0239, 44.5475, -3.0000
PTMEAS/POL, 35.6013, 41.3900, -3.0000, 0.3150, 0.9491, 0.0000
GOTO/POL, 38.6024, 42.9139, -3.0000
GOTO/POL, 39.1211, 42.3977, -3.0000
GOTO/POL, 39.7236, 42.1526, -3.0000
PTMEAS/POL, 41.0496, 38.0835, -3.0000, -0.8053, 0.5929, 0.0000
GOTO/POL, 40.9357, 42.4970, -3.0000
GOTO/POL, 41.4297, 43.0315, -3.0000
GOTO/POL, 41.7863, 43.7395, -3.0000
PTMEAS/POL, 44.9407, 43.9628, -3.0000, -0.8127, -0.5826, 0.0000
GOTO/POL, 41.9784, 45.4099, -3.0000
GOTO/POL, 41.7974, 46.2293, -3.0000
GOTO/POL, 41.4470, 46.9429, -3.0000
PTMEAS/POL, 42.5306, 50.9931, -3.0000, 0.3030, -0.9530, 0.0000
GOTO/POL, 40.9578, 47.4855, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -1.8360, 39.2068, 16.0000
MEAS/CIRCLE, F(圆-3), 5
GOTO/POL, 39.2497, 92.6811, 16.0000
PTMEAS/POL, 38.2930, 96.8842, -3.0000, 0.9180, 0.3966, 0.0000
GOTO/POL, 38.7074, 92.2224, -3.0000
GOTO/POL, 38.2927, 91.5250, -3.0000
GOTO/POL, 38.0509, 90.6587, -3.0000
PTMEAS/POL, 35.0251, 89.2349, -3.0000, -0.0935, 0.9956, 0.0000
GOTO/POL, 38.1723, 88.8093, -3.0000
GOTO/POL, 38.5217, 88.0337, -3.0000
GOTO/POL, 39.0189, 87.4722, -3.0000
PTMEAS/POL, 39.2112, 82.8523, -3.0000, -0.9758, 0.2187, 0.0000
GOTO/POL, 40.2364, 87.1634, -3.0000
GOTO/POL, 40.8346, 87.4231, -3.0000
GOTO/POL, 41.3490, 87.9197, -3.0000
PTMEAS/POL, 44.3755, 86.7087, -3.0000, -0.5095, -0.8604, 0.0000
GOTO/POL, 41.9539, 89.4026, -3.0000
GOTO/POL, 41.9917, 90.2553, -3.0000
GOTO/POL, 41.8435, 91.0863, -3.0000
PTMEAS/POL, 43.8771, 94.3191, -3.0000, 0.6609, -0.7505, 0.0000
GOTO/POL, 41.5220, 91.8242, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -26.3145, 28.6307, 16.0000
MEAS/CIRCLE, F(圆-4), 5
GOTO/POL, 38.8866, 132.5862, 16.0000
PTMEAS/POL, 37.3553, 128.7073, -3.0000, -0.9849, -0.1732, 0.0000
GOTO/POL, 39.4607, 132.2223, -3.0000
GOTO/POL, 40.0839, 132.1404, -3.0000
GOTO/POL, 40.6942, 132.3361, -3.0000
PTMEAS/POL, 43.1923, 129.6935, -3.0000, -0.1396, -0.9902, 0.0000
GOTO/POL, 41.6536, 133.4208, -3.0000
GOTO/POL, 41.9164, 134.1994, -3.0000
GOTO/POL, 41.9997, 135.0463, -3.0000
PTMEAS/POL, 44.7579, 137.0814, -3.0000, 0.8986, -0.4388, 0.0000
GOTO/POL, 41.6152, 136.6563, -3.0000
GOTO/POL, 41.1805, 137.2793, -3.0000
GOTO/POL, 40.6307, 137.6977, -3.0000
PTMEAS/POL, 40.2270, 142.1390, -3.0000, 0.6950, 0.7190, 0.0000
GOTO/POL, 39.3952, 137.7518, -3.0000
GOTO/POL, 38.8300, 137.3583, -3.0000
GOTO/POL, 38.3794, 136.7140, -3.0000
PTMEAS/POL, 35.2496, 137.3805, -3.0000, -0.4691, 0.8832, 0.0000
GOTO/POL, 38.0922, 135.8809, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -39.1375, 1.8045, 16.0000
MEAS/CIRCLE, F(圆-5), 5
GOTO/POL, 39.1791, 177.3602, 16.0000
PTMEAS/POL, 38.1116, 173.2021, -3.0000, -0.4313, -0.9022, 0.0000
GOTO/POL, 39.7867, 177.1436, -3.0000
GOTO/POL, 40.4107, 177.2102, -3.0000
GOTO/POL, 40.9906, 177.5413, -3.0000
PTMEAS/POL, 43.7598, 175.4849, -3.0000, 0.7248, -0.6890, 0.0000
GOTO/POL, 41.8134, 178.8180, -3.0000
GOTO/POL, 41.9835, 179.6414, -3.0000
GOTO/POL, 41.9684, 180.4953, -3.0000
PTMEAS/POL, 44.4600, 183.0713, -3.0000, 0.8792, 0.4764, 0.0000
GOTO/POL, 41.4033, 182.0064, -3.0000
GOTO/POL, 40.9024, 182.5284, -3.0000
GOTO/POL, 40.3115, 182.8191, -3.0000
PTMEAS/POL, 39.4010, 187.1689, -3.0000, -0.1814, 0.9834, 0.0000
GOTO/POL, 39.0867, 182.5785, -3.0000
GOTO/POL, 38.5750, 182.0470, -3.0000
GOTO/POL, 38.2053, 181.2936, -3.0000
PTMEAS/POL, 35.0495, 181.0737, -3.0000, -0.9913, 0.1314, 0.0000
GOTO/POL, 38.0183, 180.3959, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -28.2151, -26.2854, 16.0000
MEAS/CIRCLE, F(圆-6), 5
GOTO/POL, 38.5619, 222.9722, 16.0000
PTMEAS/POL, 36.5040, 219.6381, -3.0000, -0.0346, -0.9994, 0.0000
GOTO/POL, 39.0701, 222.4334, -3.0000
GOTO/POL, 39.6676, 222.1629, -3.0000
GOTO/POL, 40.2933, 222.1762, -3.0000
PTMEAS/POL, 42.3575, 218.8594, -3.0000, 0.9398, -0.3417, 0.0000
GOTO/POL, 41.3903, 222.9753, -3.0000
GOTO/POL, 41.7608, 223.6703, -3.0000
GOTO/POL, 41.9651, 224.4798, -3.0000
PTMEAS/POL, 44.9667, 225.7784, -3.0000, 0.6154, 0.7882, 0.0000
GOTO/POL, 41.8209, 226.1588, -3.0000
GOTO/POL, 41.4847, 226.8848, -3.0000
GOTO/POL, 41.0064, 227.4452, -3.0000
PTMEAS/POL, 41.2456, 231.8346, -3.0000, -0.5595, 0.8289, 0.0000
GOTO/POL, 39.8052, 227.8584, -3.0000
GOTO/POL, 39.1961, 227.6501, -3.0000
GOTO/POL, 38.6632, 227.1675, -3.0000
PTMEAS/POL, 35.7084, 228.8902, -3.0000, -0.9612, -0.2759, 0.0000
GOTO/POL, 38.2627, 226.4512, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -0.7160, -38.1325, 16.0000
MEAS/CIRCLE, F(圆-7), 5
GOTO/POL, 38.1393, 268.9242, 16.0000
PTMEAS/POL, 35.3767, 267.0996, -3.0000, 0.3580, -0.9337, 0.0000
GOTO/POL, 38.4658, 268.1257, -3.0000
GOTO/POL, 38.9462, 267.5322, -3.0000
GOTO/POL, 39.5288, 267.1990, -3.0000
PTMEAS/POL, 40.5682, 262.9299, -3.0000, 0.9986, 0.0520, 0.0000
GOTO/POL, 40.7588, 267.3739, -3.0000
GOTO/POL, 41.2873, 267.8418, -3.0000
GOTO/POL, 41.6912, 268.5019, -3.0000
PTMEAS/POL, 44.8478, 268.3441, -3.0000, 0.2592, 0.9658, 0.0000
GOTO/POL, 41.9974, 270.1417, -3.0000
GOTO/POL, 41.8735, 270.9797, -3.0000
GOTO/POL, 41.5738, 271.7340, -3.0000
PTMEAS/POL, 42.9300, 275.6041, -3.0000, -0.8385, 0.5450, 0.0000
GOTO/POL, 40.5644, 272.7294, -3.0000
GOTO/POL, 39.9460, 272.8659, -3.0000
GOTO/POL, 39.3283, 272.7216, -3.0000
PTMEAS/POL, 37.0593, 276.0205, -3.0000, -0.7774, -0.6290, 0.0000
GOTO/POL, 38.7731, 272.2981, 16.0000
ENDMES
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 26.8997, -26.8410, 16.0000
MEAS/CIRCLE, F(圆-8), 5
GOTO/POL, 38.0004, 315.0626, 16.0000
PTMEAS/POL, 35.0012, 315.1699, -3.0000, 0.6923, -0.7216, 0.0000
GOTO/POL, 38.0898, 314.1299, -3.0000
GOTO/POL, 38.3749, 313.2951, -3.0000
GOTO/POL, 38.8238, 312.6480, -3.0000
PTMEAS/POL, 38.6461, 307.9815, -3.0000, 0.9002, 0.4354, 0.0000
GOTO/POL, 40.0084, 312.1352, -3.0000
GOTO/POL, 40.6235, 312.2987, -3.0000
GOTO/POL, 41.1745, 312.7143, -3.0000
PTMEAS/POL, 44.0869, 311.0691, -3.0000, -0.1359, 0.9907, 0.0000
GOTO/POL, 41.8940, 314.1009, -3.0000
GOTO/POL, 41.9996, 314.9433, -3.0000
GOTO/POL, 41.9185, 315.7906, -3.0000
PTMEAS/POL, 44.1975, 318.7028, -3.0000, -0.9842, 0.1769, 0.0000
GOTO/POL, 41.2397, 317.2141, -3.0000
GOTO/POL, 40.7012, 317.6599, -3.0000
GOTO/POL, 40.0914, 317.8588, -3.0000
PTMEAS/POL, 38.8499, 322.0768, -3.0000, -0.4724, -0.8814, 0.0000
GOTO/POL, 39.4680, 317.7804, 16.0000
ENDMES