APP下载

二次开发技术在飞机机身结构零部件库中的应用

2019-11-05林国斌刘向尧

贵州农机化 2019年3期
关键词:零件图宏程序二次开发

林国斌,刘向尧

(贵州理工学院航空航天工程学院,贵州 贵阳 550003)

0 引言

飞机三维外形是飞机CAD中的一个重要组成部分。由于在概念设计阶段飞机外形经常需要修改,因此如何快速地生成飞机三维外形模型是一个需要解决的问题。参数化设计工作为快速地生成飞机三维外形模型提供了一种有效的途径[1]。参数化设计是指CAD通过尺寸驱动的方式,以独立的几何约束条件按既定的几何参数生成一系列具有相同或相似几何特征的二维或三维图形的一种设计方法。从编程角度来看,实现参数化设计的途径主要有三种:(1)基于图形库,如Open GL[2-3];(2)基于已有的CAD软件进行二次开发。基于图形库的方法实现飞机三维外形建模相对复杂些;而基于CAD软件的方法则可以省略图形软件的开发,同时可以利用已有CAD系统的强大功能和通用性[4-5]。(3)直接利用CAD的基础理论进行建模编程。

本文应用Visual Basic 6.0(以下简称VB6.0)编程语言和CATIA二次开发技术进行实现飞机机身外形的参数化设计。首先分析不同类型的零部件设计方法,梳理在CATIA中的建模流程,再介绍VB6.0环境下CATIA二次开发的步骤,然后讨论飞机参数化描述,最后以一个简单的飞机机头外形为例,说明基于CATIA二次开发实现飞机外形参数化设计的实现方法及可行性。

1 在VB6.0环境下的CATIA二次开发

1.1 CATIA 二次开发技术简介

CATIA作为CAD/CAM/CAM/CAPP一体化的软件,广泛地应用于航空航天、汽车、船舶等行业。尤其在航空领域,航空企业普遍使用CATIA进行零部件的建模工作。然而由于用户使用的侧重点不同,功能再强大的软件也不可能同时满足各类用户的需求。因此,对CATIA进行二次开发已经受到国内外许多企业及高校的重视。通过开发工具对CATIA的功能进行二次开发,可以开发出针对某一功能需求,甚至针对某一用户的特定模块,以方便用户使用,其是对CATIA功能的深入挖掘和拓展[4]。CATIA二次开发的过程和意义如图1所示。

图1 CATIA二次开发的过程和意义

CATIA二次开发主要分为以下两种方法:一种是采用C++作为开发工具、CAA二次开发技术,另一种是采用VB作为开发工具、Automation二次开发技术。

CAA是CATIA的一套C++函数库,该函数库在CATIA运行时加载,用户可通过RADE模块在VC++编程环境下编写程序,与CATIA进行通信[5],一般在CATIA的低版本运行。

Automation其核心技术是允许外部程序操作CATIA。此技术并不是直接进行获取处理CATIA数据,而是间接的通过调用CATIA类的对象和属性,利用对象的方法和属性来获取、设置及处理数据。不足之处在于这种方法功能有限制,但入门轻松[6],比如可以采用API函数进行调用。Application对象结构图如图2所示。

1.2 CATIA二次开发的步骤

本文在此仅以VB6.0二次开发CATIA为例,叙述CATIA二次开发的一般步骤。通常情况下有以下几个步骤:

(1)在CATIA中进行CAD建模,初始化COM库,获得模板文件。

(2)打开或新建一个全局对象Application。

(3)向Application中加入Document对象,注意类和对象的区别。以实现数据管理,如零件图设计使用PartDocument,工程图设计使用DrawingDocument。

图2 Application对象结构图

(4)声明使用的对象,在模板上改写对应参数,绘制二次开发后的几何形体。

(5)保存CAD文件,关闭Application,释放COM库,关闭VB程序。

2 机身零部件库系统的实现

2.1 程序界面

根据该程序要实现的功能及所需的输入参数,可编制程序的运行界面如图3所示。在这里坐标系采用y轴坐标为巡航方向,从机头指向机尾的方向为正方向;x轴沿展向,指向舱门左侧为正方向;z轴由x轴和y轴按右手法则确定。

2.2 程序结构

为了实现飞机机身零部件的参数化设计系统,将该系统划分为一个主模块和若干个子模块:

1)长桁类零件的设计

2)隔板类零件的设计

3)蒙皮类零件的设计

4)舱门类零件的设计

5)其他机身零件的设计

程序总体结构如图4所示。

图3 程序的运行界面

图4 程序的总体结构

2.3 程序功用

程序主界面程序是按照应用人员要求输入符合国家、企业标准的3D零件图的参数,经过程序内运算得到宏程序参数。

获取保存路径界面程序是为了方便应用人员,将生成的宏程序和零件图按照自定义的宏程序文件名称、宏程序文件格式、零件名称、零件格式到应用人员指定的路径进行保存,并按照经过程序主界面运算得到的宏程序参数,传入至宏文件中,生成符合应用人员的宏程序文件和零件图。

