首页/文章/ 详情

RationalDMIS特征数据偏差较大的测量

17小时前浏览6

 提示:

             主要利用局部坐标系和相对测量功能! 

      
DMIS的全称是 Dimensional Measuring Interface Standard(尺寸测量接口标准),这个标准的开发最早是由国际计算机辅助制造有限公司的质量保证程序组织的。在19852月启动,作为尺寸测量接口的规格,这个规格,实际上就是做联接尺寸测量设备的提供者和使用者工作的一个结果,即自动审查数据系统中的通讯标准。

     第一个版本,DMIS1.0是由IIT研究院开发的,该研究院隶属于CAM-I,1986年的三月完成。到发帖之日起,总共经历了6个版本即:1.0,2.0;2.1;3.0;4.0;5.0,从2.1的版本开始,被ANSI(美国国家标准化组织)接受为一个标准。

                三坐标测量机使用的是国际标准的DMIS编程语言,对测量机的运动与测量的动作和计算进行编程,并在程序中对测量机的每一步测量动作进行了明确的定义,在进行自动测量时,测量机控制系统对测量程序进行解码,控制三坐标测量机严格按照DMIS程序所定义的坐标位置进行测量操作。当程序中指定的测量点出现位置偏差时,如果偏差超出测量程序所定义的范围,就会出现测量点无法测量的现像,或是在测量过程中出现碰撞。

           针对这种现像,可以对车身上的几何元素进行分组测量,针对难度较大的孔组,可以在局部建立临时坐标系,精确定位相应孔组的测量,可以减少由于整车累计误差带来的测量程序偏差,自动完成整车测量。可以根据实际情况,在多个位置建立不同的临时坐标系, 建立临时坐标系时,可以使用局部手动测量的方法,建立准确的临时坐标系;也可以在自动测量模式下,通过对比较容易测量的元素进行测量,然后建立临时坐标系,在自动状态下完成全部测量(当然,如果用于建立临时坐标系的元素偏差较大,仍然可能造成‘测针跑偏’或‘撞针’的现像。


临时坐标系工作示意图 


操作过程:
 

A.建立自学习程序的过程

 

1. 首先以手动方式测量车身支架,建立测量车身的标准坐标系(例如,CRD1)。

 

2. 转入CRD1坐标系,注意GOTO点的设置,并按顺序进行自动测量。

 

3. 在自动运行到一组孔位时,或是一个独立的工件时(车身由很多独立的钣金件焊接而成,各个件焊装可能误差较大,但单一一个工件内部各个孔的偏差会比较小一些),比如车头侧围的一组孔的时候,在这些孔组中找一些孔径较大或相对比较好测量的元素,以圆为例,找到一个孔径最大精度最高的1-2个圆,对这两个圆进行自学习测量,(例如,测量CIR1和CIR2)。为了测量得比较准确,最好对圆所在的平面进行测量,然后再测圆。如果可以找到这样的两个孔,而且也可以顺利测完,则这个过程也可以是自动的;假如在工件上根本无法找到这样的孔或其他几何元素,就只能转换为手工测量的方式来测这两个圆。
 

4. 使用刚刚测量的两个圆(示例的CIR1和CIR2)建立一个坐标系,起名为CRD2。建立这个坐标系时,因为只是临时坐标系,所以都不用关心它的方向啊原点坐标啊,只要将临时坐标系的原点设置在一个圆的圆心上(例如CIR1)一个坐标轴为两圆的圆心连线,一个坐标轴为一个圆的平面,就可以了。
 

5. 调用CRD2坐标系,然后在这个坐标系内,自学习完成这个部件上全部孔的测量。在这种情况下,因为坐标测量机记录的点是在临时坐标系内的坐标点,可以去掉大部份因焊装引起来的误差,测量点和程序中记录的点的实际偏差也会小很多。所以自动程序可以自己完成的概率也会大很多。
 

6. 在这个部件结束后,可以安全GOTO到另一个部件,假如从经验上看,这个部件的孔位偏差也比较大,比较难测,那么也可以重复3-5的过程,建立一个新的临时坐标系,完成这个部位的测量。
 

7. 整个车身测量结束后,可以重新调用CRD1坐标系,对上面的全部测量结果进行输出。当然,也可以在测量完一组后,立即调用CRD1坐标系,进行结果输出,例如,在第5步结束后,第6步开始前,调用CRD1坐标系进行第5步测量的那些结果的输出,这样也是可行的。
 

8. 自学习程序结束后,修改测量程序,将程序中第1、2部相应的模式控制语句(MODE/PROG,MAN)改为,在程序开始时,语句为MODE/MAN(手动方式),在建立了CRD1坐标系后,语句为MODE/PROG,MAN。假如第3步时,没有找到可以自动执行的圆或其他几何元素,则也要在第3步前,将程序的运行模式转为手动(MODE/MAN),然后在建立好临时坐标系并调用后,再转为自动(MODE/PROG,MAN)。上述过程虽然自学习时多了几个操作步骤,但自动测量时对效率的影响几乎可以忽略不计,因为可以是自动执行的。它的另一个优点是,如果在某一部位仍然发生撞针等现像,也可以很直观地修改程序,先跳过这段程序的运行,直接进入下一程序的自动执行。在可以自动测量的部位全都测量完毕后,再用手工方式补充测量刚才没有自动测量的部位。


B.运行上述程序的过程

 

1.直接运行测量程序,先以手动方式测量车身支架,建立测量车身的标准坐标系(例如,CRD1)。如果电控柜没有关机,软件没有退出, 这一步也可以不做,可以让程序直接从调用CRD1转入自动测量来开始。但如果是开机后第一次运行这个程序,则必须要手动测量,否则因为测量机的坐标位置每次开机是有微小偏移的,一开始就自动测量会有撞针危险。
 

2.然后就转入CRD1坐标系,自动开始测量了。

 

3.如果在某一部位发生撞针,可以中断程序后,将测量机移动到下一部测量的安全位置,让程序执行后面的自动测量过程。


来源:山涧果子
碰撞焊接控制钣金
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2024-12-27
最近编辑:17小时前
山涧果子
大专 签名征集中
获赞 204粉丝 51文章 194课程 0
点赞
收藏
作者推荐

RationalDMIS赋值功能的应用

提示: 主要用于无3D数模坐标系精建!DMISMN/'Created by [天永智能装备股份有限公司] on 星期六, 十月 14, 2017', 4.0UNITS/MM, ANGDECWKPLAN/XYPLANPRCOMP/ONTECOMP/ONFLY/1.0MODE/PROG, MANSNSET/APPRCH, 4.000000SNSET/RETRCT, 4.000000SNSET/DEPTH, 0.000000SNSET/SEARCH, 10.000000SNSET/CLRSRF, 50.000000RECALL/D(MCS)SNSLCT/S(20-30X2)GEOALG/CIRCLE, LSTSQRGEOALG/ARC, LSTSQRGEOALG/PLANE, LSTSQR$$$$MODE/MANTEXT/OPER, '在上平面采集四点,找正Z正!!'F(PLN1) = FEAT/PLANE,CART, 469.8149, -828.6828, -662.4612, 0.000334,$-0.000261, 1.000000$$ Measurement points are created through actual pointsMEAS/PLANE, F(PLN1), 4 PTMEAS/CART, 369.124445, -774.559622, -662.413453, 0.000334, -0.000261,$1.000000 PTMEAS/CART, 524.398856, -774.559523, -662.465283, 0.000334, -0.000261,$1.000000 PTMEAS/CART, 552.834482, -881.677754, -662.502735, 0.000334, -0.000261,$1.000000 PTMEAS/CART, 432.901843, -883.934375, -662.463291, 0.000334, -0.000261,$1.000000ENDMESD(CRD1) = DATSET/FA(PLN1), ZDIRD(CRD1) = TRANS/ZORIG, FA(PLN1)WKPLAN/XYPLANTEXT/OPER, '采集基准B圆孔,均布测量四点!'F(B) = FEAT/CIRCLE,INNER,CART, 497.3239, -833.5793, -4.7095, 0.000000,$0.000000, 1.000000, 30.0750$$ Measurement points are created through actual pointsMEAS/CIRCLE, F(B), 4 PTMEAS/CART, 493.642119, -818.999558, -4.709443, 0.244841, -0.969563,$-0.000000 PTMEAS/CART, 511.325452, -828.094532, -4.709443, -0.931108, -0.364743,$-0.000000 PTMEAS/CART, 500.241992, -848.331009, -4.709443, -0.194053, 0.980991,$-0.000000 PTMEAS/CART, 482.296989, -833.015731, -4.709443, 0.999297, -0.037482,$-0.000000ENDMESF(C) = FEAT/CIRCLE,INNER,CART, 523.1353, -925.0164, -3.7967, 0.000000,$0.000000, 1.000000, 30.0617$$ Measurement points are created through actual pointsMEAS/CIRCLE, F(C), 4 PTMEAS/CART, 520.865981, -910.157759, -3.796714, 0.150977, -0.988537,$-0.000000 PTMEAS/CART, 538.022795, -922.945290, -3.796714, -0.990462, -0.137786,$-0.000000 PTMEAS/CART, 523.341353, -940.045779, -3.796714, -0.013709, 0.999906,$-0.000000 PTMEAS/CART, 508.279604, -927.304407, -3.796714, 0.988346, 0.152225,$-0.000000ENDMES$$ CREATED BY : External-Array Software, Inc$$ DATE : Jan 19, 2009$$ DISLAIMER: $$ This Macro has been tested internally but not been tested with$$ other DMIS compatible software. This Macro is provided as sample$$ and can be modifed for your own use. External-Array doesn't not $$ guarantee the quality of this Macro.$$ FUNCION: Create a nominal line using two actual features$$ DI, DJ, DK are the normal vector of the plane that the line lies onM(EASI_2PT_TO_LINE) = Macro/'FEAT1', 'FEAT2', 'FEATLINE', DI, DJ, DKDECL/LOCAL,DOUBLE,DVALUE[6] DECL/LOCAL,INTGR, INDEX1, INDEX2 CALL/M(EASI_GETX_INDEX), FEAT1, INDEX1 CALL/M(EASI_GETX_INDEX), FEAT2, INDEX2 DVALUE[1] = OBTAIN/FA(@FEAT1),INDEX1DVALUE[2] = OBTAIN/FA(@FEAT1),INDEX1+1DVALUE[3] = OBTAIN/FA(@FEAT1),INDEX1+2 DVALUE[4] = OBTAIN/FA(@FEAT2),INDEX2DVALUE[5] = OBTAIN/FA(@FEAT2),INDEX2+1DVALUE[6] = OBTAIN/FA(@FEAT2),INDEX2+2 F(@FEATLINE) = FEAT/LINE,BND,CART,DVALUE[1],DVALUE[2],DVALUE[3],$ DVALUE[4],DVALUE[5],DVALUE[6],$ DI, DJ, DKENDMACCALL/M(EASI_2PT_TO_LINE),(B),(C),(BFLN1), -0.000334, 0.000261, 1.000000CONST/LINE,F(BFLN1),BF,FA(B),FA(C)D(CRD2) = ROTATE/ZAXIS, FA(BFLN1), -XDIRD(CRD3) = TRANS/XORIG, FA(B), YORIG, FA(B)$$TEXT/OPER, '精建坐标系!!'$$MODE/AUTO,PROG,MAN$$ 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$$ FUNCION: Move machine CLEAR DIST above the current clear surface $$ plane and then move machine parallel to the clear surface$$ plane to the project point of POINT(TARX, TARY, TARZ) on $$ the clear surface plane but CLEAR DIST above the 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$$ ruby ball instead of the center of it.M(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/GOTO, XAXISCURY = VALUE/GOTO, YAXISCURZ = VALUE/GOTO, 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*TDENDIFENDIFENDMACSNSET/APPRCH, 4SNSET/RETRCT, 4SNSET/DEPTH, 0.0000SNSET/SEARCH, 10.0000SNSET/CLRSRF, FA(PLN1), 50DECL/COMMON,REAL,PLN1_1_AX,PLN1_1_AY,PLN1_1_AZPLN1_1_AX = OBTAIN/FA(PLN1)[1],2PLN1_1_AY = OBTAIN/FA(PLN1)[1],3DECL/COMMON,REAL,PLN1_2_AX,PLN1_2_AYPLN1_2_AX = OBTAIN/FA(PLN1)[2],2PLN1_2_AY = OBTAIN/FA(PLN1)[2],3DECL/COMMON,REAL,PLN1_3_AX,PLN1_3_AYPLN1_3_AX = OBTAIN/FA(PLN1)[3],2PLN1_3_AY = OBTAIN/FA(PLN1)[3],3DECL/COMMON,REAL,PLN1_4_AX,PLN1_4_AYPLN1_4_AX = OBTAIN/FA(PLN1)[4],2PLN1_4_AY = OBTAIN/FA(PLN1)[4],3DECL/COMMON,VECTOR,PLN1_VKNPTR1 = OBTAIN/FA(PLN1),6KNPTR2 = OBTAIN/FA(PLN1),7KNPTR3 = OBTAIN/FA(PLN1),8PLN1_V = ASSIGN/VCART(KNPTR1,KNPTR2,KNPTR3)F(PT1) = FEAT/POINT,CART, PLN1_1_AX,PLN1_1_AY,0, KNPTR1,KNPTR2,KNPTR3$$ Empty Meas BlockMEAS/POINT, F(PT1), 1ENDMESF(PT2) = FEAT/POINT,CART, PLN1_2_AX,PLN1_2_AY,0, KNPTR1,KNPTR2,KNPTR3$$ Empty Meas BlockMEAS/POINT, F(PT2), 1ENDMESF(PT3) = FEAT/POINT,CART, PLN1_3_AX,PLN1_3_AY,0, KNPTR1,KNPTR2,KNPTR3$$ Empty Meas BlockMEAS/POINT, F(PT3), 1ENDMESF(PT4) = FEAT/POINT,CART, PLN1_4_AX,PLN1_4_AY,0, KNPTR1,KNPTR2,KNPTR3$$ Empty Meas BlockMEAS/POINT, F(PT4), 1ENDMESF(PLN_A) = FEAT/PLANE,CART, 11.9593, 24.9784, 0.0000, -0.000000, -0.000000,$1.000000CONST/PLANE,F(PLN_A),BF,FA(PT1),FA(PT2),FA(PT3),FA(PT4)F(DCC_B) = FEAT/CIRCLE,INNER,CART, 0,0,-4, 0,0,1, 30$$ Empty Meas BlockMEAS/CIRCLE, F(DCC_B), 4ENDMESF(DCC_C) = FEAT/CIRCLE,INNER,CART, -95,0,-4, 0,0,1, 30$$ Empty Meas BlockMEAS/CIRCLE, F(DCC_C), 4ENDMESCALL/M(EASI_2PT_TO_LINE),(DCC_B),(DCC_C),(BFLN2), 0.000342, 0.000250, 1.000000CONST/LINE,F(BFLN2),BF,FA(DCC_B),FA(DCC_C)D(CRD4) = DATSET/FA(PLN_A), ZDIR, FA(BFLN2), -XDIR, FA(DCC_B), XORIGD(CRD4) = TRANS/ZORIG, FA(PLN_A), YORIG, FA(DCC_B), XORIG, -0$$$$TEXT/OPER, 'DCC测量正式开始!!'$$$$MODE/AUTO,PROG,MANSNSET/APPRCH, 4.0000SNSET/RETRCT, 4.0000SNSET/DEPTH, 0.0000SNSET/SEARCH, 10.0000SNSET/CLRSRF, FA(PLN_A), 50.0000F(J-1) = FEAT/CIRCLE,INNER,CART, 0.0000, 0.0000, -4.0000, -0.000000,$-0.000000, 1.000000, 30.0000$$ Empty Meas BlockMEAS/CIRCLE, F(J-1), 4ENDMESF(J-2) = FEAT/CIRCLE,INNER,CART, -95.0000, 0.0000, -4.0000, -0.000000,$-0.000000, 1.000000, 30.0000$$ Empty Meas BlockMEAS/CIRCLE, F(J-2), 4ENDMESF(J-3) = FEAT/CIRCLE,INNER,CART, 35.0000, -88.0000, -4.0000, -0.000000,$-0.000000, 1.000000, 30.0000$$ Empty Meas BlockMEAS/CIRCLE, F(J-3), 4ENDMESF(J-4) = FEAT/CIRCLE,INNER,CART, 100.0000, 162.0000, -4.0000, -0.000000,$-0.000000, 1.000000, 20.0000$$ Empty Meas BlockMEAS/CIRCLE, F(J-4), 4ENDMEST(TFLAT1) = TOL/FLAT, 0.0300OUTPUT/FA(PLN_A), TA(TFLAT1)T(TCORTOL1) = TOL/CORTOL,XAXIS, -0.0500, 0.0500T(TCORTOL2) = TOL/CORTOL,YAXIS, -0.0500, 0.0500OUTPUT/FA(J-1),TA(TCORTOL1),TA(TCORTOL2)OUTPUT/FA(J-2),TA(TCORTOL1),TA(TCORTOL2)OUTPUT/FA(J-3),TA(TCORTOL1),TA(TCORTOL2)OUTPUT/FA(J-4),TA(TCORTOL1),TA(TCORTOL2)来源:山涧果子

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