基于V5,Automation的CATIA,二次开发技术研究:二次开发技术

基于V5 Automation的CATIA 二次开发技术研究

基于V5 Automation的CATIA 二次开发技术研究 引言 CATIA是法国达索系统公司开发的集成了CAD、CAM和CAE的大型 软件,凭借其突出的技术优势在制造业的各个领域得到了广泛的应用,现已成为 全球制造业的主流设计软件。应用CATIA先进的设计理念,可极大地提高企业的 设计水平、设计质量和设计效率。

二次开发是对软件的用户化和专业化的有效手段,可以使软件更好地 为用户服务,在提高CAD软件的应用效率、专业性,充分发挥CAD软件的使用效 益,提高工作效率和工作质量等方面有着十分重要的作用。CATIA作为一款通用、 大型软件,为用户提供了二次开发接口和开放式的内部命令集合,给用户的二次 开发带来了方便。在熟练掌握CATIA软件功能的情况下,通过对CATIA软件的二 次开发功能进行深入研究,就可以开发出适用于本单位和个人习惯的CAT-IA二 次开发程序,为提高工作效率和产品质量服务。因此,对CATIA进行二次开发研 究,已受到国内外许多科研院所及高校的重视。

机载电子设备的结构设计通常会使用大量的各类标准件,如螺钉、垫 圈、螺母等。在CATIA的装配设计中,设计人员对这些标准件往往进行手工插入, 在这样的设计模式下,设计人员不得不重复地选择零件、几何约束对象并创建约 束,费时费力且容易出错。为解决上述问题,文献10]提出了标准件的“批装配”方 法,文献11]提出了‘‘栈式”装配方法,但这些方法都需要用户选择多个装配几何元 素。本文在上述研究的基础上,给出了一个新的螺钉智能装配程序实例,只需让 用户选择一个装配几何元素(即螺钉安装面),就可完成对所选安装面上所有孔 的螺钉(包括垫圈、螺母等)的自动装配,极大地提高了CATIA装配设计中标准 件的装配工作效率。

1CATIA二次开发技术的主要研究方向及应用前景 1.1CATIA二次开发技术的主要研究方向 文献对CATIA二次开发技术进行了研究,我们可以从上述文献所做工 作中提取出CATIA二次开发技术的主要研究方向:(1)参数化设计。通常的 CAT-IA二次开发技术在参数化设计中的应用是编写一个界面获取用户指定的参 数后,通过编程来调用CATIA相应的造型函数,从而完成参数化设计。文献1-4]是在这方面所做的工作。(2)CAE开发。强度设计和热设计已越来越多地应用于 结构设计领域,将强度设计和热设计的相应算法通过编程的方式应用到CATIA的 二次开发中,继而编写出适合于本单位的强度设计和热设计的程序,可实现结构设 计和热设计、强度设计的有机统一。由于这些程序是由本单位研发人员所编写, 因此它不仅能实现和CATIA的无缝集成,而且在操作上还很符合本单位设计人员 的习惯。文献是在这方面所做的工作。(3)优化设计。针对用户产品设计的特点, 为达到最优设计而提出相应的算法,并在CATIA二次开发程序中实现这种算法,从 而达到优化设计的目的。文献7-8是在这方面所做的工作。(4)简化操作。针对 CATIA中某些比较繁琐的操作,结合用户研发设计的特点,通过编程,使CATIA相 关操作得以简化。文献9-10]是在这方面所做的工作。

1.2CATIA二次开发技术的应用前景 上述4个研究方向均有广阔的应用前景。研究方向1的相关研究最多, 其主要思想是通过参数化设计,将已有设计思想知识化和标准化,即使设计经验 相对欠缺的设计师通过输入相关参数也能完成产品设计,从而大大提高产品重用 化水平,提高设计效率。研究方向2难度最大但应用前景最广。通过CATIA的二次 开发,将强度设计和热设计融入CATIA中,开发出与CATIA无缝集成的强度设计 和热设计程序,从而实现结构设计和强度设计、热设计的有机统一。但其开发难 度也较高,程序开发者不仅需要具备一定的编程经验,更需要掌握强度设计和热设 计的算法并且具有把这种算法应用于CATIA二次开发的能力。研究方向3提供了 一个有效的进行产品优化设计的途径。在工程设计中,使设计效果达到最优是设 计师不断追求的目标,他们在长期的设计实践中产生了大量的优化策略和方法,研 究方向3的主要工作就是将上述优化策略和方法转化成计算机能识别的算法并在 CATIA二次开发程序中实现,从而达到优化设计的目的。研究方向4针对CATIA中 不满足用户应用习惯和应用需求的部分,开发出适用于本单位和个人习惯的工具, 为提高工作效率和产品质量服务。本文第3节给出的应用实例“智能化螺钉装配程 序”就是在这方面所做的工作。

