1.1 CATIA二次开发的几种方式
CATIA接口通过两种方式与外部程序通信:进程内应用程序(In_Process Application)方式和进程外应用程序(Out_Process Application)方式。对CATIA进行二次开发一共有四种方式:Automation API ,KnowledgeWare,Interactive User Defined Feature和 CAA V5 C++ And Java API。
1.Automation API 使用自动化应用接口(Automation API)的宏。用于自动化(Automation)组件,日志(Journaling),Visual Basic和JavaScript/Html的开发,这是一种交互方式的定制。该定制方式允许用户获取CATIA的数据模型。通过提供交互的方式,让用户记录操作过程,通过VB Script or Java Script 来录制宏,从而自动生成代码。Automation API具备了与任何OLE所兼容的平台进行通讯的能力。
2.KnowledgeWare 智能构件(knowledgeware)。是一种反应式的,基于规则的,面向目标的客户化方式。它是一种高效的规范重用,像应用公式一样简单的,实现团体的知识库准则集,并且和V5紧密集成以提升处理能力。它能通过相关的稳定不变的规范定义来实现交互的知识捕捉。智能构件是一套预定义的易用服务,它驱动的管理和重用是从函数、规范到组件和系统来一步一步实现的。它允许定制和外部代码的集成。它用于三个方面:知识顾问、知识专家和产品工程优化。知识顾问是用于参与设计定义的嵌入知识,包含规则集、检查、审查和预定义行为(Behavior)。知识专家则是基于规则的过程,可以实现规则集、检查和报告。产品工程优化是面向设计目标的,它包含优化目标、准则和求解方案。
3. Interactive User Defined Feature 交互式的用户定义特征,是一种编制式的定制开发。通过聚合现存的特征来交互的定义新的数据类型。收集现存规范,指定输入,从而创建一个“IUDF”(用户定义特征)。“IUDF”可以通过引用一个目录文件(Catalog)保存在.CATPart文档中。它可以交互的被客户使用。
4. CAA V5 C++ And Java API CAA V5的C++和Java应用接口。这是基于组件的定制开发。也就是我们所说的CAA(component application architecture)。其具有强大的交互、集成和用户特征定义的功能,并有一套自己的体系架构。
对于需要捕捉用户的一系列交互操作的应用,可以采用CATIA V5的自动化应用接口和CAA V5的C++,Java应用接口。自动化应用接口可以调用“InputBox”和“MsgBox”函数
获取用户输入信息和进行输出,而对于NT用户还可以应用Visual Basic来定义更为复杂成熟的输入输出面板,还可以给宏关联一个图标,并置入CATIA显示框架。V5R6以后的自动化的应用接口同样可以获取界面的对象选择。
CAA V5则可以做精致的交互命令,这些命令可以分组归入工作台(workbench)并展示精美的面板,并能够实现Undo/Redo。智能件和CAA V5可以用来实现企业标准的约束检查。用户定义特征和CAA V5都可以事后定义新的特征,而产生和其他DS特征平等的特征。从而丰富CATIA V5的数据模型。要扩展已经存在的对象的行为则要CAA V5才能实现。和外部系统通讯可以通过格式输入输出实现。而CATIA也是自动化的服务器,在NT下,可以通过自动化接口进行与外部得通讯。CAA V5提供一个称为Backbone的通讯总线结构,该总线通过封装底层的通讯技术实现高层异步通讯。
1.2 CAA简介
组件应用架构(Component Application Architecture,CAA)是Dassault Systemes产品扩展和客户进行二次开发的强有力的工具。以
为商标的Dassault Systemes已
形成六大支柱产品,通过PPR HUB进行集成,对产品的生命周期进行全方位管理。
PPR HUB是Dassault Systemes 3D产品生命周期管理(Product Lifecycle Management ,PLM)解决方案的核心,确保CATIA、ENOVIA、DELMIA三者之间的整合。
Dassault Systemes的这套解决方案得利于开放式,可扩展的模块化开发架构CAA,使得全球诸多开发商可以参与Dassault Systemes的研发。对客户而言,CAA可以进行从简单到复杂的二次开发工作,而且和原系统的结合非常紧密,如果没有特别的说明,无法把客户所研发的功能从原系统中区分出来,这非常有利于用户的使用和集成。
CAA的实现,是通过提供的快速应用研发环境RADE和不同的API接口程序来完成的。快速应用研发环境Rapid Application Development Environment(RADE)是一个可视化的集成开发环境,它提供完整的编程工具组。实际上RADE以Microsoft Visual Studio VC++为载体,在VC++环境中增加了CAA的开发工具。API提供了操作各种对象的方法、工具和接口。
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应用开发工具
在商业运作方面,与Dassault Systemes系统的其产品一样,CAA也被划分为软件包(Configuration)和模块(Product),用户在购置CAA时要根据需要选择合适的配置和产品。
目前CAA有五个配置软件包:
CAA-Multi-workspace Application Building(简称ABC) CAA应用的基本配置.
CAA-C++ Extended Development(简称CDC)
提供与C++共存的的开发环境,即对C++开发环境的客户化,用户除可使用C++开发环境的所有工具外,还可使用CAA提供的独特的开发工具.可用于CATIA和ENOVIA的二次开发.
CAA-C++ Base Development(简称CDV)
与CDC类似,但规模小,针对中小市场,可有限地运用于CATIA V5和ENOVIA LCA的客户化工作.
CAA-Java Base Development(简称JDV)
运行于JAVA开发环境,适用于ENOVIA LCA客户端的定制.
CAA-Legacy Data Integration Development Configuration(简称LDC) 提供数据接口工具,可使用户继承原有的数据. CAA提供的产品(模块)包括:
CAA-C++ API Documentation Generator(CDG). CAA-C++ Source Checker(CSC)
CAA-CAA Data Model Customizer(DMC) CAA-Java UnitTest Manager(JUT)
CAA-Multi-Worksoace Application Builder(MAB) CAA-Teamwork Release Manager(TRM) CAA-C++ Interactive Dashboard(CID) CAA-C++ Unit Test Manager(CUT)
CAA-Java Interactive Dashboard(JID)
CAA-Web Application Generator for Legacy Database(LWG) CAA-Source Code Manager(SCM)
CAA采用面向对象的程序语言,面向对象的程序设计(OOP:Object-Oriented-Programming)作为软件开发设计的主流,有很多好处:可复用性、抽象性、封装性等。CAA的开发可以看作是其组件对象的组合和扩展。
CAA采用组件对象模型(COM)和对象的连接和嵌入(OLE)技术,COM作为一种软件架构具备了更好的模块独立性、可扩展性,使CAA的程序设计更加容易且趋于标准化,使程序的代码更加简洁明了。
CAA架构可用图5表示。它全面反映了Dassault Systemes几大产品的内部模块的关系。在CAA架构的支撑之下,Dassault Systemes系统可以像搭积木一样建立起来,这种结构非
常适宜于系统的壮大和发展。
因篇幅问题不能全部显示,请点此查看更多更全内容