您的位置:网站首页 > CAD新闻

关于在CATIA V5中建立零部件库的方法

时间:2011-02-26 10:04:31 来源:

  CATIA作为当前一种主流的CAD三维设计软件,广泛应用于航空、汽车、船舶及其他制造业。它之所以如此多地受到越来越多企业的青睐,除了其所具备的强大的三维建模功能外,很大程度上由于其提供给用户的友好的二次开发接口,用户可以根据自己的需求开发出自身需要的界面,以及建立随时可以调用的模型库,方便设计者进行设计。在当前竞争日益加剧的形势下,谁先推出新的符合大众需求的产品,谁就占据了商机。对于设计者来说,从产品概念设计到产品的批量生产的过程中,经历了不断的设计、测试、更改;再设计、再测试、再更改的过程。而这种更改经常只是一些小的方面的更正,例如尺寸上的稍加改动,而总的产品外形是不变的,如果重复性地做这种更改,会带来设计时间上的浪费。为了减少这种时间上的浪费,提高设计效率,同时节约投入上的成本,对于一些标准件、常用件以及企业的一些同类型、尺寸不同的产品,有必要将其参数化,建立相应的零部件库,待到需要时,只需从库中调出所需的参数化零件,或者在定制的界面中输入用户所需的参数,就可以快速在CATIA环境中生成模型,这样很大程度上缩短了建模时间,提高了建模效率,而且方便了模型的更改。

  基于当前为了提高建模效率,降低重复性建模次数的要求,本文讨论了关于CATIA中建立参数化零件库的方法,以及它们相应的建立步骤。

  一、CATIA中建立零件库的方法简介

  作为一款成熟的CAD软件,CATIA拥有强大的建模功能,友好的界面,同时它也嵌入了装配建模时所需的一些标准件,如螺栓、螺母和垫圈等的参数化标准件库。但这些都不能满足不同企业生产过程中的要求,因为这些自带的标准件是CATIA软件开发公司根据通用零件标准建立的,不具备特殊性。一般的企业都有自己的一些常用件,这些常用件又是设计过程中经常用到的,并且很多情况下这些零件是同类不同尺寸,若反复建立这些模型,会导致时间上的浪费,因此CATIA提供了参数化零件库的二次开发功能。

  目前,在CATIA中建立参数化零件库的方法主要有以下两种:①运用CATIA软件本身自带的智能工程模块建立零部件库;②运用编程的方式建立参数化零件库。第二种方法需要用户具备一定的计算机编程方面的知识,使用的方法可分为进程内和进程外的编程。进程内的开发主要是使用宏命令录制或编写,使用到的语言有VBScript、CATScript和VBA;进程外的主要是运用VB和VC作为开发软件,通过驾驭CATIA专门的外部接口进行通讯建库。

  1. 运用知识工程模块建库

  利用CATIA的知识工程模块,可以快速简便地设计出用户所需的参数化零部件库。建库的过程中主要用到的是CATIA知识模块中的FORMULAR功能、DESIGN TABLE功能,以及CATALOG功能。这种方法建库的思想是提取模型的特征参数,并将它们制成数据表格,以EXCEL或TXT的形式保存下来,用表格内的参数驱动CATIA自动建模。用这种方法建库可以很轻松地删除或是添加用户所需要的模型参数,若想生成新的同类模型,只需向表格中加入新的数据即可。并且用这种方法建库的过程中还可以运用该模块中的规则(rule)和检查(check)等功能将一些设计者总结出来的经验,或是设计要求添加进来,以提高设计效率,丰富我们所建的库。

  使用该方法需要注意的是:零件库所提取的特征参数是一些重要的尺寸,这些尺寸能够反应模型的构造,尺寸的提取是通过草图中的约束实现的。最终,通过表格驱动这些约束尺寸实现建模。

  在运用这种方法建库之前,先要对其环境进行相关的设置,具体有两种设置,操作如下。

  第一种设置为:在option对话框中依次打开Tools→Options→General→Parametersand Measure→Knowledge→Parameter Tree View→With Value,直至With Formula。

  第二种设置为:Tools→Options→Infrastructure→Part Infrastructure→Display→Parameters,选择Relations。

  以上这两种设置的主要目的,是方便在设置完变量和定义了公式后,可以在CATIA结构树中将其显示出来。

  具体建立参数化零件库步骤为(以C级六角头螺栓GB5780-2000为例):①在CATIA环境中建立对象的模型,在此过程中,要注意用尺寸约束那些需要参数化的特征尺寸(如图1),以便以后用来直接驱动这些尺寸,快速生成模型。②模型建好后(如图2),利用FORMULAR功能,建立用户自己的变量(如图3),这些变量必须是能够代表所建零件的一些特征尺寸。然后将这些变量赋给零件相对应的实体尺寸上,或通过编辑公式,来实现对应的关系。这样做的目的是使用户建立的变量与实体尺寸间建立关联,以后通过修改这些用户变量,就可生成形状相同、尺寸不同的零件。③建表。用DESIGN TABLE功能建立表格(如图4),表格中的参数变量就是上一步操作当中定义的用户变量(也可以从外部调用一个已经存在的表格,调用时会自动将字段名相同的字段对应起来),表格中输入的数据是用户需要的,或是根据国家标准得来。本例的螺栓相关数据可查机械设计手册得到。④入库。运用CATALOG功能建立零件的库(如图5),以备需要时随时调用。调用时,用户只需选择自己需要的尺寸,对其进行鼠标双击,就可快速的生成模型。