2.4 实现生成零部件图的一般步骤

从任务的角度来解释,不同的零部件有不同的模板,比如长桁零件中的截面长度、高度、厚度、倒圆和整个零件的长度等工作就对应着不同的零件模板。为了切合使用者的使用情况,为使用者提供准确的数值,令使用者达到满意,在简单的操作下将零件图绘制到符合要求。以长桁为例生成零件图的步骤如下图5所示。

图5 生成零件图的步骤

2.5 流程分析

CATIA提供了完整的参数化建模及数据管理手段,其参数化设计过程可为产品结构的全部数据提供参数输入和函数关系式,所有飞机结构理论站位可依靠总体坐标系、飞机总体设计人员发布理论外形面并通过参数转换生成,直接提供窗框、地板、门框、前起后端框、前起舱侧壁的骨架模型元素,并提取与理论外形相关的站位布局。机头结构布置设计首先要解决全局理论数据和结构站位的协调关系,确定全过程设计需求的特征面, 特征线、特征点。然后为模型建立一个总的布局树,结构站位递归关系一目了然。这样既为后续关联设计骨架模型定义打下基础,也可以有效防止数据的循环引用,使错误数据链的发生概率降到最低,同时也能快速响应上游总体专业参数化理论外形的设计变化,实现飞机结构方案设计阶段上下游专业设计输入与输出之间更改影响的自动传递、自动更新,保证设计数据的有效性、唯一性和一致性。

2.6 前置处理的实现

(1)读取分析宏程序内的参数

打开录制的宏程序文件,查找文件内有利用价值的参数值。机身信息如表1所示。

表1 机身信息

(2)读取分析宏程序编译规则

根据V5Automation.chm分析宏程序编译规则;

例如:圆弧的定义

Func CreateCircle( double iCenterX,

double iCenterY,

double iRadius,

double iStartParam,

double iEndParam) As Circle2D

进行创建并返回一个2D圆弧

(3)读取分析剩余未确定数值函数表达式

分析出已有确切数值后,对未确切数值进行分析,建立对应的函数表达式。

(4)将确切数值及表达式转换成VB语言

为使程序能够正常运行,进行将所有参数值利用表达式转换成VB程序语言,需要进行格式的统一,便于CATIA软件的识别。对于复杂函数,利用变量进行运算。在部分处理中,VB中没有直接的数学函数表达式,采用自编函数的方式进行解决,比如arcsin函数。同样地,创建的平面和拉伸的凸台与凹槽的距离,是不能确定的值,也不能利用函数进行表达,但可以利用判断更改其值。所以针对该种参数值编写函数进行表达。

2.7 脚本运行方式

在使用VB应用程序时,可以使用以下语法:

(1)如果CATIA已经在运行,那么宏应该使用GetObject方法连接到CATIA。

(2)如果CATIA还没有运行,宏应该使用CreateObject方法启动CATIA。

一般把两种方法合在一起,这样访问CATIA的时候就不会出问题。

2.8 将参数传送到宏程序中

(1)得到一个未使用的文件号

Dim FileNumber1, FileNumber2, Stri As String

FileNumber1 = FreeFile '

(2)打开要读取的文件

Open App.Path & "/macro737-0005-parts1_I.CATScript" For Input As #FileNumber1 ' FileNumber2 = FreeFile

(3)打开要写入的文件

Open Dir1.Path & "/" & Text2.Text & Combo1.Text For Output As #FileNumber2 '

(4)按行读取文件,直到最后一行

Line Input #FileNumber1, Stri '

While Not EOF(1) '

(5)'写入替换后的内容

Print #FileNumber2, Stri

(6)关闭文件

2.9 绘制机头零部件

当程序将参数的运算结果传入宏程序文件后,按照模板进行更改参数,利用语句进行在CATIA环境中自动打开指定路径的宏程序文件。绘制的机头零部件图如图6所示。

图6 机头零部件图

3 结语

CATIA的二次开发在开发完成后,需要应用人员利用图纸在程序中查找相对应类型的零部件,将零件图图纸的参数,输入至程序中,按照规定的步骤即可得到符合要求的三维机身零件图。同时完善二次开发相关功能使用户体验佳。

本文以CATIA二次开发的问题为导向,提高效率为目标,设计了程序,并采用CATIA和VB进行实现。希望本探索能有效地帮助设计人员高效率地开展零部件设计的工作。

猜你喜欢

零件图宏程序二次开发
椭球槽宏程序编制及其Vericut仿真
浅谈Mastercam后处理器的二次开发
数控车编程教学中宏程序嵌套的应用
通用类宏程序在数控铣床加工中的实践运用
“轴承的配合制选用”的教学心得
浅谈机修钳工实训中的零件测绘
《机械制图》中装配图的识读
例谈课本习题的“二次开发”
ANSYS Workbench二次开发在汽车稳定杆CAE分析中的应用
关于平面设计软件二次开发的分析