基于CATIA-VBA的产品名称自动替换开发研究_第1页
基于CATIA-VBA的产品名称自动替换开发研究_第2页
基于CATIA-VBA的产品名称自动替换开发研究_第3页
基于CATIA-VBA的产品名称自动替换开发研究_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选文档基于CATIA VBA的产品名称自动替换开发研究周明勇(天津汽车模具股份有限公司)可编辑摘要:在飞机装配工装领域,由于产品开发周期不断缩短,越来越多的航空装配工装开发采用并行模式。在CATIA三维并行设计中,由于信息不完备,产品名称在设计过程或者完成后需要重复更改,过程效率低、繁琐、易错、工作量 大。本文分析了 CATIA装配文件中零件和部件信息的数据结构,通过CATIA VBA开发自动产品名称更改程序,设计了人性化交互界面,对零件和部件的相关信息进行提取,完成零件产品名称的替换,与后台文件的关联并自动保存,提高 了设计效率,减少设计异常,并在实际的航空装配工装设计中取得良好的应用效果

2、。关键词:航空装配工装;CATIA ; VBA ;名称替换1引言改零件在结构树中的名称信息, 大大提高设计的 准确率和工作效率。随着航空工业的发展,飞机产品开发周期不 断缩短,越来越多的航空装配工装开发采用并行 模式,在机身结构研发同时开展工装的概念设计 和详细设计。由于飞机处于前期研发过程相关信 息会发生变化,设计过程中航空装配工装的零件 和部件名称相应发生变化。传统设计方法通常不 但需要设计人员在前台手动、逐个更正零件和部 件的名称,还要确保零件和部件与后台文件的关 联性,以保证项目相关信息的一致性。但航空装配工装结构复杂,一个较小部件装配工装也往往 由上千个零件和部件组成 (如图1所示)

3、,手动、 逐个更改零件和部件名称工作量非常大,将会占用设计人员大量的时间, 而且容易出错,检查起 来也极为不便,整体工作效率极低。2 CATIA文档对象数据结构在CATIA Automation 中,所有的数据都被封装成了对象的形式, 形成建模时常见的逐层 包含的树状机构。在 CATIA的树状对象模型中 最高层为Application ,它是访问CATIA的入口,其次是 Documents、Windows、Cameras 、Viewers等对象集合。图1庞巴迪某机型舱门装配工装CATIA是法国达索系统公司的CAD、 CAE/CAM 一体化软件,是目前在航空领域应用 最广泛的软件之一,在行业中处

4、于领先地位。 CATIA提供了多种二次开发的接口,其中包括 自动化对象编程(V5 Automation )和开放的 基于构建的应用程序编程接口(CAA )。本文主要是在CATIA V5版本平台上,可以利用CATIA 的自动化对象编程 (V5 Automation )在VB的 开发平台上编制出自动更改名称的应用程序,同时将结构树中的零件和部件名称与后台的文件 关联起来,并将 CATIA文件自动保存,快速更PartProductDraw ingApplicatio n应用程序对象Camera对象Win dows窗口集合对象Camera2DCamera3DCameras视图集合对象Win dows对

5、象Viewers图2 CATIA对象数据结构在这些对象集合的下一层是对应的抽象对象(Abstract Object),用以访问各对象,如零件文档、产品文档、工程图文档等对象。 每一个 精选文档可编辑对象都有其自己的方法和属性,如添加、删除、 获取方法和数量属性等。各个对象的树形结构层 次如图2所示。CATIA应用程序中更改零件或部件名称主 要是更改如图3所示的CATIA应用程序中结构 树对象中的属性页上零件编号和实例名称。但仅更改零件编号和实例名称, 会导致三维图形窗口 中显示的名称和后台保存的文件名称不一致,会造成后台存储数据大、紊乱,因此必须同时通过 CATIA菜单中的保存管理来更改文件的

6、参考链 接,步骤繁多,操作麻烦,工作量非常大。而且 所有零件和部件的名称都需要逐个手动更改, 关 联的后台存储文档也需逐个手动判断、 删除,容 易误删,导致重复工作。3应用程序开发流程首先,为便于产品名称更改,使更改过程更 直观、人性化,根据实际操作过程需要,在 Microsoft Visual Basic 6.0开发平台上设计了程序接口界面(如图 4),包含了名称更改后文 件保存路径、搜索字符串(被替换字符串)、替换字符串、替换范围等相关属性, 完全满足更名 过程需求,使整个更改过程更加直观, 操作过程 更加轻松。图3 CATIA应用程序名称更改实例:广蛊叔怕旷: i: 1:皙摇 |取肯的关

