APP下载

基于VB6.0的CATIA二次开发在图纸设计中的应用

2019-03-22吕奉阳杨金秀罗培锋

汽车实用技术 2019年5期
关键词:二次开发视图图纸

吕奉阳,杨金秀,罗培锋



基于VB6.0的CATIA二次开发在图纸设计中的应用

吕奉阳,杨金秀,罗培锋

(广州汽车集团股份有限公司汽车工程研究院,广东 广州 511434)

针对图纸设计中经常出现的链接替换失效问题,给出了手动替换法和程序替换法两种解决方案。在介绍VB编程语言及CATIA二次开发理论的基础上,给出了程序替换法的基本流程,利用VB6.0开发了用户界面及CATIA图纸链接替换程序。通过实例验证,证明了CATIA图纸链接替换程序相对传统手工替换方法的优越性。结果表明,CATIA二次开发可以提高工作效率,提升设计质量。

VB;CATIA;二次开发;图纸设计

前言

CATIA是法国达索公司开发的CAD/CAE/CAM一体化软件,在世界CAD/CAE/CAM领域中处于领先地位[1]。CATIA工程图纸一般与三维数据保持关联,数据修改时,图纸可以方便快捷的进行更新。如果图纸和关联数据在传递、编辑过程中处理不当,经常会导致图纸链接失效,数据的更改内容无法更新到图纸。

车身开发过程中,经常遇到由于设计变更或配置增加导致零件号更改的情况,零件号更改后导致图纸链接数据失效,图纸无法更新,重新出图需要将图纸信息重新标注一遍,对于复杂零件,重新出图工作量较大。利用VB6.0进行CATIA二次开发,通过CATIA图纸链接替换程序,将原图纸链接数据替换为新数据,然后在原图纸上更新零件变化点的标注信息即可,可以减少同类零件的图纸重复设计工作量,提高出图效率。

1 理论介绍

1.1 VB6.0编程语言

VB6.0是微软公司开发的面向对象的可视化编程工具。VB以早期的Basic语言为基础,以可视化为主要特点,采用面向对象、事件驱动的编程机制[2]。VB把Windows编程的复杂性进行了封装,使用户可以简单快速地开发出Windows环境下的应用程序。

CATIA加入了ActiveX自动化服务功能,VB是最为常用的支持ActiveX技术的开发工具之一。采用VB作为开发工具进行CATIA二次开发,可使CATIA与Windows其它程序的数据共享变得更加容易[3]。

1.2 CATIA V5 Automation

CATIA提供了两种编程接口,一种是自动化对象编程(V5 Automation),一种是开放的组件应用架构(CAA)[4]。CAA功能全面,稳定性好,适合深层次的CATIA二次开发,但是对开发人员的要求较高,需要使用专业的编程软件及工具。V5 Automation是基于COM技术的编程接口,描述了CATIA二次开发编程对象架构,包含不同接口中每个对象的方法属性等详细信息,是进行CATIA二次开发的重要参考资料。

1.3 CATIA二次开发流程

所谓CATIA二次开发,就是利用CATIA提供的API接口进行程序设计开发,拓展CATIA软件功能,实现软件功能个性化和操作自动化。二次开发可以使软件更好地为用户服务,对提高工作效率和产品质量,节约研发成本和缩短开发周期有着重要的作用[5]。

进行CATIA二次开发,首先要了解CATIA V5 Automa -tion API的基本架构,掌握常用对象的属性和方法。CATIA V5 Automation对象架构如图1所示。

图1 CATIA V5 Automation对象架构

CATIA二次开发的过程可以理解为:用户为实现某种功能,根据需要合理地调用V5 Automation提供的类、库的属性和方法以及二次开发函数。CATIA中的每个功能(包括零件设计、曲面设计、装配设计、工程制图等)以及所有的实体特征(包括草图特征、修饰特征、曲面特征、变换特征、组合特征等)都有相应的类、库支撑,因此CATIA二次开发的主要工作就是合理地调用V5 Automation API对象进行编程。对CATIA进行二次开发的基本流程如图2所示。

图2 CATIA二次开发基本流程

2 CATIA图纸链接替换方法

2.1 图纸链接失效问题

