鐘維明,文伏靈,李 偉,梁 勇(中國電建集團成都勘測設計研究院有限公司,成都 610072)
一種基數(shù)據(jù)庫的CATIA模板設計方法
鐘維明,文伏靈,李偉,梁勇
(中國電建集團成都勘測設計研究院有限公司,成都610072)
摘要:計算機三維輔助設計軟件CATIA通過COM接口及模板定義實現(xiàn)圖形交互的二次開發(fā),但在CATIA環(huán)境下實現(xiàn)復雜的界面設計就顯得非常困難,同時,CATIA的二次開發(fā)面向一定程序基礎的人員,對于普通建模者而言自定義模板和二次開發(fā)就非常困難。通過外部數(shù)據(jù)庫定義模板及屬性,利用Web界面設計的特點,實現(xiàn)外部(非CATIA)環(huán)境下屬性定義與賦值方法,可降低CATIA二次開發(fā)的要求,并有效提高系統(tǒng)開發(fā)效率。
關鍵詞:三維模型;CATIA;模板;CAA;二次開發(fā)
在Caitia環(huán)境下實現(xiàn)模板和自定義屬性的掛接通常通過Caita自身模板定義或CAA二次開發(fā)實現(xiàn),但CATIA二次開發(fā)或者模板定義需要專業(yè)的程序開發(fā)經(jīng)驗,而且其定義的模板或二次開發(fā)程序由于是獨立的程序(模板),模板的更改和屬性值的變更使得對每一個零部件節(jié)點進行變更。提出一種基于數(shù)據(jù)庫的屬性維護方法,通過在CATIA外部(數(shù)據(jù)庫)定義模板及模板屬性。將CATIA下的節(jié)點路徑(編號)關聯(lián)管理,實現(xiàn)任意類型模板及模板屬性的管理。一方面降低了模板的使用難度,另一方面有利于模板的后期維護,提高模板使用效率。
CATIA通過CAA接口實現(xiàn)與微軟基礎類庫MFC控件的通信,MFC通過微軟Web瀏覽器(WebBrowser瀏覽器)控件實現(xiàn)與Web頁面之間的通信,最后通過Web頁面實現(xiàn)與數(shù)據(jù)庫之間的數(shù)據(jù)交換。從而實現(xiàn)CATIA環(huán)境下三維模型屬性的外部存儲與Web方式維護的目的。
2.1 CAA與MFC之間的通信
(1)CAA向MFC通信。因使用的是MFC動態(tài)庫,所以從CATIA平臺的CAA接口向MFC通信,可以直接在CAA中調(diào)用MFC動態(tài)庫的接口,向MFC發(fā)送消息即可。
(2)MFC向CAA通信。如果需要MFC向CAA返回信息,需要在MFC動態(tài)庫中提供一個接口,接收CAA提供的函數(shù),作為回調(diào)函數(shù),當需要MFC向CAA返回信息時,調(diào)用該回調(diào)函數(shù)即可,MFC動態(tài)庫中的代碼片段節(jié)選如下。
2.2 MFC與WEB之間的通信
MFC與WEB之間的通信,本質(zhì)上就是C++與JavaScript之間的通信,所以在MFC動態(tài)庫中封裝了SDK實現(xiàn)的WebBrowser控件,把WebBrowser控件作為C++與JavaScript的橋梁,實現(xiàn)雙向通信。
(1)MFC向WEB通信。當用戶選擇了CATIA節(jié)點,程序通過本文的通信機制,將CATIA節(jié)點路徑,傳送到WEB端,并顯示到頁面。
(2)WEB向MFC通信。當WEB端按鈕需要向MFC返回消息時,調(diào)用window.external.MethodForWeb時,會調(diào)用GetIDsOfNames方法找到MethodForWeb,再通過Invoke方法,最后調(diào)用MethodForWeb,獲取到WEB端傳送給MFC的信息。
基于CATIACAA與Web的混合架構機制,建立基于Web的模板設計方式,具體包括添加屬性模板和為模板配置屬性兩方面內(nèi)容。
(1)添加屬性模板。針對不同的三維模型,可添加多個不同類型的屬性集(即模板),在Web端實現(xiàn)了添加屬性模板功能,通過配置不同的屬性模板,可定制不同結構的屬性數(shù)量及類型。
(2)添加屬性。完成屬性模板添加后,進一步對CATIA模型賦予相應的屬性。首先在三維環(huán)境下選擇工程和節(jié)點,然后選擇節(jié)點所屬模板后自動彈出該模板所有屬性列表,填寫屬性值并確認后,一方面屬性掛接到CATIA模型樹上,另一方面屬性值寫入數(shù)據(jù)庫,完成流程。
通過研究CATIA二次開發(fā)與MFC及WEB之間的多路通信實現(xiàn)了CATIA屬性模板的外部定義與賦值。可以降低CATIA屬性添加的難度,同時使得屬性的維護更簡單方便。最后應用證明該方法可行、有效,極大的提高CATIA模板的開發(fā)效率,也極大的提高了模板的復用性。
參考文獻:
[1]周桂生,陸文龍.CATIA二次開發(fā)技術研究與應用[J].機械設計與制造,2010(01).
[2]胡添元,余雄慶.基于CATIA二次開發(fā)的飛翼外形參數(shù)化建模[J].飛機設計,2007(06).
[3]郭新玲,李韶杰,邱尚高.MFC類庫在Pro/E二次開發(fā)中的應用[J].現(xiàn)代制造工程,2004(10).
[4]吳憲傳,張向文.MATLAB和VC++聯(lián)合編程的COM研究[J].計算機系統(tǒng)應用,2009(07).
[5]徐輝,王忠芝.基于WebBrowser的MATLAB用戶界面設計與實現(xiàn)[J].計算機系統(tǒng)應用,2011(07).