【编者按】每件产品的测量都需要编制坐标测量机测量计划,其中包括产品被测点的坐标值及方向矢量值的提取工作。本文是对CATIA模型中测量数据的提取技术的分析。
随着航空制造技术的不断发展,国际航空市场的竞争将日趋激烈。当今,产品质量已从竞争的“获胜标准”演变为竞争的“资格标准”,而且,飞机具有高安全、高可靠性的要求,因此,航空产品的质量异常重要。三坐标测量机作为现代化先进检测设备之一,被广泛地应用到飞机零部件及其工装的检测中。需要使用CMM检测的零部件数量正在急剧增加,以上海飞机制造有限公司的工装零部件的检测为例,2010~2012年期间用CMM检测的零部件数量多达2000多件(不包括飞机本体件的测量数量)。 (参阅卡尔蔡司和上海大学继续深度合作 共同培养卓越测量工程师 )
每件产品的测量都需要编制坐标测量机测量计划,其中包括产品被测点的坐标值及方向矢量值的提取工作。当被测点数量众多的时候,数值的提取将花费很多时间,通常提取100点的数值需要1h左右。数值提取工作在CATIA操作平台中进行,提取过程是一系列的反复重复操作,而CATIA为用户提供了Visual Basic、VC++二次开发接口(Automation API)[1],其中VC++就包含2种方法[2],这使点数值的自动提取成为可能。点数值自动提取可以提高工作效率,在生产任务紧迫的情况下其效果尤为显著,可以缩短零部件的交付周期。
本文对点数据的提取过程及CATIA的相关操作命令进行了细致的分析,整理出了数据自动提取的构思。文中对CATIA提供的关于点数据提取的二次开发接口函数的功能进行了探索,找出了数据提取的最佳函数及途径,最终,通过VB完成了数据提取程序的编制。
数据提取的第一个关键点:获取被提取数据点的关联面、关联线/轴线。手动采集方向矢量时,可以目视并选取被测点的关联元素(线、面),但计算机如何判断被测点的关联元素呢?文中分析了获得面点的方向矢量关联面的方法及获取孔点的方向矢量关联线/轴线的方法,从而为点数据的自动提取奠定了基础。
数据提取的第二个关键点:自动寻找、判断点的测量矢量方向(即三坐标测量机的测量方向)。点沿直线可以有相反的2个矢量方向,文中提出了判断正确矢量方向的方法。
本文还叙述了数据提取过程中辅助设置被测点的方法以实现被测点的快速、准确、方便的设置,也对通过VB语言实现坐标转换的方法进行了说明,这些方法都来自于工作实践中的摸索与思考。
CMM检测点数据常规获取方法介绍
点数据常规获取方法(需要CATIA具有高级机械加工模块)流程如图1所示。
1 设置被测点
使用CATIA的“点”命令,选取孔、曲面、平面、轴线等,在数模上建立需要测量的点。重复上述操作,完成所有点的设置。
2 打孔点
(1)切换到CATIA的高级机械平台,双击CATIA结构树上的“Part Operation”以弹出窗口。点击弹窗按钮“Machine”, 然后点击按钮“5-axis Machine”,点“确定”。点击按钮“Reference Machining Axis System”,并确定原点及X、Y、Z轴的方向(点弹窗中的原点/轴,再在数模中选择元素作为原点/轴),点“确定”关闭弹窗。
(2)点CATIA的工具条按钮“Spot Drilling”,点数模,弹出点钻窗口。点弹窗图形上的“Click to Select a Part Surface”,然后在数模上选取确定方向矢量的支撑面,点按钮“OK”返回(或鼠标双击数模空间空白处返回)。点弹窗图形上的“Click to Add Position”,并在数模中选取上述中设置的点,双击数模空间空白处返回。右键点击“Fixed Axis”,在弹出菜单中点选“Normal To PS Axis”,以使方向矢量垂直于支撑面。点击弹窗图形上的方向箭头“Click to Invert the Tool Axis”,并观察数模窗口中的矢量方向指示箭头,确保矢量方向指向产品内部。在弹窗中切换第1个复合窗口,然后取消选择框“Output CYCLE syntax”中的勾选,并将“Approach clearance”设置为0。
(3)重复步骤(2),逐个完成所有点的方向矢量的设置。
3 数据输出及选取
点击CATIA工具条命令“Generate NC Code in Batch Mode”以输出文本文件,然后用记事本打开输出的文本文件,并从中挑选出需要的坐标、矢量数据。
总之,手工采点的整个过程有很多重复、繁琐的工作,特别是当采点数量多时,工作量很大。
CMM检测点数据自动提取技术的实现
1 检测点数据自动提取流程分析
读取/识别数模几何图形集上设置的被测点,分析点并找出其关联元素(支撑元素),根据属性判断关联元素的类型(面、圆、椭圆)。根据面、圆、椭圆的性质,分别绘制确定点方向矢量的直线。通过相关接口函数得到原始坐标系下点的坐标值及方向矢量值,通过坐标转换运算,获得指定坐标系下的坐标值及方向矢量值。按CMM需求的格式输出文本。以上过程由计算机自动完成。流程见图2。
2 点数据自动提取关键功能的实现
(1)提高设置被测点的效率。
通过Catia.StartCommand ("点")、 Catia.StartCommand ("轴线... ")、Catia.StartCommand ("填充")语句,实现建立被测点时,智能打开CATIA的建面点及孔点窗口,辅助被测点的建立,以快速完成被测点的设置。此外,可以增加点距限制功能,在设置面点时,通过HybridShapes.Item(i).Offset.Value自动限制新设置点与上一个设置点的距离,从而确保设置的点距满足相关规范的要求。“点”、“轴线... ”、“填充”等来源于CATIA的“自定义”窗口中的“命令”中的“所有命令”,当然,在此窗口中自定义的别名也同样有效。
(2)确定提取程序能识别的确定被测点方向矢量的关联元素。
让程序识别出被测点的确定点方向矢量的关联元素是提取技术的关键之一。CATIA建点有如下特点:被建点与数模零件不属于同一零件时,建点时CATIA会自动提取点的关联面、线等到被建点所在的零件中。利用此特性,在数模产品中新建零件clsj.CATPart(程序自动完成),将所有被测点全部建立在此零件中(即在建点时激活该零件),如图3所示,“点.1”是手工建立的,“曲面.1”是CATIA自动产生的辅助元素。
(3)使程序在CATIA或DELMIA下都能运行。
使用下列语句,实现程序在CATIA或DELMIA环境下都能运行。其中“If”语句很关键,当你没打开CATIA,而打开DELMIA时,“If”语句的条件的判断将为真,此后,将执行“Set catia = GetObject(, "DELMIA.Application")” [3]语句,而使程序与DELMIA建立通信联系。
Dim catia As Object
Set catia = GetObject(, "CATIA.Application")
If catia Is Nothing Or Len(catia.Caption) = 0 Then
On Error Resume Next
Set catia = GetObject(, "DELMIA.Application")
End If
Set GetCATIA = catia
(4) 确定方向向量。
首先,要建立确定方向向量的直线,相关接口的函数
为AddNewPointOnPlane、AddNewPointOnSurface、AddNew PointOnCurveWithReferenceFrom Distance及AddNewLinePtPt、AddNewLinePtDir等。
其次,进行方向向量方向的判断。通过方向指引线末端点到数模实体的距离判断方向向量的方向。实现方式:通过端点绘制半径为0.0005mm的球面,然后通过函数cat DistanceComputationTypeAgainstAll计算球到数模的距离,此距离与指引线长度进行比较后可确定被测点方向向量的正确方向;此外,也可以利用孔轴线的开始点、中点、结束点判断方向,使用接口函数GetPointsOnCurve可以得到轴线的上述3个点的坐标值,计算被判断点到轴线开始点的距离,距离大者为需要的确定方向向量的点。
最后,可以通过接口函数GetXVal、GetYVal、GetZVal分别获取指引线相对于原始坐标系的方向向量的X、Y、Z方向的双精度分向量值,此方向代表坐标测量机测针的运行方向,但其坐标系是原始坐标值。
(5) 进行坐标转换。
使用CATIA的接口函数“GetPoint”、“GetAxisSystem”及“GetXVal”、“GetYVal”、“GetZVal” 可以让程序自动得到点的坐标值及方向矢量值。由于使用接口函数得到的点坐标/方向向量值都是相对于原始坐标系的,因此,需要对坐标进行转换,将原始坐标系坐标值转换为指定坐标系下的坐标值。
坐标转换方法:针对数模零件“Part1”,设O轴系统为零件“Part1”的原始坐标系,O1轴系统为零件“Part1”的轴系统1,Xo、Yo、Zo与X1、Y1、Z1分别为O1轴系统的原点Q1、空间点P在原始坐标系下的坐标值,目标是求点P在轴系统1下的坐标值X、Y、Z。
通过VXx=CATIA.ActiveDocument. Part.Parameters.Item("Part1\轴系统.1\X 轴\X").Value语句(注:"Part1\轴系统.1\X 轴\X"是根据CATIA中树结构中的轴系统参数构建的,需与CAITA的用户界面语言相符,当CATIA的用户界面语言选择英语时,则应为"Part1\ AxisSystem.1\XAxis\X")可以得到零件“Part1”的“轴系统.1”的X′轴方向的单位向量沿原始坐标系X轴的分向量VXx。同理可得Y′轴方向的单位向量沿原始坐标系X轴的分向量VYx。从而可求出“轴系统.1”各轴方向的单位向量在原始坐标系上的各分向量为:VXx、VXy、VXz、VYx、VYy、VYz、VZx、VZy、VZz。Xo、Yo、Zo与X1、Y1、Z1可通过CATIA接口函数直接获取。分别求向量O1P在原始坐标系下的各分向量[4],可得下列方程组:
求解上述方程组,可以得到P点从原始坐标系转换到轴系统1后的坐标值X、Y、Z。将坐标转换编制成子函数,以便于坐标转换时调用。
(6) 点的方向、取点路径方向及方向向量的调整。
通过Catia.StartCommand ("ACA Invert"),实现点的方向向量(如图4左图所示,图中的箭头方向即为点的方向向量的方向)及取点路径顺序方向的显示,这种显示便于截取形象的示意图。方向向量的调整:通过Set hybridShapeInverse1 = hybridShapeFactory1.AddNewInverse(reference1, 1)及 hybridBody1.AppendHybridShape hybridShapeInverse1实现给方向线(reference1)添加反转线,然后,使用Timer过程监控反转线的方向,当发现方向变化时,使程序控制数模做相应的变化,并重新提出该点的方向向量,对孔点同时提取新的点坐标,从而实现对已提取数据的点的方向向量的正反调整。
点数据自动提取程序介绍
程序界面及最终输出数据(点坐标、方向矢量、对于孔还将输出孔半径)如图5所示。
自动提取被测点坐标、方向矢量的操作说明:点“创建”;通过“取点轴系统”选择测量坐标系;点“提示”(包含辅助设置点的功能),并按提示信息在数模上设置面或孔的被测点;使用“捕获”自动生成被测点的坐标值及方向矢量;观察方向向量箭头,看测点的方向向量是否正确,然后关闭Invert窗口,对可能不正确的方向向量进行双击激活并取反;点“隐藏引线”以隐藏指引线并显示取点的顺序箭头;最后点“输出”得到需要的点坐标及方向矢量数据文本文件。
点数据自动提取程序的3个显著优点是:第一,它能够辅助计划人员设置被测点,程序将自动调出设置面点、孔点的对话窗口,按需自动限制所取面点的点距,很大程序上提高了点的设置效率,并增加了“确定”按钮快捷键,进一步方便了操作;第二,它优化了孔点的操作,手动操作时,需要设置孔点的下沉量及辅助平面,当需要测量垂直度时,还需要设置2个下沉点及辅助平面,使用自动提取程序则只需要设置1个点且不需要辅助平面,计划员按程序提示选择需要提取1个或2个孔点;第三,它能够根据设置的点自动提取点坐标和方向矢量,避免了繁琐的“打孔点”操作和数据的筛选工作。这些优点实现了点坐标及矢量值的快速提取,避免了人为的操作失误,极大提高了采集数据的效率和准确性。
随着飞机设计水平、制造技术水平的提高,飞机零部件的制造精度要求也将越来越高,需要进行坐标测量机测量的零部件数量也将不断增多。三坐标测量机以其高精度、高柔性及优异的数字化能力,成为现代制造业尤其是模具工业设计、开发、加工制造和质量保证的重要手段。充分分析各数字化检测系统的性质及各应用软件的功能,结合应用程序提供的二次开发接口进行开发,可以定制符合使用需求的便捷功能,还可以将统计过程控制SPC数据分析技术结合进来,并有利于生产效率的提升。
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
- 暂无反馈