以零件A、B为例进行说明。零件A因设计变更,零件号重新命名为B,图纸A跟随更改为图纸B。图纸B的原始链接数据为零件A,需要将链接数据替换为零件B。因零件A数据改名、删除或存放位置变更,打开图纸B提示找不到关联数据A,图纸链接失效,如图3所示。

图3 图纸链接失效

2.2 CATIA文件的UUID

UUID是通用唯一识别码(Universally Unique Identifier)的英文缩写。每个CATIA文件在被保存的时候,会产生唯一的UUID来标识这个文件的唯一性。CATIA图纸的链接数据能否被替换,取决于替换数据和被替换数据的UUID是否一致,而与数据的内容毫不相关。

通过另存为或复制文件重命名的方式更改被替换数据,替换数据和被替换数据的UUID一致,图纸链接数据替换比较容易。

通过新建自被替换数据或从不同模板创建替换数据,将导致替换数据和被替换数据的UUID不一致,即使数据内容完全相同,图纸链接数据替换也会报错。有两种方法可以解决此问题,分别是手动替换法和程序替换法,两种方法各有利弊,可以根据个人实际情况选择使用。

2.3 手动替换法

手动替换法是在不借助编程手段的前提下,利用CATIA软件自带的工具及命令完成图纸链接数据替换。手动替换法简单易学,容易操作,但是过程相对复杂,效率较低。手动替换步骤如下。

(1)点击“编辑—链接”,弹出对话框如图4所示,点击“tab_doc_links”选项卡,点击“button_replace”,弹出文件选择对话框,选择替换数据,确定完成。

图4 图纸链接替换对话框

如果替换数据与被替换数据UUID相同,图纸链接可直接成功替换,如图5所示。

图5 图纸链接替换成功

如果替换数据与被替换数据UUID不一致,图纸链接替换失败,如图6所示。

图6 图纸链接替换失败

(2)重新打开图纸,记录图纸链接原始数据的存放路径及文件名,将替换数据重新命名,名称与被替换数据相同,并存放到相同路径及文件夹下。

图7 原始数据的存放路径及文件名

(3)点击桌面命令,点击链接数据,右键加载,如图8所示,加载后关闭退出桌面。

图8 加载数据

(4)选择断开链接的视图,点击鼠标右键,选择“选定的对象—修改链接”,如图9所示。点击后会弹出警告对话框,点击确定,弹出链接修改对话框,移除已断开的链接,如图10所示,确定完成。确定后,视图显示待更新,如图5所示,表明链接替换成功。

图9 修改链接

此时虽然图纸链接替换成功,但存在的问题是,图纸名与数据名不对应(零件B的图纸对应链接数据的文件名是零件A),且链接数据的存放位置是原始文件存放路径,不是指定路径。

图10 移除链接

(5)将替换成功的数据改回原来的文件名,并存放到任意指定路径下,重复步骤(1),完成图纸链接替换。

2.4 程序替换法

程序替换法是利用编程语言调用CATIA的API接口,通过程序控制完成图纸链接替换。程序替换法的特点是操作简单,替换效率高,但是需要同时熟悉编程语言及CATIA二次开发的相关知识,对设计人员的要求较高。程序替换法的基本流程如图11所示。

图11 程序替换法基本流程

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

3.1 在VB中访问CATIA

启动VB软件,新建一个“标准EXE的工程”。在VB中访问CATIA时,脚本的运行不是由CATIA调用,CATIA作为一个OLE自动化服务器,VB程序是通过COM接口来访问CATIA内部的对象。因此,要对CATIA进行访问和操作,首先要连接到它的COM接口,可以通过以下代码实现。

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

如果CATIA已经运行,只需要用GetObject方法连接到CATIA即可;如果CATIA没有运行,就要用CreateObject方法启动。一般将两种方法合并使用,即上述代码就可以实现对CATIA的访问。

3.2 用户界面设计

用户界面是衡量一个程序或软件实用性的重要指标。VB6.0是一种面向对象的可视化编程语言,界面设计简单易学。CATIA图纸链接替换程序的界面设计如图12所示。

图12 用户界面

程序标题名称为:CATIA图纸链接替换。程序实现的功能是替换链接数据和更新视图,界面设计包含数据列表及视图列表,用户可以直接用鼠标进行选择。为了区分数据列表和视图列表,列表上方设计了两个信息标签:请选择图纸链接数据和请选择更新的视图。图纸一般包含多个视图,有时不需要更新全部视图,用户界面提供了更新全部视图和更新单个视图两个命令按钮,方便用户根据需要选择执行。

