本文主要是介绍RationalDMIS 2020 RPS法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在对工件建系过程中,采用的建系元素在一定程度上影响了迭代的次数及坐标系最终的精度。对于象圆孔,长孔这样的位置特征明显的元素,建系精度高且建系的效率高,不需要多次循环就能建立出合格的坐标系。
而对于点类建系元素,特别是建系特征中有多个点元素(最多6点),就需要多次循环建系来一遍一遍的更新坐标系,使坐标系最终满足测量要求。
$$/* Header
DMISMN/'Created by [山涧果子] on 星期一, 七月 05, 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,3.4511,59.0363,0.0000,0.0000,0.0000,1.0000
F(PT2)=FEAT/POINT,CART,6.1536,9.2653,0.0000,0.0000,0.0000,1.0000
F(PT3)=FEAT/POINT,CART,59.7937,5.8705,0.0000,0.0000,0.0000,1.0000
F(PT4)=FEAT/POINT,CART,6.1570,0.0000,-2.7657,-0.0000,-1.0000,-0.0000
F(PT5)=FEAT/POINT,CART,59.5024,0.0000,-2.3880,-0.0000,-1.0000,-0.0000
F(PT6)=FEAT/POINT,CART,0.0000,4.6955,-3.7651,-1.0000,0.0000,0.0000$$ Empty Meas Block
MEAS/POINT, F(PT1), 1ENDMES$$ Empty Meas Block
MEAS/POINT, F(PT2), 1ENDMES$$ Empty Meas Block
MEAS/POINT, F(PT3), 1ENDMES$$ Empty Meas Block
MEAS/POINT, F(PT4), 1ENDMES$$ Empty Meas Block
MEAS/POINT, F(PT5), 1ENDMES$$ Empty Meas Block
MEAS/POINT, F(PT6), 1ENDMES
DMESW/COMAND,'D(CRD1) = LOCATE/XYZDIR, XYZAXI, $FA(PT1), ZAXIS, $FA(PT2), ZAXIS, $FA(PT3), ZAXIS, $FA(PT4), YAXIS, $FA(PT5), YAXIS, $FA(PT6), XAXIS'
MODE/PROG,MAN
F(PLN1)=FEAT/PLANE,CART,32.2571,74.2500,-0.0000,0.0000,0.0000,1.0000
$$ 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, 2003M(EASI_CLEARPLN_GOTO) = MACRO/ISNOM, TARX, TARY, TARZDECL/LOCAL, REAL, CCX, CCY, CCZ, CCI, CCJ, CCKDECL/LOCAL, REAL, CURX, CURY, CURZ, TD, CLRDIST, SDIAMDECL/LOCAL, CHAR, 255, CLRLABEL, FLABEL, MMODE, SNAMEMMODE = VALUE/MODECLRLABEL = VALUE/SNSET, CLRSRFIF/ ( (LEN(CLRLABEL) .GT. 0) .AND. (MMODE .EQ. 'PROG,MAN') )CLRDIST = VALUE/SNSET, CLRSRF, DISTFLABEL = ASSIGN/'FA'IF/ ISNOM .EQ. 0FLABEL = ASSIGN/'F'ENDIFCCX = OBTAIN/FLABEL(@CLRLABEL), 3CCY = OBTAIN/FLABEL(@CLRLABEL), 4CCZ = OBTAIN/FLABEL(@CLRLABEL), 5CCI = OBTAIN/FLABEL(@CLRLABEL), 6CCJ = OBTAIN/FLABEL(@CLRLABEL), 7CCK = OBTAIN/FLABEL(@CLRLABEL), 8SNAME = VALUE/SNSLCTSDIAM = OBTAIN/SS(SNAME), 8CCX = ASSIGN/CCX + CCI * SDIAM/2CCY = ASSIGN/CCY + CCJ * SDIAM/2CCZ = ASSIGN/CCZ + CCK * SDIAM/2CURX = VALUE/GOTOM, XAXISCURY = VALUE/GOTOM, YAXISCURZ = VALUE/GOTOM, ZAXISTD = ASSIGN/(CURX - CCX) * CCI + (CURY - CCY) * CCJ + (CURZ - CCZ) * CCKIF/ TD .LT. CLRDISTTD = ASSIGN/(CLRDIST - TD)GOTO/CURX+CCI*TD, CURY+CCJ*TD, CURZ+CCK*TDENDIFTD = ASSIGN/(TARX - CCX) * CCI + (TARY - CCY) * CCJ + (TARZ - CCZ) * CCKIF/ TD .LT. CLRDISTTD = ASSIGN/(CLRDIST - TD)GOTO/TARX+CCI*TD, TARY+CCJ*TD, TARZ+CCK*TDENDIFENDIFENDMAC
SNSET/APPRCH, 2.0000
SNSET/RETRCT, 2.0000
SNSET/DEPTH, 0.0000
SNSET/SEARCH, 10.0000
SNSET/CLRSRF, F(PLN1), 20.0000
(ITR_START)
F(PT1)=FEAT/POINT,CART,3.4511,59.0363,0.0000,0.0000,0.0000,1.0000
F(PT2)=FEAT/POINT,CART,6.1536,9.2653,0.0000,0.0000,0.0000,1.0000
F(PT3)=FEAT/POINT,CART,59.7937,5.8705,0.0000,0.0000,0.0000,1.0000
F(PT4)=FEAT/POINT,CART,6.1570,0.0000,-2.7657,-0.0000,-1.0000,0.0000
F(PT5)=FEAT/POINT,CART,59.5024,0.0000,-2.3880,-0.0000,-1.0000,0.0000
F(PT6)=FEAT/POINT,CART,0.0000,4.6955,-3.7651,-1.0000,-0.0000,0.0000
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 3.4511, 59.0363, 3.0000
MEAS/POINT, F(PT1), 1PTMEAS/CART, 3.4511,59.0363,0.0000,0.0000,0.0000,1.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 6.1536, 9.2653, 3.0000
MEAS/POINT, F(PT2), 1PTMEAS/CART, 6.1536,9.2653,0.0000,0.0000,0.0000,1.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 59.7937, 5.8705, 3.0000
MEAS/POINT, F(PT3), 1PTMEAS/CART, 59.7937,5.8705,0.0000,0.0000,0.0000,1.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 6.1570, -3.0000, -2.7657
MEAS/POINT, F(PT4), 1PTMEAS/CART, 6.1570,0.0000,-2.7657,-0.0000,-1.0000,0.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 59.5024, -3.0000, -2.3880
MEAS/POINT, F(PT5), 1PTMEAS/CART, 59.5024,0.0000,-2.3880,-0.0000,-1.0000,0.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, -3.0000, 4.6955, -3.7651
MEAS/POINT, F(PT6), 1PTMEAS/CART, 0.0000,4.6955,-3.7651,-1.0000,-0.0000,0.0000
ENDMES
DMESW/COMAND,'D(CRD2) = LOCATE/XYZDIR, XYZAXI, $FA(PT1), ZAXIS, $FA(PT2), ZAXIS, $FA(PT3), ZAXIS, $FA(PT4), YAXIS, $FA(PT5), YAXIS, $FA(PT6), XAXIS'
KNPTR1 = ITERAT/(ITR_START), (ITR_FAIL), 0.010000, ABSL, 5,$FA(PT1), 0, 0, 1,$FA(PT2), 0, 0, 1,$FA(PT3), 0, 0, 1,$FA(PT4), 0, 1, 0,$FA(PT5), 0, 1, 0,$FA(PT6), 1, 0, 0
(ITR_FAIL)
$$ Set.CAD2PCS.CADM_1
DO/KNPTN1,1,5,1
F(PT1)=FEAT/POINT,CART,3.4511,59.0363,0.0000,0.0000,0.0000,1.0000
F(PT2)=FEAT/POINT,CART,6.1536,9.2653,0.0000,0.0000,0.0000,1.0000
F(PT3)=FEAT/POINT,CART,59.7937,5.8705,0.0000,0.0000,0.0000,1.0000
F(PT4)=FEAT/POINT,CART,6.1570,0.0000,-2.7657,-0.0000,-1.0000,0.0000
F(PT5)=FEAT/POINT,CART,59.5024,0.0000,-2.3880,-0.0000,-1.0000,0.0000
F(PT6)=FEAT/POINT,CART,0.0000,4.6955,-3.7651,-1.0000,-0.0000,0.0000
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 3.4511, 59.0363, 3.0000
MEAS/POINT, F(PT1), 1PTMEAS/CART, 3.4511,59.0363,0.0000,0.0000,0.0000,1.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 6.1536, 9.2653, 3.0000
MEAS/POINT, F(PT2), 1PTMEAS/CART, 6.1536,9.2653,0.0000,0.0000,0.0000,1.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 59.7937, 5.8705, 3.0000
MEAS/POINT, F(PT3), 1PTMEAS/CART, 59.7937,5.8705,0.0000,0.0000,0.0000,1.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 6.1570, -3.0000, -2.7657
MEAS/POINT, F(PT4), 1PTMEAS/CART, 6.1570,0.0000,-2.7657,-0.0000,-1.0000,0.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, 59.5024, -3.0000, -2.3880
MEAS/POINT, F(PT5), 1PTMEAS/CART, 59.5024,0.0000,-2.3880,-0.0000,-1.0000,0.0000
ENDMES
$$ CALL/M(EASI_CLEARPLN_GOTO), 0, -3.0000, 4.6955, -3.7651
MEAS/POINT, F(PT6), 1PTMEAS/CART, 0.0000,4.6955,-3.7651,-1.0000,-0.0000,0.0000
ENDMES
DMESW/COMAND,'D(CRD1) = LOCATE/XYZDIR, XYZAXI, $FA(PT1), ZAXIS, $FA(PT2), ZAXIS, $FA(PT3), ZAXIS, $FA(PT4), YAXIS, $FA(PT5), YAXIS, $FA(PT6), XAXIS'
ENDDO
这篇关于RationalDMIS 2020 RPS法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!