基于三维工艺模型的装配现场可视化
2013-10-17屈力刚魏佩振苑俊超
屈力刚,魏佩振,苑俊超
QU Li-gang,WEI Pei-zhen,YUAN Jun-chao
(沈阳航空航天大学 航空制造工艺数字化国防重点实验室,沈阳 110136)
0 引言
飞机装配技术作为衡量飞机制造技术水平的高低,对飞机的全生命周期起至关重要的作用。目前国内二维CAPP系统在飞机装配过程中仍起主导作用,飞机制造过程中工艺设计过程依据二维图纸、装配技术要求、相关产品的装配工艺、企业的技术和工装条件以及个人的经验,设计出产品的具体装配流程[1],并以此形成装配工艺的主体内容,继而形成对实际装配操作有指导意义的二维图、工艺规程(AO)等工艺资料,二维图纸成为传递工艺设计与产品装配的主要手段。飞机制造企业通过这些工艺资料来指导装配人员完成产品装配,通过人为方式管理来实现工艺指令的执行贯彻。
沈飞公司作为我国国防重点科研生产基地,承担众多型号飞机的研制任务,随着多型号任务的发展,迫切需要建立企业自身的飞机制造工艺体系。要在短时间内高质量的完成任务,必须在制造手段上进行突破,改变三维装配工艺设计环境和数控制造环境与依靠二维工艺文件传递工艺信息格格不入的制造方式,彻底消除三维模型与二维图纸之间的人工转换,在产品装配的各个环节中,所有操作工人无须人工阅读二维图纸及在大脑中形成产品立体模型并理解具体装配操作后再进行后继工作,而是从三维可视化浏览器中直接对三维模型进行操作。
1 系统架构
现场可视化系统系统流程及集成架构如图1所示,分为三个模块。底层是工艺模型,用于存术对工艺信息提取和对3DVIA Composer开发技术对工艺模型轻量化,定义XML形式的数据结构,将获取的工艺信息存储到XML文件,在服务器端的基础上,读取XML文件及加载3DVIA Player组件;客户端对轻量化模型和工艺信息进行显示,支持整个装配过程的所有基于工艺模型的数据处理需求,比如:物料清单、工装、刀量具、标准件等装配工艺数据信息的浏览、查询。
图1 基于三维工艺模型的装配现场可视化系统
2 关键技术
2.1 三维工艺模型的结构与内容
三维工艺模型就是数字化的装配工艺文件(AO),作为本系统的主要数据源之一,我们从工艺设计部门获取工艺模型,通过对工艺模型进行分析,明确其内部数据的组织和结构,获取可视化浏览器所需要的数据源。
图2 三维工艺数据模型
设计部门发放的工艺模型数据结构如图2所示,其主要由基本信息、装配信息、装配过程工艺信息3个分支构成,基本信息描述了该工序过程的装配控制码、名称、状态表等管理类信息,说明这份工艺规程的使用范围、有效性等;装配过程工艺信息包含了装配的所有工艺信息,主要描述产品装配过程中工人需要什么物料,采取什么方法,在什么位置做什么样的工作,以及物料、工装刀量具的详细数量,代号,配套表详细列出了所有的信息;装配信息主要描述了产品装配所需要的工装,以及零部件的装配顺序,通过三维装配动画查看零件的具体装配操作方法,装配顺序,步骤,装配路径等,非常方便工人的现场操作。
2.2 装配工艺信息提取
装配过程工艺信息存储在工艺模型下的PPR文件中,因此对于工艺信息的读取必须利用CATIA/CAA开发技术。CAA(Component Application Architecture)是法国达索公司为了用户在使用CATIA 的过程中根据所要扩展的功能进行二次开发而提供的以VC++语言为基础的一系列函数库的总称[2,3]。CAA方法进行 CATIA 二次开发用到的核心思想是面向对象的程序设计 OOP(Object Oriented Programming)[4]。
要从工艺模型中提取装配工艺相关信息,包含以下流程:1)首先获取PPR文档对象指针,CAA中对象的操作只能通过它的指针来完成,初始化文档,调用GetRootContainer()函数获取文档的根容器,容器包含所有的对象。2)通过根容器再调用GetAllProcess()函数,获得Process列表,即PPR文档中的ProcessList;Root Activity是ProcessList列表中的第一个元素,即PPR中的Process节点,我们可以通过遍历ProcessList集合获取所有的元素。3)通过CATISPPChildManagement接口,并调用GetChild()函数,来获process节点下给定参数类型的所有子元素。4)获取process列表下的每个元素,并通过接口CATISPPActivity调用GetAttrValue()来获取所有的属性值。通过以上程序可以迅速的获取PPR上的工艺信息,记录所有装配工艺信息,整理并存入 XML文件,即获得装配工艺信息。
图3 工艺文件信息在PPR中的存储形式
2.3 三维工艺模型轻量化
工艺信息获取完成后,需要对三维模型进行轻量化,以便高效的进行数据传输,图形快速绘制,满足实时交互的要求。对三维工艺模型的轻量化,我们通过对3DVIA Composer组件二次开发来实现。模型轻量化的处理流程如图4所示。
图4 模型轻量化处理流程
调用命令行APIs,3DVIA Conerter.exe<fileInput><fileSettings.xml>输入转化文件,同时 XML配置文件用来定义文档的属性,如模型的精度,输出格式,物体渲染的资源分配,模型的属性信息,图形质量等,XML配置文件为批处理文件。在曲面三角化处理时,本文采用的曲面简化算法是通过精度来控制三角面片的多少,精度越高,三角形网格的划分越细密,三角形面片形成的实体就越趋近于理想实体的形状。文献[5]对曲面简化做了一种探索,本文在此基础上做了进一步的研究,以便更能方便的利用。三角化处理主要是将实体表面离散成大量的三角形面片,即以三角形面片的形式来近似的表示几何模型。三角形面片的多少由模型的精度控制,模型曲面精度由多边形的弦高和多边形相邻弦的最大夹角控制。因此我们通过精度控制多边形的弦高的大小(ε)和相邻弦的夹角的大小(α),来实现模型曲面三角化的程度。控制方法如图5所示。
图5 几何模型曲面三角化处理
2.4 基于XML的数据交换技术
由于工艺模型数据量巨大,工艺信息读取、较慢,因此本文提出使用XML作为实现产品数据交换的中间工具。XML是一种简单易用的标记语言。用它作为数据交换接口具有格式良好,可扩展性强,高度结构化,容易传输等几个优点[6]。
元素是XML文档的基本单元,XML文档就是由一个一个层层嵌套的元素组成。整个XML文档从根元素开始,根元素包含若干个子元素,而每个子元素又可以包含若干个子元素,从而可以组织成庞大的XML文档[7]。元素包含一个起始标签,一个结束标签以及标签之间的数据内容。元素创建通过CATIDMElement接口,数据内容包含名称和值,通过CATIDOMCDATASection接口创建,并通过参数将获取的结构树上的节点名称、数值、传递到AddElement()中,实现XML的创建及信息的写入。
对于PPR结构树上的中的各个节点,以树的形式在XML中以元素的形式存储,节点之间的包含关系以元素之间的嵌套关系实现,并通过预定义的模板实现XML文档格式的校验。元素类型分为简单类型和复杂类型,简单类型只能包含字符数据如,复杂类型元素可以有子元素和属性(工步列表),复杂类型通过complexType来定义,数据内容包含名称和值,类型通过CDATA标记,语法格式如图6所示<[CDATA[文本内容]]>,内容为String类型。
图6 XML工艺文件格式
3 三维可视化浏览器
可视化浏览器是基于B/S结构模式支持下浏览工具,集成3DVIA Player组件实现对装配零部件的旋转、标注、测量和剖切等;三维动画的播放;产品装配结构与三维模型的对应;解析XML实现装配工艺数据(物料信息、操作说明、综合信息)浏览。
浏览器界面采用JAVA语言设计,简洁美观、风格统一,操作便捷。解析器使用MSXML4.0进行XML文件的解析[8],使用SAX(A Simple API for XML)方式进行解析,该解析方式适合解析大型的XML文件,可以快速提取大型装配体的相关信息[9]。
SAX是一种基于事件驱动的API。利用SAX解析XML文档,涉及到两部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发送事件,而事件处理器则负责对事件作出响应,对传递的XML数据进行处理[10]。解析器负责提供实现XMLReader接口的解析器类,而我们所要做的是编写事件处理器程序。首先创建一个解析器工厂;其次利用这个工厂获取一个具体的解析对象;在文档的开始和结束时触发文档处理事件,这个事件由事件处理器中的startDocument()和endDocument()响应,开始对文档进行解析及接受文档结束的通知;对文档中的每一个XML元素接受解析的前后触发元素事件,分别调用startElement()和endElement()来读取元素名称和内容等信息并接受元素结束的通知。解析结束后,用指定的样式表对XML文档进行转换,产生HTML页面,发送到客户端,用户通过浏览器方式查看飞机装配工艺信息。
图7 可视化浏览器处理流程
4 现场可视化系统验证
本系统是在 Windows XP系统环境下,以C++和JAVA作为开发语言,设计开发了一个基于三维装配工艺模型的装配现场可视化系统。通过 CAA二次开发提取装配工艺信息储存于如图7所示的XML文件,模型轻量化,将这些信息解析后在可视化浏览器进行显示,如图8所示。工人通过可视化浏览器查询产品的装配工艺信息,查看三维装配指令及通过多媒体观看装配过程,同时,也可以浏览产品及工装资源的轻量化模型,实现三维数字化装配工艺数据在装配现场的应用。
1)模型的轻量化主要是通过精度来控制,精度越低,三角形面片越少,经过轻量化的三维工艺模型虽然降低了精确度,但是大大简化了零件模型,数据大小只有原来的 1/20~1/50,零件模型更迅速加载,显示速度更快。图8轻量化前后的CATIA 模型对比。
图8 模型轻量化前后对比
2)用 XML 格式作为数据的中间转换格式,既能统一底层的数据资源,又能不局限于某一种系统平台而进行数据的传递,是一种高效、便捷的数据传输格式。工艺信息在XML文件中的存储如图9所示。
图9 XML模型工艺信息存储
三维可视化浏览器目前支持以下功能,三维模型的平移、旋转、缩放;三维标注距离测量;创建剖面;三维动画的播放;产品装配结构与三维模型的关联;工艺信息(物料、综合、操作说明信息)的显示;现场问题反馈。
图10 三维装配现场可视化浏览器
5 结束语
本文通过查阅大量参考文献,分析装配模型和总结已有的数据交换方法的基础上提出了一种三维装配工艺模型的模型轻量化解决方案和基于XML的CAD装配模型数据交换方法,并以此为基础开发了三维可视化浏览器,实现了工艺文件的快速浏览和装配动画的现场展示,强化工艺信息的现场指导作用。这种三维的数据表达方式更能准确、直接反映工艺人员的设计意图,减少因数据理解不一致导致装配错误的可能性,从而提高装配效率,降低研制成本,有效地促进企业的快速发展。但是在模型轻量化时由于采用三角面片来近似表示零件的几何形状,不能精确测量零件的几何位置关系,数据压缩比并不高还存在很大的提升空间,XML作为标准中间数据格式也存在一定的不足。
[1] 姜宇峰.三维装配工艺设计系统关键技术研究[D]. 华中科技大学,2007.5:1-3.
[2] 李自胜,朱莹,向中凡.基于 CATIA 软件的二次开发技术[J].四川工业学院学报,2003,22(1):19-21.
[3] DassaultSystemes.CAAV5encyclopaedia[C].Paris:DassaultSystemes,2000.
[4] 何朝良,杜廷娜,张超.基于CAA的CATIA二次开发初探[J].自动化技术与应用,2006(9):28-30.
[5] 罗显光,李爱平,刘雪梅,李军.基于B-REP的CAD模型与VR模型接口的实现[J]. 系统仿真学报,2009.3.
[6] 冯延辉,叶毅峰.XML完全手册[M].中国电力出版社,2000,5.
[7] 李刚.疯狂XML讲义[M].北京:电子工业出版社,2011.08.
[8] Fabio Arciniegas.Advanced programming guaid with C++XML[M].北京:中国希望电子出版社,2002.102-357.
[9] 王晓斌,宁涛,王可.3DXML文件格式解析及应用[J].工程图学学报,2010(2):33-37.
[10] 孙鑫.JAVA Web开发详解[M]. 电子工业出版社.2012.5.