蔣麗
(中國第一汽車股份有限公司天津技術開發分公司)
CATIA V5是法國達索公司與IBM公司開發的新一代CAD/CAM產品。由于它具有超強的自由曲面造型和逆向功能、全面組合分析的功能、個性化的界面以及智能型的功能操作,因此,在汽車行業,普遍運用它來設計三維立體模型和二維圖紙。CATIA的二次開發技術能力關系到整個設計制造階段的工作效率和產品提升,作為強大的工程軟件,具有很強的開放性能。用戶可以根據自己的需求,采用不同的方式進行各種程度上的二次開發。該軟件具有供用戶進行二次開發的接口,這些接口給用戶提供一系列工具,可以完成宏程序執行、用戶界面定制及幾何形體的生成等功能[1]16。文章主要介紹CATIA軟件二次開發的基本方法,并以宏程序為例,介紹如何進行簡單的CATIA二次開發插件的編寫,以利于工作效率的提高。
CATIA二次開發接口是通過進程內應用程序和進程外應用程序方式與外部程序進行通信。
進程內應用程序方式下,CATIA軟件與腳本運行在同一進程地址空間,如宏方式。在CATIA環境下通過菜單記錄宏,宏記錄后,生成VB腳本序列。當宏開始運行,CATIA就處于非激活狀態,因此不能調用宏之間存儲變量的值。這種方式比較簡單,在CATIA環境下即可完成。
進程外應用程序方式下,CATIA與外部應用程序在不同進程地址空間運行。在CATIA運行的情況下,外部進程可以通過接口駕馭CATIA(創建和修改CATIA環境、幾何形體的數據及尺寸等),同時支持對象的連接與嵌入(OLE)。
具體來說,CATIA的二次開發主要使用宏對CATIA進行二次開發和使用組件應用架構(CAA)對CATIA進行二次開發[1]17-18。
使用宏對CATIA進行二次開發時,在進程內應用程序的方式下,CATIA軟件與腳本運行在同一進程地址空間,指的就是應用宏方式進行二次開發。宏方式可以用于自動化組件,使用VB腳本作為編輯工具,這是一種交互方式的定制。它可以記錄用戶的操作過程,自動生成代碼。CATIA軟件提供了自動化接口用于VB腳本對其進行二次開發,自動化應用程序編程接口具備與任何OLE所兼容的平臺進行通訊的能力。自動化應用接口可以調用函數獲取用戶的輸入信息并進行輸出,而對于NT用戶則可以應用VB來定義更為復雜的輸入輸出面板。運行的時候可以給宏關聯一個圖標,并置入CATIA顯示框架。這種方式的開發流程,如圖1所示。
錄制一個宏是指產生相應的腳本語言來記錄一串有次序的動作,如創建和修改對象。當結束錄制時,可以保存、修改及回放,這些被稱為宏的存儲。回放一個宏之所以為一個“內進程”,是因為腳本被和CATIA同一個進程的解釋器所執行。宏可以存儲為外部的文件或存儲在自身所在的文件上。
按照慣例,錄制一個宏有利于了解怎樣去編制程序,錄制宏的顯示界面,如圖2所示。
錄制一個宏來幫助理解宏代碼,這個宏是用來設計一個汽車零部件,在宏的存儲界面,可以找到剛才錄制的這個汽車零部件的宏,如圖3所示。
宏錄制成功后,在宏的存儲界面,點擊宏編輯,可以看到大段的代碼,這段代碼就是剛才繪制零部件的動作以及所有后臺執行的命令函數和涉及的變量。通過對這段代碼的分析,可以看出,整個CATIA軟件中的宏代碼是如何組織運行的。通過對函數和相應變量的組織,就可以得到想要的結果。
CAA是達索系統產品擴展和客戶進行二次開發的強有力工具。達索系統提供的CAA產品包括如下內容:
1)CAA RADE:基于 Microsoft Visual Studio;
2)CAA CATIA V5 API:CATIA V5 應用開發工具;
3)CAA ENOVIA LCA V5 API:ENOVIA LCA 應用開發工具;
4)CAADELMIAV5API:DELMIAV5應用開發工具;
5)CAA ENOVIA PORTAL V5 API:ENOVIA PORTAL V5應用開發工具。
快速應用研發環境(RADE)是一個可視化的集成開發環境,它提供了完整的編程工具組。RADE以Microsoft Visual C++6.0為載體,開發工具完全集成在了VC++環境中,并且提供了一個CAA框架程序編譯器,但同時也限制了VC++的部分功能??梢哉fCATIA CAA RADE是目前所有高端CAD/CAM開發環境中最為復雜且功能最為強大的一個。
CAA的構成,如圖4所示。從圖4可以看出,構成CAA組件的模塊文檔數量是極其繁多的,而且各個模塊文檔內容之間相互滲透,互相關聯,極為復雜。在CAA的支撐之下,達索系統可像搭積木一樣建立起來,這種結構非常適宜于系統的壯大和發展。點擊相應的模塊,可以進入各個模塊的文檔。同時CAA利用了組件對象模型(COM),通過COM調用CATIA最底層的應用程序編程接口,這給對CAA的學習掌握帶來了困難。
在商業運作方面,與達索系統的其它產品一樣,CAA也被劃分為軟件包和模塊,用戶在購置CAA時要根據需要選擇合適的配置和產品。目前CAA提供的5個配置軟件包如下:
1)CAA-Multi-workspace Application Building(簡稱ABC):CAA應用的基本配置;
2)CAA-C++Extended Development(簡稱 CDC):提供與C++共存的開發環境,即對C++開發環境的客戶化,用戶除可使用C++開發環境的所有工具外,還可使用CAA提供的獨特的開發工具,可用于CATIA和ENOVIA的二次開發;
3)CAA-C++Base Development(簡稱 CDV):與CDC類似,但規模小,針對中小市場,可有限地運用于CATIAV5和ENOVIA LCA的客戶化工作;
4)CAA-Java Base Development(簡稱JDV):運行于JAVA開發環境,適用于ENOVIA LCA客戶端的定制;
5)CAA-Legacy Data Integration Development Configuration(簡稱LDC):提供數據接口工具,可使用戶繼承原有的數據。
CAA是采用COM和OLE技術,面向對象的程序語言,開發過程可看作是對其組件對象的組合和擴展。
作為CATIA V5的組成部分,CAA V5是達索系統產品擴展和客戶進行二次開發的強有力的工具,它建構在Microsoft Visual C++6.0版本下,通過API函數調用CATIA的核心程序,并進行程序開發,從而實現了客戶程序和原系統的緊密集成。CAA是對第三方產品集成以及對一般客戶進行客戶化和個性化設計的強有力工具,利用CAA完全可以實現達索系統應用的深層次開發。但是,由于達索系統應用本身的復雜性和CAA所涉及的深層次內容,再加上CATIA本身結構的層次化和嚴謹,所以利用CAA進行CATIA二次開發與其他CAD軟件相比也具有更大的復雜性和難度,但同時也可以實現更強大的功能。
可以在宏菜單下以交互的方式運行一個宏,也可以在工具菜單上點擊相應的按鈕,具體如下:
1)用“CNEXT-macro E:UsersMacros∣macroToRun.CATScript”方式運行,此時宏在與CATIA一起運行時運行;
2)以“CNEXT-batch-macro E:UsersMacros∣macro-ToRun.CATScript”的混合方式運行CATIA,執行這種運行方式時,這個命令會打開CATIA,運行宏,然后退出CATIA。
1)點擊 Tools->Customize,打開對話框,點擊 Command頁,選擇宏選項;
2)拖動需要添加的宏的名稱到工具欄上;
3)選擇另外一個代替默認的圖標,點擊這個圖標會顯示宏的屬性。
3.3.1 功能需求
由于在進行數據傳遞的時候發現有的廠家需要igs格式的文件,有的需要stl格式的文件,但是涉及到的零部件數模上千個,一個個手動轉換格式工作效率低下,因此需要有一個批量修改格式的功能出現。
3.3.2 軟件設計
軟件設計的思想是,在C盤創建一個名為“temp”的文件夾,將需要轉換格式的數模文件都放入該文件夾中,運行宏的時候,就出現如圖5所示的界面,點擊“確定”,開發出的CATIA宏文件就會自動將“temp”文件夾里的數模文件轉換為需要的格式,避免手動一個個的打開,然后點擊“另存為”。由此可以大幅度降低工作量,提高工作效率。
3.3.3 CATIA二次開發的宏代碼[4]
依據文章介紹的設計思想,開發的宏代碼如下:
對CATIA軟件進行二次開發,可以大大縮短專用系統的開發周期。二次開發是對軟件進行用戶化和專業化的有效手段,它可以使軟件更好地為用戶服務,這對提高工作效率和工作質量有著不可低估的作用。CATIA軟件為用戶提供了二次開發的結構和開放式的內部命令的集合,給用戶的二次開發帶來了方便。在熟練掌握CATIA軟件功能的情況下,通過對其深入研究,任何人都可以開發出適合于本單位和個人習慣的工具,為提高工作效率和產品質量服務。