3.3 主要程序代码

获取图纸链接替换数据,代码如下,i表示当前打开的CATIA文件序号,通过鼠标选择确定。

Dim D

Set D = CATIA.Documents.Item(i).Product

获取当前活动图纸的视图,代码如下,j表示当前活动图纸的视图序号,通过鼠标选择确定。

Dim v

Set v=CATIA.ActiveDocument.Sheets.ActiveSheet. Views. Item(j)

解除锁定视图,代码如下:

v.LockStatus = 0

移除视图链接数据,代码如下:

v.GenerativeLinks.RemoveAllLinks

替换视图链接数据,代码如下:

v.GenerativeBehavior.Document = D

更新视图,代码如下:

v.GenerativeBehavior.Update

4 实例验证

以零件A、B为例进行说明。

(1)打开链接失效图纸:PartB.CATDrawing,弹出信息如图3所示,点击关闭忽略此信息。

(2)打开链接替换数据:PartB.CATPart。图纸链接原始数据(PartA.CATPart)不需打开。

(3)将CATIA当前工作视图切换到图纸。

(4)双击运行CATIA图纸链接替换程序,弹出程序界面如图13所示。

图13 CATIA图纸链接替换程序界面

从程序界面可以看到,当前打开的CATIA数据已经添加到数据列表中,当前活动图纸的视图已经添加到视图列表中。鼠标选择数据,点击更新全部视图,即可完成图纸链接替换及视图更新。对于复杂图纸,视图及关联数据较多,直接更新全部视图可能导致误操作,即不需更新的视图也被强制更新,这时可以在视图列表选择需要更新的单个视图,点击更新单个视图。

5 结论

通过CATIA图纸链接替换程序的实例验证,可以看出程序替换法相对于传统的手动替换方法,简化了操作步骤,使用更加方便,证明了CATIA二次开发的实用性和高效性。结果表明,CATIA二次开发可以进一步提高工作效率,减少重复性设计,缩短开发周期,降低设计成本,让设计师将更多的精力放在优化结构设计,提升设计质量上。下一步研究方向是扩展CATIA二次开发的应用范围及实现方法。

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

[2] 林卓然.VB语言程序设计(第3版)[M].北京:电子工业出版社, 2012.

[3] 刘薇娜,贾帅帅.基于CATIA二次开发的非标准件参数化设计[J]. 自动化技术与应用,2017,36(7):43-46.

[4] 彭欢.基于V5 Automation的CATIA二次开发技术研究[J].电子机械工程, 2012, 28(2):61-64.

[5] 周桂生,陆文龙. CATIA二次开发技术研究与应用[J].机械设计与制造,2010(1):81-83.

Application of CATIA Secondary Development for Drawing Design Based on VB6.0

Lv Fengyang, Yang Jinxiu, Luo Peifeng

(GAC Automotive Research & Development Center, Guangdong Guangzhou 511434 )

In view of the problem of link replacement failure which often occurs in drawing design, two solutions are given in this paper: manual replacement method and program replacement method. On the basis of introducing VB programming language and CATIA secondary development theory, the basic flow of program replacement method is given. User interface and CATIA drawing link replacement program are developed with VB6.0. The application example proves that the CATIA drawing link replacement program is superior to the traditional manual replacement method. The results show that the secondary development of CATIA can improve work efficiency and design quality.

VB; CATIA; Secondary development; Drawing design

A

1671-7988(2019)05-88-05

U462

B

1671-7988(2019)05-88-05

U462

吕奉阳,广汽研究院车身工程部,工学硕士,前机舱责任工程师,主要研究方向为白车身设计。

10.16638/j.cnki.1671-7988.2019.05.026

猜你喜欢

二次开发视图图纸
AutoCAD 与PDMS 二次开发在三维复杂形体设计建模上的应用
基于区块链的建筑信息模型图纸多人协同创作系统
例谈对高中数学教材中习题的二次开发
浅谈汽车线束产品图纸管理
看图纸
浅谈CAD软件二次开发的方法及工具
例谈课本习题的“二次开发”
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
《投影与视图》单元测试题