2 V5 Automation的关键技术 2.1CATIA二次开发接口 CATIA主要提供了两种二次开发的接口,包括自动化对象编程 (V5Automation)和开放的基于构件的应用编程接口(CAA)。前者采用 VisualBasic6.0(简称VB)对CATIA进行二次开发。VB是一种基于Basic的可视化程序设计语言,它继承了先前Basic程序设计语言所具有的简单、易用的特点,而且 在其编程系统中采用了面向对象、事件驱动的编程机制,用一种巧妙的方法把 Windows的编程复杂性封装起来,提供了一种所见即所得的可视化程序设计方法。

结合VB强大的功能和CATIA本身提供的丰富的类、库及二次开发函数,就能开发 出个性化的CATIA二次开发程序。CATIA二次开发的过程和意义如图1所示。

2.2利用V5Automation进行CATIA二次开发的基本流程 在V5Automation中,所有的数据都被封装成对象的形式,并形成树形 结构,如图2所示。图2中,通过根对象Application可以访问所有其他对象,如通 过Application对象的Documents、Windows和SystemSer-vice等属性就可以访问 CATIA的所有对象。同时,VB提供了许多非常有用的工具,使用这些工具,可以声 明任何由CATIA提供的库文件(.tlb),这些库文件包含了所有对象的声明和所有外 部对象的方法和属性。

在VB中对CATIA进行工程引用后,利用下面的程序代码,米用 GetObject和CreateObject方法,即可实现VB对CATIA的连接。

Dim CATIAAs Object On Error Resume NextSet CATIA=Get Object(/"CATIA.Application") If Err.Number0 Then SetCATIA=CreateObject("CATIA.Application") CATIA.Visible=True End If On Error GoTo 0 连接到CATIA之后,就可以在VB中对CATIA进行操纵,而CATIA也提 供了丰富的类、库及二次开发函数供用户调用。CATIA二次开发的过程可以理解 为:用户为实现某种功能,根据需要,合理地调用上述类、库的属性和方法以及 二次开发函数。CATIA中的每个功能(包括零件设计、曲面造型、装配设计、工 程制图等)以及所有的实体特征(包括草图特征、修饰特征、曲面特征、变换特 征、组合特征等)都有相应的类、库支撑,因此CATIA二次开发的主要工作就是 合理地对对象进行编程。图3表示了利用V5Automation进行CATIA二次开发的基 本流程。3应用实例 下面给出该“智能化螺钉装配程序”的步骤:
1)提示用户在CATIA装配界面中选择螺钉安装面;

2)判断所选螺钉安装面所在的零件;

3)搜索该零件上所有的孔特征,如果孔特征满足其中心点在所选螺钉 安装面上,则该孔特征进入“我需要的孔”数组;

4)计算“我需要的孔”数组中元素的个数,如个数为0,则程序提示“所选 螺钉安装面上没有孔特征,不能进行螺钉装配”并退出;

5)在“我需要的孔”数组中,计算孔的种类和大小;

6)程序根据“我需要的孔”数组中孔的种类和大小计算出适用于所选 螺钉安装面的螺钉规格;

7)提示用户选择螺钉长度和装配螺钉的方向,如果螺钉规格为GB818, 程序还会提示用户选择是否需要装配弹平垫;

8)根据用户的选择情况,程序进入装配实施阶段,通过编程,在程序中 对螺钉施加装配约束,约束条件1为螺钉“安装面”与所选螺钉安装面重合;
约束 条件2为螺钉“中心轴”与“我需要的孔”数组中孔特征的中心轴重合;

9)通过一个循环语句,完成对“我需要的孔”数组中所有孔的螺钉装配。

4结束语 本文对CATIA的二次开发技术进行了研究,提出了基于V5Automation 的CATIA二次开发技术的基本方法、一般原则和开发流程,并通过一个智能化螺 钉装配程序的实例,验证了CATIA二次开发技术。应用CATIA二次开发技术可以 实现强大的功能,对CATIA进行二次开发可实现真正意义上的CAD、CAM、CAE 技术的有效应用,因此探索CATIA二次开发的技术和方法有着较大的现实意义。目前已作了初步的研究,今后,还可以在参数化设计、CAE开发、优化设计等方 面对CATIA的二次开发技术展开更深入的研究,以推动设计水平的提升。

彭欢 (中国电子科技集团公司第二十九研究所,四川成都610036)