


摘 要:基于CATIA Automation技術,對汽車開發中的主截面分析進行二次開發, 自動獲取截面上對應的各個零的屬性,統一各截面格式,方便查詢和比較。
關鍵詞:CATIA:VBA;主截面
1 引言
CATIA軟件在汽車開發過程中廣泛采用,隨著CATIA軟件應用領域的日益普及,用戶對軟件的功能和性能的要求不斷提高。為增加用戶對軟件個性化的服務要求,CATIA提供了開放接口,便用用戶進行二次開發。CATIA二次開發主要有兩種方式,一種是CAA C++,另一種是CAA Automation。其中CAA C++需要安裝CATIA RADE模塊,并單獨授權,用戶在VC++編程環境下完成與CATIA通信,需要專業的編程知識。
Automation是建立在com基礎上,可以通過Windows系統白帶的VBA技術完成和CATIA之間的信息處理,并不需要額外的軟件授權和專業的編程技巧。例如可以建立Excel表格和Catia之間的關系,將Excel中的參數數值傳遞到CATIA零件中,作為驅動參數。但是利用CAA Automation對CATIA進行二次開發會受到一些限制,不能實現一些高級或者個性功能。比如:對CATIA中Option的部分設置,利用Automation就不能對其進行完全控制。
主截面技術是車型開發過程中進行技術分析的重要手段,用于保證在關鍵位置的功能和尺寸。在項目早期階段,主截面的結構、尺寸、連接方式是進行工程分析的基礎和依據,也是對造型評價的主要手段。主截面用來表達車身鈑金、內飾件以及各種安裝零件或者零件特征在特定位置和方向上的尺寸大小、結構形式和連接方法。主截面的運用主要體現在以下方面:一是表達特定位置上的尺寸、結構和連接方式;二是典型斷面在整車中的位置以及同其他典型斷面的關系;三是不同車型之間的主截面對比、參考,為開發車型提供依據。各主機廠都根據自己的需求建立了一些列的主截面(比如通過整車原點Y平面,通過駕駛員R點位置的Y向截面等等),并對對這些主截面按照既定的規則進行統一命名,以備查詢和比較。在整個開發過程中嚴格控制各個主截面,以確保開發目標。
在很多情況下需要對主截面進行更改和優化,這同時會涉及到很多不同位置的關聯主截面。因此,在對各個主截面上涉及到的各個不同零件進行明確標示就顯得尤為重要,確認某個零件在不同主截面上的更改方向或者不同位置主截面涉及到的更改零件。所以最為有效的方法是,在進行截面分析時,需要明確各個零件之間的關系,標示主截面上各零件的屬性(比如:名稱、材料、甚至模具方向等等)。
2 CATIA自身截面工具的缺陷
CATIA白帶截面工具僅能進行簡單的截面加工,不能對Product下不同零件進行區分,不能添加截面上涉及零件的屬性(名稱、材料等信息)。使用CATIA自身截面工具( Section)得到的結果在CATIA目錄樹上始終顯示為一個Geometrical Set,如下圖1所示。這對后續的加工、展示都造成影響。
所以,需要對CATIA進行二次開發,已達到我們的使用要求。以更加簡潔、高效的方式,抓取相應主截面上的各零件信息,豐富主截面上的內容,以便讓不同的人群隨時都可以了解、確認主截面上的所有信息。
另外,一個全新車型的開發周期較長(4年左右),在這個時間段內需要對一個車型的開發狀態進行持續的跟蹤和優化。因此,在汽車主體尺寸確定完成以后,特定主截面的位置將保持不變。而CATIA自帶截面工具并不能保證截面位置的唯一性,只能通過截面位置的坐標來確認。如果每次都是手工輸入,將會帶來很大的工作量,同時也不能避免錯誤的發生。因此,類似的輸入或者信息盡量避免手工輸入,轉而通過程序或者在主截面文件中設置參數,然后控制參數傳遞,自動實現比較合理。
本文主要利用CATIA Automation完成相應主截面的二次開發,在主截面目錄樹上顯示Product中的對應截面零件的截取結果和屬性(主要是名稱),并對截取的零件結果按照設置要求進行線性和顏色的優化。
3 主截面工具二次開發邏輯
3.1 定義截面位置和大小
在整車硬點確認完成以后,我們需要生成一系列的主截面文件,(比如通過YO的汽車中央平面,通過駕駛員R點位置的Y向截面等等)以控制或者檢查整車尺寸以及其它要求。為了便于統一管理,并對這些主截面按照既定的規則進行統一命名,以備查詢和比較。顯然,為了確保各主截面定義具有可追溯性,采用參數定義不失為一個比較有效的辦法。在主截面Part文件中,在目錄樹上添加一個幾何集(Geometrical set),并命名為Schnittdefinition,這個幾何集將作為主截面位置、大小的載體,并通過參數進行定義。
CATIA中截面工具需要通過14個參數進行定義。它們分別是定義截面所在平面X坐標的X/Y/Z分量,平面Y坐標的X/Y/Z分量,平面Z坐標的X/Y/Z分量,截面所在平面的原點坐標X/Y/Z,以及截面大小的控制參數,即截面的長度和高度。
從圖1可以看出,CATIA白帶截面工具在外觀上顯示為一個矩形。因此,在主截面目錄樹Schnittdefinition集合下,建立一個主截面所在的平面( Plane),并在這個平面上使用草圖( Sketch)建立一個草圖矩形,以表征截面的大小或者范圍。這樣,草圖矩形的信息就將作為CATIA截面定義的信息,后續程序將自動獲取。通過CATIA Automation中提供的命令GetAbsoluteAxisData獲取平面草圖上的坐標軸方向向量,通過Getpoint得到草圖上矩形頂點的坐標信息,通過Length命令獲取草圖中矩形的長度和寬度。通道這樣的一個矩形草圖,我們就完全定義了我們所需主截面在Product中的位置,見圖2。
3.2 對涉及到的零部件進行截面處理
為了加快運行速度,首選根據截面定義的位置和大小,對Product中的零件進行初步的篩選,過濾沒在截面范圍內的零件。在CATIA Automation中使用Clash.Compute進行邏輯判斷,僅對截面位置的相關零件進行處理,自動排除不在此范圍的零部件。然后,對涉及到的零件進行截面加工處理,調用CATIA Automation提供的Section工具,按照3.1中定義的截面信息,對涉及到的每個零件進行Section處理。
3.3 輸出涉及到的零件截面
單獨處理每個零件以后的截面以Section的形式保存在Product中,如圖3所示。采用Section.Export命令,將完成的截面輸出,并在后續批量處理這些Part文件。當然,我們在建立Product下各個零部件的時候,就需要按照一定的規則,對零部件的各種屬性(比如:名稱、材料等)進行詳細、明確的定義,便于后續對這些信息進行傳遞。
3.4 對相應的輸出結果進行優化處理(包括線性、顏色等等)
將每個文件截面的輸出結果(Part文件)復制到我們之前定義的主截面目錄樹上的特定位置,并使用CATIA.selection.VisProperties輸出的結果進行線性和顏色進行設置,優化顯示效果。最終優化完成的主截面效果如下圖4所示。
通過這樣的手段和方式,我們可以對主截面上的零件進行很好的分類和標示,并提供給不同的人員使用。保證主截面位置上各零件信息的準確性、一致性,避免錯誤發生。
4 操作界面設計
VBA中也提供了窗體設置,為了簡化操作,給終端用戶提供簡明的界面,并結合目前的具體使用情況,設計圖示如下的窗體。只要用戶在CATIA中開啟了所需要的Product和Part文件,相應的文件就會自動加載在圖示的分類框中。
終端用戶只需要選擇需要的截面,設置目錄樹上放置截面結果的Geometrical Set名稱,選擇我們希望的線型顏色和線型寬度,等待計算機進行處理。系統相應的提示信息完成以后,主截面的加工便完成。然后根據需要,對相應的主截面進行有目的的進一步加工。
5 結論及探討
利用CATIA Automation完成了Product中各零部件信息的提取,并體現在主截面中,達到形式統一、共享。
CATIA提供了VB下的白動化接口,我們根據需要,開發各種不同的專項工具,提高工作效率。使用CATIA Automation進行相關的二次開發,并不需要特別專業的軟件知識。當然,也可以利用VC/C++開發更為專業的工具,同時優化其中的算法,提高運行速度。