图1图2

图3

图4图5

  知识工程模块建库的方法完全基于CATIA,由于知识工程模块本身是CATIA的内部模块,因此开发起来很方便,调用时的响应速度也较快,同时也能够根据用户需要,只需增减表格中的数据,就能很方便地扩充库。但用这种方式开发的零件库也有其不足之处:数据冗余大,需将大量的数据存储在表格中。当模型较大时,数据就会增多,占用大量的资源,且不方便检索,不像利用VB或VC编程建库的方式,只需制定出简洁的界面,用户输入数据就能直接生成模型。

  2.运用编程方式建库

  运用编程方式建库就能够消除知识工程模块建库方法的弊端,但对用户的要求更高,用户需具备一定的计算机编程能力,同时还必须熟练掌握CATIA内部的API函数,这样才能够通过接口调用API函数进行编程建模。

  (1)进程内宏编程。

  运用CATIA中的宏(macro)进行二次开发是编程开发中最简易的开发方式,用户只需了解有关CATIA的API就可以进行编程开发。并且用户还可以通过录制宏的方式,更加简便地进行开发。

  具体方式是:在建模之前点击CATIA中“Tools”下的“宏(Macro)”菜单,开始宏的录制。之后,系统将出现录制结束的按钮,模型建完后,关闭此图标按钮。操作者此时只要打开宏对其进行编辑,修改其中的主要参数,然后运行,就可以生成不同的模型。用户还可以通过定制(customize)将编写或录制的宏命令加入到工具条上,并将其关联一个图标。当想要生成模型时,只需点击工具条中定制的宏图标,就可以快速生成模型。

  该方法虽然相对比较简单,但灵活性较差,与CATIA结合在一起,只有当CATIA运行时才能进行相应的操作,并且参数修改起来不太方便。而用进程外的应用软件VB或VC进行建库就能很好地解决这些问题,能够设计出友好的界面,进行人机交互式建模。

  (2)VB建库。

  用VB建库主要是基于CATIA二次开发中的AUTOMATION技术进行。运用VB建库的主要思想是:借助VB的开发功能设计出交互式界面,用户只需在界面中输入自己设计的参数,就能在CATIA中建立相应的模型。其中,最重要的就是要分析模型的构造,提取出模型的特征参数,然后将这些特征参数以控件的方式添加到VB定制出的界面中,实现人机交互。其流程如下图6所示。

图6

  用VB建库需注意两点:①要先引用CATIA的对象库,将CATIA的相关库文件加入到VB环境中,具体方法是在VB环境中选中“工程→引用”,然后选中里面的所有有关CATIA的库文件(这对于初学者来说非常必要,以防漏选),这样以后才能调用CATIA的对象库进行编程。②采用Get Object或CreateObject来建立跟CATIA的连接,如果CATIA在当前情况下没有启动,就采用CreateObject来启动CATIA,这是进程外VB跟进程内VBA编程的一个不同点。

  具体的宏命令为:

  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)VC建库。

  采用VC建立参数化零件库,主要就是借助CATIA二次开发工具CAA(Component Application Architecture)、RADE(Rapid Application Development Environment)和不同的API接口程序在VC环境中开发出能够实现在CATIA中建模的交互式界面。要完成建立参数化零件库的目的,首先需安装与CATIA版本相对应的CAA-RADE软件。其建库思想总体上与VB相差无几:通过建立交互式界面,用户只需跟一系列的界面(对话框)进行对话,就可以生成模型。VC开发的特点在于其能够开发出跟CATIA无缝连接的界面,能够定制出具有CATIA风格的工具条、菜单以及对话框。一般情况下,外人很难从CATIA环境中分辨出用户开发的产品,而VB开发出的界面达不到这种效果。

  CAA采用面向对象的程序语言,对CAA的开发可看做是对其模块,架构的扩展,其架构如图7所示。