7、联属性并重新设置;四是在设定更名范围内 循环并保存,整体设计流程如图5所示。(1) 获取 CATIA Application应用对象要对CATIA应用程序操作,必须先获取图5整体设计流程Application应用程序接口对象,也就是要连接到它的应用程序接口,程序即可访问到CATIA。如果CATIA应用程序已经启动, 用GetObject 连接到CATIA ;如果CATIA应用程序没有运行, 则先用Create Object 启动CATIA再进行访 问。如果以上两种获得应用程序对象的方法均不 能有效获得应用程序接口,则返回到程序开始。如果能够获得应用程序接口,可利用 DisplayFileAle

8、rts 属性设置CATIA操作过程中 不显示报警信息,避免程序大批量自动循环更名 操作的停顿。在程序结尾则恢复显示报警信息, 确保不更改CATIA应用程序初始设置。图4产品名称替换程序接口更改零件或部件名称需要完成以下两个工 作:一是确定更改范围; 二是提取零件和部件编 号属性与名称属性并更改;三是提取零件和部件Dim Access As LongDim CATIA As ObjectSet CATIA = GetObject(,CATIA.Applicatio n)If Err.Number 0 The n精选文档可编辑Set CATIA = CreateObject(CATIA.Appli

9、cation)CATIA.Visible = TrueEnd IfCATIA.DisplayFileAlerts = False(2 )激活 ActiveDocument ,定义变量, 获得当前文档对象, 并且将获取的文档对象存入 变量中。Set oDocuments = CATIA.DocumentsSet oDocument = CATIA.ActiveDocumentSet oproduct1 = oDocument.ProductSet RootProduct = oDocument.Product Set oproducts1 = oproduct1.Products( 3 )调用并

10、显示名称更改界面使用应用程序 SetWindowPos 方法在当前 窗口中显示界面, Move 方法则用于按照需要 将界面显示在 CATIA 应用窗口的右下角。 SetWindowPos Me.hwnd, HWND_TOPM OST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_SHOWWINDOWMe.Move Screen.Width - Me.Width, Screen.Height - Me.Height其中 SetWindowPos 函数是动态链接库函 数,使用它们必须在程序开始的部分进行如下声 明,否则程序编译无法通过。Private Declare Functio

11、n SetWindowPos Lib user32 (ByVal hwnd As Long, ByVal hWndInsertAfter _As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long(4 )在整个 CATIA 文档范围内,根据文档 对象类别完成名称替换,并保存文件If (InStr(oDocument.Name, CATProduct) 0) ThenCall RenameMultiLevelProduct(oDocume

12、nts, oproduct1, FindStr, ReplaceStr, MyDic, SaveAs_Symbol) oDocument.SaveAs (MyPath.T ext& oproduct1.PartNumber & .CATProduct)ElseIf (InStr(oDocument.Name, CATPart) 0) Thenoproduct1.PartNumber =Replace(oproduct1.PartNumberFindStr, ReplaceStr) oDocument.SaveAs (MyPath.T ext& oproduct1.PartNumber & .C

13、ATPart)( 5 )在仅完成选择树节点范围内,根据文 档对象类别完成名称替换,并保存文件Dim MySelectionAs SelectionSet MySelection =CATIA.ActiveDocument.SelectionFor iCount = 1 To MySelection.Count Step1 IfInStr(Right(MySelection.Item(iCount).ValueParent.Parent.ReferenceProduct.Paren t.Name, 10), CATProduct) 0 ThenCallRenameMultiLevelProduc

14、t(oDocuments,oproduct1, FindStr, ReplaceStr, MyDic, SaveAs_Symbol) ElseIfInStr(Right(MySelection.Item(iCount). Value.Parent.Parent.ReferenceProduct.Pare nt.Name, 6), CATPart) 0 Thenproduct3.Name =Replace(product3.Name,FindStr, ReplaceStr)product3.PartNumber =Replace(product3.PartNumber,FindStr, Repl

15、aceStr)Set oPart =product3.ReferenceProduct.ParentoPart.SaveAs (MyPath.T ext& product3.PartNumber & .CATPart)End IfNext iCount4 结论CATIA 产品名称自动替换应用程序是在 CATIA 应用平台和 CATIA VBA 开发平台上, 对 三维设计模型中结构树上零件和部件的名称特 征和关联特征参数检索、 提取和设定, 最终完成 名称替换和文件的自动保存,是 CATIA 自动化 完成批量工作的初步开发研究。CATIA 产品名称自动替换应用程序可以根精选文档据设定可以完成结构树上全部或者某一层级零 件和部件更名完全自动化, 同时更改界面更加直 观、人性化, 避免了这一过程中的错误, 减少了 设计人员的工作量, 提高了工作效率和质量, 解 决了并行设计中零件和部件名称更改的重复更 改问题。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论