CATIA(Computer Aided Three & Two Dimensional Interaction Application System,计算机辅助三维/二维交互式应用系统)V5是IBM/DS基于Windows核心开发的高端CAD/CAM软件系统。目前CATIA最新的版本为V5R14。CATIA系统如今已经发展为集成化的CAD/CAE/CAM系统,它具有统一的用户界面、数据管理以及兼容的数据库和应用程序接口,并拥有20多个独立的模块。
在国内,CATIA应用CAA 组件应用架构进行二次开发刚刚开始不久,相对人员比较少,资料不多,由于CATIA软件功能的强大以及CAA二次开发功能的强大,探索和实现基于CATIA的二次开发技术具有很好的应用价值。
二、CATIA的二次开发方式
作为强大的工程软件,CATIA具有很强的开放性能。用户可以按照自己的需要,采用不同方式进行各种程度上的开发。
CATIA二次开发接口是通过两种方式与外部程序通信:进程内应用程序(In-process Application)方式和进程外应用程序(Out-Process Application)方式。进程内应用程序方式下,CATIA软件与脚本运行在同一进程地址空间,比如宏方式(Macro)。在CATIA环境下通过菜单记录宏(Record Macro),宏记录后,生成VB脚本(Visual Basic Script)序列,当宏开始运行,CATIA就处于非激活状态,因此不能宏调用之间存储变量的值,这种方式比较简单,在CATIA环境就中可完成。进程外应用程序方式下,CATIA与外部应用程序在不同进程地址空间运行。在CATIA运行的情况下,外部进程可以通过接口驾驭CATIA,创建、修改CATIA环境和几何形体的数据、尺寸等,同时支持对象连接与嵌入(OLE,Object Linking and Enbedding)。
具体来说,CATIA的二次开发主要有两种方法:使用宏对CATIA进行二次开发和使用组件应用架构(CAA–RADE)对CATIA进行二次开发。
1、 使用宏(Macro)对CATIA进行二次开发。
可以用于自动化(Automation)组件,使用VBScript作为编辑工具,这是一种交互方式的定制。可以记录用户的操作过程,自动生成代码。CATIA提供了Automation API用于VBScript对CATIA的二次开发,Automation API具备了与任何OLE所兼容的平台进行通讯能力。自动化应用接口可以调用“InputBox”和“MsgBox”函数获取用户输入信息和进行输出,而对于NT用户则可以应用Visual Basic来定义更为复杂的输入输出面板。运行的时候可以给宏关联一个图标,并置入CATIA显示框架。这种方式的开发流程如图1中所示。

图1 使用VB进行CATIA二次开发的基本流程
2、使用组件应用架构(CAA–RADE)对CATIA进行二次开发
Component Application Architecture (CAA) 组件应用架构,是Dassault Systemes产品扩展和客户进行二次开发的强有力工具。Dassault Systemes提供的CAA产品包括如下内容:
CAA RADE 快速开发环境,基于Microsoft Visual Studio
CAA CATIA V5 API, CATIA V5应用开发工具
CAA ENOVIA LCA V5 API,ENOVIA LCA应用开发工具
CAA DELMIA V5 API,DELMIA V5应用开发工具
CAA ENOVIA PORTAL V5 API ,ENOVIA PORTAL V5应用开发工具
快速应用研发环境Rapid Application Development Environment(RADE)是一个可视化的集成开发环境,它提供完整的编程工具组。RADE以Microsoft Visual C++6.0为载体,开发工具完全集成在了VC++环境中,并且提供了一个CAA框架程序编译器,但同时也限制了VC++的部分功能。可以说CATIA CAA–RADE是目前所有高端CAD/CAM开发环境中最为复杂、同时也是功能最为强大的一个。