图7

  RADE是一个可视化的开发环境,它以VC为载体,开发工具完全集成在VC++的环境中,并且提供了一个CAA框架程序编译器。在正式开发之前,用户需先将CAA-RADE环境引入到VC中,具体做法是:在VC环境中点击“工具→外接程序管理器”,之后系统会弹出一个界面(如图8),在这个选项下,选择所有开发中要用到的RADE插件。关闭VC重启后,就完成了RADE环境的嵌入。

图8

  用VC建库,首先要做的是界面的开发,即在CATIA中插入菜单、工具条和按钮等。具体的流程在VC环境中完成:新建工作空间(WorkSpace)→新建框架(Frame)→添加Module→载入必须的API函数(“Locate Prerequisite Workspace”)→插入资源(command、dialog和Pattern)→编译运行,通过这种方式可完成对工作台的创建以及对话框的建立等。对于菜单和工具条的创建,则要利用代码生成,通过调用相应的接口函数“CreateWorkbench()”中的宏来完成。以下就是本文作者在CATIAV5中做的界面(图9)开发,在机械设计模块中设计出了Brake Design子模块,在该子模块中还设计出了“制动器零件库”菜单和相应的工具条,并将制动器零部件建模命令按钮置于工具条之中。

图9

  用于工具条、菜单以及命令按钮的添加代码如下,其中,New Access、SetAccess Child、AddToolbar View和 SetWorkbenchMenu为CATIA API函数:

  NewAccess(CATCmdContainer,CATCmdContainer1,CA TNewToolBar001Tlb); //建工具条

  NewAccess(CATCmdStarter,pBrakePrtLib,BrakePrtLib);//建命令按钮

  SetAccessChild(CATCmdContainer1,pBrakePrtLib); //将按钮置于工具条之内

  AddToolbarView(CATCmdContainer1,1,Right); //设置工具条的位置,将其置于界面的右边,第二个参数“1”,表示所建的工具条是可见的

  SetAccessChild(CATCmdWorkbench1,CATCmdContain er1); //将工具条设置为位于所建工作台(Brake Design)之中

  NewAccess(CATCmdContainer,pBrakePrtLibMbr,Brake PrtLibMbr); //建立菜单入口

  NewAccess(CATCmdContainer,pBrakePrtLibMnu,Brake PrtLibMnu); //建立系统菜单入口

  SetAccessChild(pBrakePrtLibMbr,pBrakePrtLibMnu) //设定pBrakePrtLibMnu为pBrakePrtLibMbr的子对象

  NewAccess(CATCmdStarter,pBrakePrtLibM,BrakePrtLibM); //建立菜单命令按钮

  SetAccessChild(pBrakePrtLibMnu,pBrakePrtLibM); //设置命令按钮为菜单入口pBrakePrtLibMnu的子对象

  SetWorkbenchMenu(CATCmdWorkbench1,pBrakePrtLibMbr);//设置菜单按钮为工作台BrakeDesign的子对象

  以上代码是在所开发的模块(module)My Workbench中的“My Workbench.h”中完成的,其中My Workbench即为本文新开发的子模块Brake Design所在module。对于有关资源(图标和标题等)的定义,则在文件My Workbench.CATNls和MyWorkbench.CATRsc中分别定义。

  在MyWorkbench.CATNls中,主要定义相关的标题资源:

  MyWorkbench.Title=”Brake Design”;//设置新建工作台标题为Brake Design

  CATNewToolBar001Tlb.Title=”制动器零件库”;//设置新建工具条标题

  BrakePrtLibMnu.Title=”制动器零件库”;//设置新建菜单标题

  在MyWorkbench.CATRsc中,主要定义工作台相关的图标,路径等资源:

  MyWorkbench.Category=”MechanicalDesign”;//设置新建工作台路径位于MechanicalDesign之下

  MyWorkbench.Icon.NormalPnl =”I_Brake”;// Icons for the Welcome window 64x64

  My Workbench.Icon.NormalCtx =“I_Brake32”;// Icons for the Start menu 32x32

  My Workbench.Icon.NormalRep=“I_Brake24”;//Icons for the workbench toolbar 24x24

  其中I_Brake、I_Brake32和I_Brake24分别为图标资源的名称,它们一般存放在工程目录“CNext esourcesgraphicicons ormal”之下,图片格式一般为bmp格式。

  运用VC建立参数化零件库是当前对CATIA做的最高级的开发方式,建立的库能够很好地与CATIA融合到一起。但此种方式对开发者的要求很高,初学者要熟悉CAA的基本知识,以及它所提供的函数,因此入门较之前面提到的方法要难。

  二、结论

  CATIA作为一款参数化的设计软件,其优点主要体现在它具备用于客户化的接口,使得越来越多的企业能够根据自身的需求对其进行二次开发,以开发出符合本企业所需要的模块。对于本文所描述的建立参数化零件库的方法,已有些企业做过,相信随着人们对CATIA的进一步认识,对其建库的需求将会日益加大。