APP下载

基于CATIA V5的组件轻量化技术研究

2019-09-27李文博寸文渊黄光强

制造业自动化 2019年9期
关键词:数模二次开发文件夹

李文博,寸文渊,黄光强

LI Wen-bo,CUN Wen-yuan,HUANG Guang-qiang

(航空工业成都飞机工业(集团)有限责任公司,成都 610073)

0 引言

三维数模轻量化技术是指在保证原始数模文件基本信息和必要精度的基础上,将文件大小压缩至1/10甚至更小的简化格式过程[1]。轻量化数模技术促进了上下游技术人员之间的信息交流,使企业各环节之间的沟通更高效便捷。

我国航空领域广泛采用CATIA作为飞机设计制造工具,由于飞机系统的复杂性,使用CATIA直接打开单个大组件(部件)三维数模往往需要较长时间,整机甚至根本无法打开,严重影响了工作效率的提高。针对该问题,CATIA提供了高速缓存功能,但首次打开数模仍然很慢,且不利于数模传递效率的提升。技术人员往往通过另存为cgr格式来对数模进行轻量化处理,但该方法会把组件转化为一个整体,结构树变为无法展开的单个节点,不利于组件中零件关系的查看。

本文将采用CATIA二次开发对组件数模中的零件进行批量轻量化处理,即把每一个零件另存替换为cgr格式,并重新添加零件的部分属性信息,该方法可有效降低组件的大小,且能保留组件结构树的层次关系。

1 CATIA二次开发

CATIA是法国达索公司推出的高档CAD/CAE/CAM一体化软件,广泛应用于航空、航天、汽车、以及电子工业等领域。CATIA为用户提供了多种二次开发的接口,其中包括自动化对象编程(V5 Automation)和开放的基于构件的应用编程接口(CAA,Component Application Architecture)[2]。

相比于CAA,Automation具有如下优点[3]:完全免费;开发难度较低,且可充分利用高级编程语言IDE的自动提示功能;可以利用高级编程语言制作出功能丰富的人机界面;开发出的软件基本不受CATIA版本的限制。

本文将采用Automation二次开发技术,在CATIA V5环境下以VB为编程工具对组件进行轻量化处理。

2 组件轻量化

2.1 界面设计

设计的软件界面如图1所示,其中“选择模式”可分为“单个Product”和“文件夹”,前者将对单个组件进行轻量化处理,而后者可对所指定的文件夹下的所有组件进行批处理。

2.2 轻量化流程

图1 组件轻量化界面

针对选择模式为“单个Product”的情况,轻量化流程主要可分6步,如图2所示。为方便表达,下文将待轻量化组件简称为组件,其下包含的装配件简称为装配件。

图2 轻量化流程

1)在初始化阶段,首先在CATIA V5中打开组件,并获取该组件文档对象oProductDoc和相应Product节点对象oProduct,若CATIA设置启用了高速缓存,则需用命令oProduct.ApplyWorkMode.DESIGN_MODE把组件数模的显式模式从可视化模式转换为设计模式;然后(在组件所在的文件夹下或指定的结果保存路径下)新建一个与组件同名的文件夹(变量名为path_NewFolder),并用SaveAs命令将oProductDoc另存到该文件夹下;最后在path_NewFolder下再新建一个文件夹(变量名为path_NewFolder_cgr,文件名为在组件名的基础上添加_cgr),用于存放组件内部轻量化后的零件和装配件。

2)在函数Get_Count_Product()中,通过递归遍历获取整个组件中Product节点(包括装配件节点和零件节点)的个数,并判断其中是否存在装配件节点,若存在,则依次执行第3)、4)、5)步,否则,只执行第4)步完成组件轻量化。

3)在函数Traversal_Product_THu()中,通过递归遍历将组件中所有装配件(对象名为Product1)改变名称(在原名称后添加_THu)后复制到文件夹path_NewFolder_cgr下,并用该新文件替换组件中对应的装配件,以实现装配件链接对象的转变。关键实现代码如下:

其中,origin_path_Product1为装配件原来的路径,new_path_Product1为装配件改变名称后的路径。

需要注意,组件中的装配件节点可能不存在对应的装配件文档,即在内存中不存在对应的.CATProduct文件,所以上述转变过程需要跳过此种类型的节点。

4)在函数Traversal_Part()中,通过递归遍历将组件中的所有零件(对象名为Product1)导出为cgr格式,并另存到文件夹path_NewFolder_cgr下,然后用生成的cgr文件替换组件中相应的零件,以实现零件链接对象的转变。关键实现代码如下:

其中,term_Product1为组件中待轻量化零件的术语,name_Part为零件的文件名(包含后缀.CATPart),path_cgr为轻量化后零件(cgr文件)的保存路径。

5)在函数Traversal_Product()中,通过递归遍历将组件中所有装配件(对象名为Product1)改变名称(去除_Thu,恢复为原名称)后复制到文件夹path_NewFolder_cgr下,并用该新文件替换组件中对应的装配件,以实现装配件链接对象的转变。关键实现代码如下:

其中,new_path_Product1为文件名添加了_THu的装配件的路径,new_path_Product2为文件名去除了_THu的装配件的路径。

表1 组件轻量化测试结果

在第5)步完成之后,把文件夹path_NewFolder_cgr下所有包含_THu的装配件删除,即完成了组件的轻量化处理。

需要注意,若组件中有零件丢失,在第5)步转变过程中将会弹出对话框提示已有相同名称的文件存在于内存中,所以需要在第4)步预先判断组件中是否存在零件丢失,若存在,则省略第5)步。另外,第5)步不可以和第4)步交换顺序,因为组件中零件若与其他零件定义了上下文链接关系,则在第3)步之后直接运行第5)步会弹出对话框提示已有相同名称的文件存在于内存中。

针对选择模式为“文件夹”的情况,首先提取出指定文件夹下的所有组件名称,再依次按照上述轻量化流程进行处理,不过每个组件轻量化之前都需要判断该组件是否存在于已轻量化组件之内,即判断该组件是否存在于文件夹path_NewFolder及其子文件夹下,若存在,则跳过该组件。

2.3 应用实例

选择某飞机前机身的6个组件进行测试,结果如表1所示,可见,组件轻量化后的大小均在原大小的10%以内。

通过测试,验证了所开发软件的正确性与高效性。不过使用该软件进行轻量化处理需要满足一个条件,即CATIA在设计模式下能够打开待轻量化组件,所以,针对超大型组件,可分成多个中小型组件分别进行轻量化,然后进行组装。

3 结语

本文采用Automation二次开发技术,在CATIA V5环境下以VB为编程工具开发出了一款组件轻量化软件工具,高效实现了大型组件中零件的批量轻量化处理,同时可对指定文件夹下的多个组件进行批处理,可有效提高技术人员的工作效率。

猜你喜欢

数模二次开发文件夹
基于FMEA分析的数模混合电路多道脉冲幅度控制算法
Fast Folders,让你的文件夹四通八达
整车数模开发流程解析
西门子Operate高级编程的旋转坐标系二次开发
浅谈Mastercam后处理器的二次开发
西门子Easy Screen对倒棱机床界面二次开发
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
激光跟踪仪在飞机翼下整流罩测量的应用
不容忽视的空文件夹