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應用系統的同時,還必須具備軟件開發的知識和能力。