

摘 要:在飛機結(jié)構(gòu)設計過程中,需要對飛機結(jié)構(gòu)慣性載荷進行處理,將飛機結(jié)構(gòu)零件按一定尺寸進行質(zhì)量分塊,分別給出各質(zhì)量分塊的重量及重心坐標等參數(shù),此項操作常在飛機設計軟件CATIA中進行,由于飛機全機結(jié)構(gòu)尺寸相對于小塊質(zhì)量體尺寸過大,這就導致小塊質(zhì)量體數(shù)量過大,手工進行處理較為繁雜,基于VBA的CATIA二次開發(fā)技術(shù)能夠?qū)崿F(xiàn)小塊質(zhì)量體自動劃分,提高設計效率。
關(guān)鍵詞:CATIA;VBA;飛機結(jié)構(gòu);質(zhì)量分塊
1 質(zhì)量分塊方案
在飛機設計過程中,一般在飛機結(jié)構(gòu)零件設計完成后,通過CATIA中慣量測量工具,可提取出飛機零、組件的重量、重心坐標,基于上述手段,可以將零件質(zhì)量分塊后的各質(zhì)量分塊重量、重心坐標導出,進而準確計算每一質(zhì)量塊的慣性載荷。
實際操作中,通過以下步驟將零件進行質(zhì)量分塊:
1)在空間定位一點1,點1一般可選為零件外廓頂點。
2)將XY、YZ、ZX平面用平面/平行通過點命令偏移,形成平面1、平面2、平面3。
3)以平面1、平面2、平面3為基準,用平面/偏移平面命令進行平面前后偏移(假設偏移量25mm),偏移后的平面為平面4、平面5、平面6、平面7、平面8、平面9。
4)以平面4-9為基準,用分割命令切割零件(注意平面方向),形成一質(zhì)量塊(質(zhì)量塊尺寸50mm×50mm×50mm)。
5)判斷切割后零件幾何體體積是否不為零,若為零則跳至8)。
6)復制零件幾何體。
7)選擇性粘貼/按結(jié)果將復制的零件幾何體粘貼在零件中。
8)將點1移動一個質(zhì)量塊棱長50mm,由1)重新開始執(zhí)行。
9)重復5)-7)操作,直至零件完成質(zhì)量分塊。
10)用“測量慣量/導出”命令將質(zhì)量分塊的重量、重心坐標導出成TXT文檔。
11)新建Excel文檔,用“數(shù)據(jù)/自文本”命令,將TXT文檔導入Excel,即為所需質(zhì)量分塊重量、重心坐標數(shù)據(jù)。
以立方體為例,上述過程如下圖1所示:
在實際操作中,因飛機結(jié)構(gòu)各零件選用材料不一致,為了簡化操作流程,將材料相同的零件復制“零部件幾何體”至同一Part文檔下,然后再將“幾何體”裝配至“零件幾何體”下,形成一個整體零件,再按上述流程進行操作,可以不必每個零件都進行一次質(zhì)量分塊,減少工作量;假設質(zhì)量分塊尺寸為w,零件外廓尺寸Xmm×Ymm×Zmm,則理論上需要分割數(shù)量為X/w×Y/w×Z/w后取整數(shù)。
2 CATIA二次開發(fā)
2.1 CATIA二次開發(fā)簡介
所謂的CATIA二次開發(fā),就是利用CATIA系統(tǒng)提供的API接口進行程序設計開發(fā),拓展原生CAD軟件功能,實現(xiàn)CAD軟件功能個性化和操作自動化,CATIA提供了兩種編程API,一種是Automation API,采用組件對象歐美系技術(shù)把相關(guān)模塊接口封裝在獨立的組件內(nèi),另一種是C++/Java API,在C++的快速集成環(huán)境(RADE)中進行程序設計。一般把基于Automation API的CATIA二次開發(fā)系統(tǒng)稱為CATIA VBA二次開發(fā),將基于C++/Java API的CATIA二次開發(fā)系統(tǒng)成為CATIA CAA二次開發(fā),由于VBA能夠?qū)崿F(xiàn)窗體化操作,便于執(zhí)行質(zhì)量分塊操作,所以本文基于VBA進行CATIA二次開發(fā)。
2.2 VBA界面設計
根據(jù)上文中描述的零件質(zhì)量分塊過程,設計VBA程序界面,其中“選擇文檔”用于對需要進行質(zhì)量劃分的零件Part文檔進行選定,“測量定位”中“X、Y、Z”最高、最低點坐標用于描述零件的外廓在坐標系中的值,“質(zhì)量分塊尺寸”中“棱長”用來表示分塊后各質(zhì)量塊的最大外廓尺寸。
2.3 程序腳本編寫
編程訪問CATIA對象有兩種腳本,一種是進程內(nèi)的腳本,另一種是進程外的腳本。
進程內(nèi)的腳本是由CATIA的腳本引擎來解析執(zhí)行宏腳本命令的。 在CATIA軟件打開后,在CATIA窗口中點擊“工具->宏->啟動錄制”,然后打開需要進行質(zhì)量分塊的零件Part文檔,執(zhí)行上述操作步驟1)-7),操作完成后點擊停止錄制按鈕,點擊“工具->宏->宏…->編輯”命令可以察看生成的進程內(nèi)的腳本。
進程外訪問即指腳本運行不由CATIA來調(diào)用,CATIA作為一個OLE自動化服務器,外部程序通過COM接口來訪問CATIA內(nèi)部對象,質(zhì)量分塊程序的進程外腳本主要實現(xiàn)進程內(nèi)腳本的循環(huán)操作。可以在VBA程序中嵌入訪問CATIA的程序,進程外的腳本不同于進程內(nèi)腳本,外部程序首先要連接到CATIA上,如果CATIA沒有啟動還必須先啟動它,VBA中通過以下腳本實現(xiàn)CATIA的連接以及啟動:
Dim CATIA As Object
On Error Resume Next
Set CATIA = GetObject(, “CATIA.Application”)
If Err.Number <> 0 Then
Set CATIA = CreateObject(“CATIA.Application”)
CATIA.Visible = True
End If
On Error GoTo 0
進程內(nèi)腳本實現(xiàn)零件的質(zhì)量分塊操作,進程外腳本實現(xiàn)質(zhì)量分塊定位點的循環(huán)操作。
3 CATIA質(zhì)量分塊的實現(xiàn)
1)本文中以飛機結(jié)構(gòu)中常見的機加框零件為例進行演示,啟動VBA程序,輸入相對于原點坐標的零件“X、Y、Z”最大最小值,棱長尺寸定為50mm。
2)點擊開始,程序自動運行,完成框零件質(zhì)量分塊,如下圖2所示:
(3)用CATIA中“測量慣量”工具,導出質(zhì)量分塊重量、重心TXT文檔數(shù)據(jù)至本地,新建EXCLE文檔,數(shù)據(jù)->自文本,導入TXT文檔數(shù)據(jù),從導入數(shù)據(jù)可知VBA程序共將框分割成405塊,用時185s。
4 結(jié)束語
本文介紹了CATIA VBA二次開發(fā)概念,并介紹了結(jié)構(gòu)質(zhì)量分塊的必要性及方法,在此方法的基礎上,結(jié)合CATIA VBA二次開發(fā)工具,實現(xiàn)了結(jié)構(gòu)零件質(zhì)量分塊的自動化。從質(zhì)量分塊結(jié)果可以看出,采用CATIA VBA二次開發(fā)可以大大降低工作的繁雜性,提高工作效率,縮短飛機設計周期。在CATIA VBA二次開發(fā)基礎上,可以使飛機設計流程中一些重復且繁雜的工作自動化,解放設計人員,提高設計質(zhì)量。
參考文獻
[1]胡挺,吳立軍.CATIA二次開發(fā)技術(shù)基礎[M].北京:電子工業(yè)出版社,2006.
作者簡介
詹雷(1987-),男,漢族,陜西咸陽人,工程師,從事飛機結(jié)構(gòu)設計方面的研究。