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