CAA及其应用
第一飞机设计研究院 刘俊堂
[摘要] 本文就Dassault Systemes的CAA(Component Application Architecture)产品作了比较全面而详尽的介绍,包括CAA产品的构架、软件包的构成和选购。最后对CAA的安装和应用也作了简要介绍。
[关键词] 面向对象程序设计、组件对象模型(COM)CAA RADE
一、 CAA 简介
Component Application Architecture (CAA) 组件应用架构,是Dassault Systemes产品扩展和客户进行二次开发的强有力的工具。以 为商标的Dassault Systemes已形成六大支柱产品,通过PPR HUB进行集成,对产品的生命周期进行全方位管理。
图1 Dassault Systemes产品结构逻辑关系
这六大产品包括:
CATIA V5:产品的数字化设计和数字样机技术。
ENOVIA:产品数据管理和协同工作环境。
DELMIA:数字化工厂,包括工艺设计、资源控制、工厂布置和生产模拟等。
另外还有SOLIDWORKS、SMARTTEAM也可进行数字化设计和管理,由用户情况决定。特别要提的是SPATIAL,专门进行CAA架构的开发和研究。
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产品包括如下内容:
l CAA RADE 快速开发环境,基于Microsoft Visual Studio
l CAA CATIA V5 API, CATIA V5应用开发工具
l CAA ENOVIA LCA V5 API,ENOVIA LCA应用开发工具
l CAA DELMIA V5 API,DELMIA V5应用开发工具
l CAA ENOVIA PORTAL V5 API ,ENOVIA PORTAL V5应用开发工具
二、 CAA架构
在软件开发领域,使用面向对象的程序设计(OOP:Object-Oriented-Programming)已经成为软件开发设计的主流,它为软件的发展带来了很多好处:可复用性、抽象性、封装性等。软件专家把软件开发看作是对象的组合。
面向对象程序设计是一种程序设计方法,而建立在面向对象程序设计基础之上的组件对象模型(COM)和对象的连接和嵌入(OLE)技术,使程序设计更加容易且趋于标准化,使程序的使用更加简洁明了。Microsoft是COM和OLE 的先祖,基于此种技术的应用软件,如Microsoft Word,Execl,Access 得到广泛地使用和承认,而且许多应用软件也是基于这种技术,CAA就是基于这种技术的Windows应用软件。
图 1
CAA产品的架构可用图1表示。它全面反映了Dassault Systemes几大产品之间的关系。在CAA架构的支撑之下,Dassault Systemes系统可像搭积木一样建立起来,这种结构非常适宜于系统的壮大和发展。表1列出了在CATIA V5应用方面为Dassault Systemes开发应用程序的部分公司。
表1 CATIA V5软件合作伙伴
序号 | 合作伙伴 | 产品 |
1 | CADDAM Systems company Inc. | Helix Integration/Environment V1R4 CAA V5 Based/Helix Direct Interface (HDI)CAA V5 Based |
2 | Dimensional Control Systems Inc. | 3DCS Analyst CAA V5 Based/3DCS Designer CAA V5 Based |
3 | Trace Parts | Trace Parts CAA V5 Based |
4 | T-Systems ITS GmbH | VAMOS CAA V5 Based |
5 | Metalsoft Inc. | Fabriwin CAA V5 Based |
6 | Mechanical Dynamics Inc. | Dynamic Designer CAA V5 Based |
7 | LMS International | LMS Virtual.Lab Acoustics LMS Virtual.Lab Noise and Vibration LMS Virtual.Lab Durability LMS Virtual.Lab Motion |
8 | ICEMCFD | ICEM CFD Hexa CAA V5 Based |
9 | AIKOKU ALPHA ENGINEERING CORP. | AIKOKU Post for 4 axis CAA V5 Based/ AIKOKU Post for 5 axis CAA V5 Based |
10 | CENIT AG Systemhaus | CUT4AXES CAA V5 Based |
11 | EADS Matra Datavision | EUCLID3 Connectivity CAA V5 Based |
12 | ZEH Software | ZEHSever CAA V5 Based |
13 | Infrastructure Interface | COM/VDAFS CAA V5 Based |
在商业运作方面,与Dassault Systemes系统的其产品一样,CAA也被划分为软件包(Configuration)和模块(Product),用户在购置CAA时要根据需要选择合适的配置和产品。
目前CAA有五个配置软件包:
l CAA-Multi-workspace Application Building(简称ABC)
CAA应用的基本配置.
l CAA-C++ Extended Development(简称CDC)
提供与C++共存的的开发环境,即对C++开发环境的客户化,用户除可使用C++开发环境的所有工具外,还可使用CAA提供的独特的开发工具.可用于CATIA和ENOVIA的二次开发.
l CAA-C++ Base Development(简称CDV)
与CDC类似,但规模小,针对中小市场,可有限地运用于CATIA V5和ENOVIA LCA的客户化工作.
l CAA-Java Base Development(简称JDV)
运行于JAVA开发环境,适用于ENOVIA LCA客户端的定制.
l CAA-Legacy Data Integration Development Configuration(简称LDC)
提供数据接口工具,可使用户继承原有的数据.
CAA提供的产品(模块)包括:
l CAA-C++ API Documentation Generator(CDG).
l CAA-C++ Source Checker(CSC)
l CAA-CAA Data Model Customizer(DMC)
l CAA-Java UnitTest Manager(JUT)
l CAA-Multi-Worksoace Application Builder(MAB)
l CAA-Teamwork Release Manager(TRM)
l CAA-C++ Interactive Dashboard(CID)
l CAA-C++ Unit Test Manager(CUT)
l CAA-Java Interactive Dashboard(JID)
l CAA-Web Application Generator for Legacy Database(LWG)
l CAA-Source Code Manager(SCM)
图2
图3表示了CAA产品配置及其所包含的产品的矩阵图.这里对各个模块的功能不再作详尽的解释,如果读者需要可参考相关资料或访问关于CAA的网站.
三、 CAA 安装
CAA的安装包括两大部分,一是Dassault Systemes相关应用软件的安装,如CATIA V5、ENOVIA;二是CAA本身的安装。
在安装CAA以前,要确认Dassault Systemes应用和CAA版本的一致性,甚至要考虑二者补丁的一致性,否则将导致CAA无法使用。下面以Dassault Systemes的CATIA V5R9 GA版应用程序和CAA的CDC安装为例,简要介绍CAA的安装过程。
假设用户购买了CATIA V5R9和CAA CDC的使用权,并拥有相应的产品License。
按照下面的步骤安装CAA一般就可使用CAA了:
l 安装CATIA V5R9 GA 版,如果以前已经安装过,可忽略这一步;
l 安装CATIA V5R9 API(此产品属CAA范畴),API自动安装在CATIA所在的目录下,由于CAA RADE不识别带有空格的目录名,所以在先前一步安装CATIA时,一定要自定义安装位置,且目录名不能包含空格。
l Microsoft Visual Studio V6.0的安装;
l CAA RADE的安装,在CAA RADE 安装前,必须安装Microsoft Visual Studio V6.0,同时注意不要把CAA RADE安装在CATIA的安装目录下,安装路径不能有空格。
通过以上四步,完成了CAA的安装,但要使用CAA,必须进行RADE产品的认证和环境的设置。
l RADE产品的认证,通过命令启动RADE Tools Licensing:
C:>$RADE_INSTALLATION_PATH$/
intel_a/code/bin/ CATVBTLicenser.exe
这里$RADE_INSTALLATION_PATH$
为
RADE
的安装路径。
图2 RADE License 配置窗口
选择有效的License,确定即可。
l 安装联机帮助,以便在RADE开发环境下提供CAA帮助。
C:>$RADE_INSTALLATION_PATH$/intel_a/code/bin/
CATVBTSetup.exe
这里$RADE_INSTALLATION_PATH$
为
RADE
的安装路径。
选择Documentation,指定帮助文档的路径(在CATIA安装目录下)。
四、 CAA 启动
下面简要介绍一下CAA RADE的使用流程。
l 启动Microsoft Visual C++,选择Tools->Customize…,在弹出的菜单上选择
Add-ins and Macro Files,选中有关的插接件,关闭窗口,退出Microsoft Visual C++。这一步骤在首次使用CAA RADE必须进行。
l 重新启动Microsoft Visual C++,出现CAA RADE的帮助窗口。在菜单栏上增加了两个新的菜单项,CAAV5 Workspace和Source Code Manager,这是CAA RADE添加的菜单项。
另外,展开其他菜单项,如Project,可以到看以 图标打头的菜单项,也属于CAA RADE的菜单项。到此为止,我们就可以使用CAA RADE来开发CATIA V5R9的用户客户化程序了。
五、 CAA 应用范例
为了帮助用户熟悉CAA RADE的开发环境和工具,Dassault Systemes各个应用系统各自提供了许多应用范例,如CATIA V5R9提供了与开发CATIA 有关的范例,用户甚至可对范例稍加修改而变成自己的产品。在安装CATIA API时,应用范例被安装在CATIA目录下的CAADoc文件夹中。所有范例的文件夹以 .edu结尾。为了防止原始范例文档的破坏,可以把CAADoc文件夹的用例拷贝到其他地方(比如,把CAASystem.edu拷贝到E:/V5R9/UsercaseWorkspace),并以此作为目标进行编程练习。
l 启动Microsoft Visual C++,选择File菜单下的Open CAA V5 Workspace命令。
a、 在Open with选项列表中选择Mkmk,Mkmk是CAA RADE提供的连编命令。
b、在Workspace Directory文本框中指定范例所在的文件夹,如本例的E:/V5R9/UsercaseWorkspace。CAA RADE中的Workspace是Project存在的地方。
c、在Toollevel选项列表中选择V5R9_T09。
点击OK,RADE进行关于本用例的初始化工作,显示相关窗口和信息。
因为在新建的Workspace中不存在项目Project,CAA RADE将为用户生成一个,并给以提示。
l 选择模块
Project生成之后,CAA RADE要求选择项目所包含的模块,这里我们选择CAAsysCallBack.m.
点击OK,RADE提示用户需连接的资源库,RADE称其为prerequisite workspace。这是可想而知的,因为范例及其用户编写的程序,要在Dassault Systemes应用系统环境下运行,必须把Dassault Systemes资源和用户的客户化程序整合在一起。
点击OK,RADE显示范例程序的结构,包括类和文件。
l 定义Prerequisite Workspace,在CAAV5 Workspace菜单中选择菜单项Locate Prerequisite Workspace…。
a、 选择Mode下Access prerequisites from their origin location。
b、在Origin for prerequisite Frameworks下,把CATIA的资源添加为Prerequisite Workspace。方法是点击Add…。点击OK,RADE调用相关资源。
l 程序的连编,选择Build菜单下的mkmk命令。在出现的Code Builder(mkmk)窗口指定相关选项,见下图。
点击OK,RADE开始建立连编代码。
l 建立Debug时运行程序,在CAAV5 Workspace菜单下,选择Create/Update Runtime View…,在Create RunTimeView中选择all.
点击OK,RADE弹出相关窗口。
把CAASysCallback.m所在的Project设为激活的状态,Class View或File View右键CAASysCallback.m classes。
选择Set as Active Project。
l 运行范例,指定范例程序可执行代码的地址。在Project菜单中选择Settings…,RADE弹出Project Settings窗口。在Debug下指定范例程序可执行代码的地址。点击OK。
在Build菜单下,点击Execute CAASysCallBack.exe运行程序。
六、 结论.
Component Application Architecture (CAA) 组件应用架构,是第三方产品集成和一般客户进行客户化、个性化设计的强有力的工具,利用CAA完全可以实现Dassault Systemes应用的深层次开发。但是,由于Dassault Systemes应用本身的复杂性和CAA所涉及的深层次内容,利用CAA进行二次开发必然具有一定的复杂性和难度,用户在熟练掌握Dassault Systemes应用系统的同时,还必须具备软件开发的知识和能力。