1.用途
因为新产品合格率低,工艺安排全检导致检测任务激增,缺发现在不合格的产品中大多数的不良原因都是检测基准本身的形状就超出了公差。基准超差后产品就是不合格品,此时再向下检测就是纯粹的无用功。希望就在假如在基准检测出不合格时程序可以直接弹出提示,不就可以直接更换下一件产品了吗,如此一来便可以大大的提高工作效率了。
2.主要命令简介
1、赋值:将被测基准的尺寸要求的超差值赋
给变量;
T(TCIR1)=TOL/CIRLTY,0.0200
OUTPUT/FA(CIR4),TA(TCIR1)
DECL/COMMON,REAL,TCIR1_AMT
TCIR1_AMT = VALUE/TA(TCIR1),AMT
2、IF判断:判断超差值是否大于零,大于零
则直接弹出窗口提示。
IF/(TCIR1_AMT.GT.0)
TEXT/OPER, ‘基准超差,停止程序’
ELSE
F(CIR5)=FEAT/CIRCLE,INNER,CART,57.1500,81.2800,-11.8900,0.0000,0.0000,1.0000, 38.1000 CALL/M(EASI_CLEARPLN_GOTO), 1, 71.2352, 73.5852, 21.0000
MEAS/CIRCLE, F(CIR5), 4
GOTO/CART, 71.2352, 73.5852, 21.0000
PTMEAS/CART, 73.8679, 72.1469, -11.8900, -0.8776, 0.4794, 0.0000
GOTO/CART, 73.1077, 79.5611, -11.8900
PTMEAS/CART, 75.4294, 86.6433, -11.8900, -0.9595, -0.2815, -0.0000
GOTO/CART, 69.6492, 91.3484, -11.8900
PTMEAS/CART, 66.2831, 97.9979, -11.8900, -0.4794, -0.8776, 0.0000
GOTO/CART, 58.8689, 97.2377, -11.8900
PTMEAS/CART, 51.7867, 99.5594, -11.8900, 0.2815, -0.9595, -0.0000
GOTO/CART, 52.6313, 96.6808, 21.0000
ENDMES
ENDIF
3、弹窗命令:设置弹窗内容
TEXT/OPER, ‘基准超差,停止程序’
3.释义
弹窗命令通常被用户用来作为操作提醒使用,如提示打开夹具,提供一个程序中断给出操作空间,本章所介绍的是结合赋值和判断将程序结构进行优化,让我们的程序更加智能,利用巧妙的结构给我们的检测提高效率。
$$/* Header
DMISMN/'Created by [爱科腾瑞科技(北京)有限公司-091521-DEMO-11022(华清)] on 星期四, 四月 08, 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(PLN1)=FEAT/PLANE,CART,88.8972,149.8590,-0.0000,0.0000,0.0000,1.0000
$$ Measurement points are created through nominal points
MEAS/PLANE, F(PLN1), 4
PTMEAS/CART, 8.2901, 238.0521, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 10.9558, 52.0474, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 140.0083, 41.0752, 0.0000, 0.0000, 0.0000, 1.0000
PTMEAS/CART, 196.3347, 268.2612, 0.0000, 0.0000, 0.0000, 1.0000
ENDMES
F(LN1)=FEAT/LINE,BND,CART,35.1184,-0.0000,-4.8925,155.5235,-0.0000,-4.2678,0.0000,-1.0000,0.0000
$$ Measurement points are created through nominal points
MEAS/LINE, F(LN1), 2
PTMEAS/CART, 35.1184, 0.0000, -4.8925, 0.0000, -1.0000, 0.0000
PTMEAS/CART, 155.5235, 0.0000, -4.2678, 0.0000, -1.0000, 0.0000
ENDMES
F(PT1)=FEAT/POINT,CART,0.0000,21.2847,-8.0949,-1.0000,0.0000,0.0000
MEAS/POINT, F(PT1), 1
PTMEAS/CART, 0.0000,21.2847,-8.0949,-1.0000,0.0000,0.0000
ENDMES
D(CRD1) = DATSET/FA(PLN1), ZDIR, ZORIG, FA(LN1), XDIR, YORIG, FA(PT1), XORIG
D(CRD1) = TRANS/ZORIG, -0, YORIG, -0, XORIG, -0
$$ Set.CAD2PCS.CADM_1
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,57.1500,81.2800,-3.0000,0.0000,0.0000,1.0000, 50.8000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, -3.0000, 21.2847, 21.0000
MEAS/CIRCLE, F(CIR1), 12
GOTO/CART, -3.0000, 21.2847, 21.0000
GOTO/CART, 41.2904, 65.4612, 21.0000
GOTO/CART, 41.2904, 65.4612, 17.0000
PTMEAS/CART, 39.1664, 63.3426, -3.0000, 0.7080, 0.7062, 0.0000
GOTO/CART, 37.7366, 70.1050, -3.0000
PTMEAS/CART, 32.6070, 74.7376, -3.0000, 0.9663, 0.2576, 0.0000
PTMEAS/CART, 32.6240, 87.8856, -3.0000, 0.9656, -0.2601, 0.0000
PTMEAS/CART, 39.2126, 99.2636, -3.0000, 0.7062, -0.7080, 0.0000
PTMEAS/CART, 50.6076, 105.8230, -3.0000, 0.2576, -0.9663, 0.0000
GOTO/CART, 57.1788, 103.6800, -3.0000
PTMEAS/CART, 63.7556, 105.8060, -3.0000, -0.2601, -0.9656, -0.0000
GOTO/CART, 68.3750, 100.6645, -3.0000
PTMEAS/CART, 75.1336, 99.2174, -3.0000, -0.7080, -0.7062, -0.0000
GOTO/CART, 76.5634, 92.4550, -3.0000
PTMEAS/CART, 81.6930, 87.8224, -3.0000, -0.9663, -0.2576, -0.0000
PTMEAS/CART, 81.6760, 74.6744, -3.0000, -0.9656, 0.2601, 0.0000
GOTO/CART, 76.5345, 70.0550, -3.0000
PTMEAS/CART, 75.0874, 63.2964, -3.0000, -0.7062, 0.7080, 0.0000
PTMEAS/CART, 63.6924, 56.7370, -3.0000, -0.2576, 0.9663, 0.0000
GOTO/CART, 57.1212, 58.8800, -3.0000
PTMEAS/CART, 50.5444, 56.7540, -3.0000, 0.2601, 0.9656, 0.0000
GOTO/CART, 51.3246, 59.6507, 17.0000
ENDMES
F(CIR2)=FEAT/CIRCLE,INNER,CART,127.0000,152.4000,-3.0000,0.0000,0.0000,1.0000, 12.7000
MODE/AUTO, PROG, MAN
$$ Empty Meas Block
MEAS/CIRCLE, F(CIR2), 4
ENDMES
MODE/PROG, MAN
F(CIR3)=FEAT/CIRCLE,INNER,CART,127.0000,76.2000,-3.0000,0.0000,0.0000,1.0000, 12.7000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 124.0601, 77.8061, 21.0000
MEAS/CIRCLE, F(CIR3), 4
GOTO/CART, 124.0601, 77.8061, 21.0000
PTMEAS/CART, 121.4274, 79.2444, -3.0000, 0.8776, -0.4794, 0.0000
GOTO/CART, 124.8985, 78.8089, -3.0000
PTMEAS/CART, 125.2122, 82.2931, -3.0000, 0.2815, -0.9595, -0.0000
GOTO/CART, 127.3588, 79.5307, -3.0000
PTMEAS/CART, 130.0444, 81.7726, -3.0000, -0.4794, -0.8776, 0.0000
GOTO/CART, 129.6089, 78.3015, -3.0000
PTMEAS/CART, 133.0931, 77.9878, -3.0000, -0.9595, -0.2815, -0.0000
GOTO/CART, 130.2145, 77.1432, 21.0000
ENDMES
F(CIR4)=FEAT/CIRCLE,INNER,CART,127.0000,228.6000,-3.0000,0.0000,0.0000,1.0000, 12.7000
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 127.0000, 225.2500, -3.0000
MEAS/CIRCLE, F(CIR4), 12
PTMEAS/CART, 127.0000, 222.2500, -3.0000, 0.0000, 1.0000, 0.0000
GOTO/ARC, 128.6750, 225.6988, -3.0000, 127.8670, 225.3641, -3.0000
PTMEAS/CART, 130.1750, 223.1007, -3.0000, -0.5000, 0.8660, 0.0000
GOTO/ARC, 129.9012, 226.9250, -3.0000, 129.3688, 226.2312, -3.0000
PTMEAS/CART, 132.4993, 225.4250, -3.0000, -0.8660, 0.5000, 0.0000
GOTO/ARC, 130.3500, 228.6000, -3.0000, 130.2359, 227.7330, -3.0000
PTMEAS/CART, 133.3500, 228.6000, -3.0000, -1.0000, 0.0000, 0.0000
GOTO/ARC, 129.9012, 230.2750, -3.0000, 130.2359, 229.4670, -3.0000
PTMEAS/CART, 132.4993, 231.7750, -3.0000, -0.8660, -0.5000, -0.0000
GOTO/ARC, 128.6750, 231.5012, -3.0000, 129.3688, 230.9688, -3.0000
PTMEAS/CART, 130.1750, 234.0993, -3.0000, -0.5000, -0.8660, -0.0000
GOTO/ARC, 127.0000, 231.9500, -3.0000, 127.8670, 231.8359, -3.0000
PTMEAS/CART, 127.0000, 234.9500, -3.0000, -0.0000, -1.0000, -0.0000
GOTO/ARC, 125.3250, 231.5012, -3.0000, 126.1330, 231.8359, -3.0000
PTMEAS/CART, 123.8250, 234.0993, -3.0000, 0.5000, -0.8660, 0.0000
GOTO/ARC, 124.0988, 230.2750, -3.0000, 124.6312, 230.9688, -3.0000
PTMEAS/CART, 121.5007, 231.7750, -3.0000, 0.8660, -0.5000, 0.0000
GOTO/ARC, 123.6500, 228.6000, -3.0000, 123.7641, 229.4670, -3.0000
PTMEAS/CART, 120.6500, 228.6000, -3.0000, 1.0000, -0.0000, 0.0000
GOTO/ARC, 124.0988, 226.9250, -3.0000, 123.7641, 227.7330, -3.0000
PTMEAS/CART, 121.5007, 225.4250, -3.0000, 0.8660, 0.5000, 0.0000
GOTO/ARC, 125.3250, 225.6988, -3.0000, 124.6312, 226.2312, -3.0000
PTMEAS/CART, 123.8250, 223.1007, -3.0000, 0.5000, 0.8660, 0.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 125.3250, 225.6988, -3.0000
T(TCIR1)=TOL/CIRLTY,0.0200
OUTPUT/FA(CIR4),TA(TCIR1)
DECL/COMMON,REAL,TCIR1_AMT
TCIR1_AMT = VALUE/TA(TCIR1),AMT
IF/(TCIR1_AMT.GT.0)
TEXT/OPER, '基准超差,停止程序'
ELSE
F(CIR5)=FEAT/CIRCLE,INNER,CART,57.1500,81.2800,-11.8900,0.0000,0.0000,1.0000, 38.1000
$$ Measurement points are created through nominal points
$$ CALL/M(EASI_CLEARPLN_GOTO), 1, 71.2352, 73.5852, 21.0000
MEAS/CIRCLE, F(CIR5), 4
GOTO/CART, 71.2352, 73.5852, 21.0000
PTMEAS/CART, 73.8679, 72.1469, -11.8900, -0.8776, 0.4794, 0.0000
GOTO/CART, 73.1077, 79.5611, -11.8900
PTMEAS/CART, 75.4294, 86.6433, -11.8900, -0.9595, -0.2815, -0.0000
GOTO/CART, 69.6492, 91.3484, -11.8900
PTMEAS/CART, 66.2831, 97.9979, -11.8900, -0.4794, -0.8776, 0.0000
GOTO/CART, 58.8689, 97.2377, -11.8900
PTMEAS/CART, 51.7867, 99.5594, -11.8900, 0.2815, -0.9595, -0.0000
GOTO/CART, 52.6313, 96.6808, 21.0000
ENDMES
ENDIF