APP下载

基于CATIA/VBA的飞机结构质量分块的二次开发

2020-07-13詹雷

卷宗 2020年12期

摘 要:在飞机结构设计过程中,需要对飞机结构惯性载荷进行处理,将飞机结构零件按一定尺寸进行质量分块,分别给出各质量分块的重量及重心坐标等参数,此项操作常在飞机设计软件CATIA中进行,由于飞机全机结构尺寸相对于小块质量体尺寸过大,这就导致小块质量体数量过大,手工进行处理较为繁杂,基于VBA的CATIA二次开发技术能够实现小块质量体自动划分,提高设计效率。

关键词:CATIA;VBA;飞机结构;质量分块

1 质量分块方案

在飞机设计过程中,一般在飞机结构零件设计完成后,通过CATIA中惯量测量工具,可提取出飞机零、组件的重量、重心坐标,基于上述手段,可以将零件质量分块后的各质量分块重量、重心坐标导出,进而准确计算每一质量块的惯性载荷。

实际操作中,通过以下步骤将零件进行质量分块:

1)在空间定位一点1,点1一般可选为零件外廓顶点。

2)将XY、YZ、ZX平面用平面/平行通过点命令偏移,形成平面1、平面2、平面3。

3)以平面1、平面2、平面3为基准,用平面/偏移平面命令进行平面前后偏移(假设偏移量25mm),偏移后的平面为平面4、平面5、平面6、平面7、平面8、平面9。

4)以平面4-9为基准,用分割命令切割零件(注意平面方向),形成一质量块(质量块尺寸50mm×50mm×50mm)。

5)判断切割后零件几何体体积是否不为零,若为零则跳至8)。

6)复制零件几何体。

7)选择性粘贴/按结果将复制的零件几何体粘贴在零件中。

8)将点1移动一个质量块棱长50mm,由1)重新开始执行。

9)重复5)-7)操作,直至零件完成质量分块。

10)用“测量惯量/导出”命令将质量分块的重量、重心坐标导出成TXT文档。

11)新建Excel文档,用“数据/自文本”命令,将TXT文档导入Excel,即为所需质量分块重量、重心坐标数据。

以立方体为例,上述过程如下图1所示:

在实际操作中,因飞机结构各零件选用材料不一致,为了简化操作流程,将材料相同的零件复制“零部件几何体”至同一Part文档下,然后再将“几何体”装配至“零件几何体”下,形成一个整体零件,再按上述流程进行操作,可以不必每个零件都进行一次质量分块,减少工作量;假设质量分块尺寸为w,零件外廓尺寸Xmm×Ymm×Zmm,則理论上需要分割数量为X/w×Y/w×Z/w后取整数。

2 CATIA二次开发

2.1 CATIA二次开发简介

所谓的CATIA二次开发,就是利用CATIA系统提供的API接口进行程序设计开发,拓展原生CAD软件功能,实现CAD软件功能个性化和操作自动化,CATIA提供了两种编程API,一种是Automation API,采用组件对象欧美系技术把相关模块接口封装在独立的组件内,另一种是C++/Java API,在C++的快速集成环境(RADE)中进行程序设计。一般把基于Automation API的CATIA二次开发系统称为CATIA VBA二次开发,将基于C++/Java API的CATIA二次开发系统成为CATIA CAA二次开发,由于VBA能够实现窗体化操作,便于执行质量分块操作,所以本文基于VBA进行CATIA二次开发。

2.2 VBA界面设计

根据上文中描述的零件质量分块过程,设计VBA程序界面,其中“选择文档”用于对需要进行质量划分的零件Part文档进行选定,“测量定位”中“X、Y、Z”最高、最低点坐标用于描述零件的外廓在坐标系中的值,“质量分块尺寸”中“棱长”用来表示分块后各质量块的最大外廓尺寸。

2.3 程序脚本编写

编程访问CATIA对象有两种脚本,一种是进程内的脚本,另一种是进程外的脚本。

进程内的脚本是由CATIA的脚本引擎来解析执行宏脚本命令的。 在CATIA软件打开后,在CATIA窗口中点击“工具->宏->启动录制”,然后打开需要进行质量分块的零件Part文档,执行上述操作步骤1)-7),操作完成后点击停止录制按钮,点击“工具->宏->宏…->编辑”命令可以察看生成的进程内的脚本。

进程外访问即指脚本运行不由CATIA来调用,CATIA作为一个OLE自动化服务器,外部程序通过COM接口来访问CATIA内部对象,质量分块程序的进程外脚本主要实现进程内脚本的循环操作。可以在VBA程序中嵌入访问CATIA的程序,进程外的脚本不同于进程内脚本,外部程序首先要连接到CATIA上,如果CATIA没有启动还必须先启动它,VBA中通过以下脚本实现CATIA的连接以及启动:

Dim CATIA As Object

On Error Resume Next

Set CATIA = GetObject(, “CATIA.Application”)

If Err.Number <> 0 Then

Set CATIA = CreateObject(“CATIA.Application”)

CATIA.Visible = True

End If

On Error GoTo 0

进程内脚本实现零件的质量分块操作,进程外脚本实现质量分块定位点的循环操作。

3 CATIA质量分块的实现

1)本文中以飞机结构中常见的机加框零件为例进行演示,启动VBA程序,输入相对于原点坐标的零件“X、Y、Z”最大最小值,棱长尺寸定为50mm。

2)点击开始,程序自动运行,完成框零件质量分块,如下图2所示:

(3)用CATIA中“测量惯量”工具,导出质量分块重量、重心TXT文档数据至本地,新建EXCLE文档,数据->自文本,导入TXT文档数据,从导入数据可知VBA程序共将框分割成405块,用时185s。

4 结束语

本文介绍了CATIA VBA二次开发概念,并介绍了结构质量分块的必要性及方法,在此方法的基础上,结合CATIA VBA二次开发工具,实现了结构零件质量分块的自动化。从质量分块结果可以看出,采用CATIA VBA二次开发可以大大降低工作的繁杂性,提高工作效率,缩短飞机设计周期。在CATIA VBA二次开发基础上,可以使飞机设计流程中一些重复且繁杂的工作自动化,解放设计人员,提高设计质量。

参考文献

[1]胡挺,吴立军.CATIA二次开发技术基础[M].北京:电子工业出版社,2006.

作者简介

詹雷(1987-),男,汉族,陕西咸阳人,工程师,从事飞机结构设计方面的研究。