0 引言
參數(shù)化設(shè)計(jì)是計(jì)算機(jī)輔助設(shè)計(jì)中的一項(xiàng)重要的技術(shù),是初始設(shè)計(jì)和多種方案比較的有效手段。在機(jī)翼結(jié)構(gòu)設(shè)計(jì)的選型階段,需要對幾種不同方案進(jìn)行對比研究。翼面結(jié)構(gòu)建模過程中往往需要對一些元件位置、尺寸等進(jìn)行調(diào)整,但后期修改模型的工作十分復(fù)雜,有時(shí)甚至無法修改;翼面結(jié)構(gòu)中相同的元件(如長桁、翼肋等)有多個(gè),這些元件的建模方式雖然完全相同,但結(jié)構(gòu)設(shè)計(jì)人員仍要做大量重復(fù)性的工作。從縮短設(shè)計(jì)周期的角度考慮,參數(shù)化建模技術(shù)作為一種先進(jìn)的設(shè)計(jì)方法可以很好的解決翼面結(jié)構(gòu)建模中遇到的難題。
首先,將翼面結(jié)構(gòu)主要元件的布局,尺寸設(shè)定為參數(shù),通過對參數(shù)的重置,實(shí)現(xiàn)對各元件布局、尺寸的重新調(diào)整;其次,程序語言可使翼面結(jié)構(gòu)復(fù)雜瑣碎的建模過程模塊化,方便管理且簡化了大量復(fù)雜的建模操作,使結(jié)構(gòu)設(shè)計(jì)人員能夠把更多的精力放在設(shè)計(jì)本身。因此參數(shù)化建模可以提高翼面結(jié)構(gòu)建模的效率和質(zhì)量。如何快速建立滿足各種方案設(shè)計(jì)、預(yù)研要求的翼面結(jié)構(gòu)數(shù)學(xué)模型,已成為工程領(lǐng)域急需解決的難題;谟(jì)算機(jī)輔助設(shè)計(jì)軟件的二次開發(fā)技術(shù)為飛機(jī)翼面結(jié)構(gòu)參數(shù)化設(shè)計(jì)方法提供了一種有效的途徑。
本文研究如何應(yīng)用CATIA的Automation二次開發(fā)技術(shù)和C++、VB語言混合編程實(shí)現(xiàn)飛機(jī)翼面結(jié)構(gòu)的參數(shù)化設(shè)計(jì)。要自動(dòng)生成翼面結(jié)構(gòu)模型,必須要找到能夠準(zhǔn)確描述翼面結(jié)構(gòu)布局和各元件的位置、尺寸的參數(shù)。其中機(jī)翼的平面控制參數(shù)既可以是用戶手動(dòng)輸入,也可以從總體模型讀取。各組成元件的尺寸、位置參數(shù)從軟件界面輸入,翼型數(shù)據(jù)從文件讀取。得到這些參數(shù)后,結(jié)合CATIA的建模規(guī)范,程序可以自動(dòng)生成翼面結(jié)構(gòu)CATIA三維模型。參數(shù)化創(chuàng)建的三維CATIA模型既可以計(jì)算出面積、體積等幾何特性,方便查看截面幾何信息及快速生成相應(yīng)工程圖,也可以提供給各個(gè)設(shè)計(jì)部門直接使用。同時(shí)在工程實(shí)踐中,特別是航空航天復(fù)雜零件的設(shè)計(jì)中,使用CATIA建模生成中間文件來進(jìn)行有限元分析的方法也具有很強(qiáng)的現(xiàn)實(shí)意義。文章最后以簡化后的某型飛機(jī)翼面結(jié)構(gòu)作為實(shí)例,證明了應(yīng)用CATIA二次開發(fā)方法實(shí)現(xiàn)翼面結(jié)構(gòu)參數(shù)化設(shè)計(jì)的可行性。
1 翼面結(jié)構(gòu)元件的參數(shù)化描述
1.1 機(jī)翼平面形狀及其組成元件站位信息的參數(shù)化描述
機(jī)翼平面形狀的控制參數(shù)有半展長L、前緣后掠角xo、根弦長b0、尖弦長b1。
以圖1中所示機(jī)翼平面形狀為例,假設(shè)機(jī)翼為雙梁式,長桁等百分比布置(上、下翼面的個(gè)數(shù)可不同),翼肋為順氣流布置,這些元件的個(gè)數(shù)、位置均以參數(shù)形式給出,確定這些參數(shù)后就可以唯一確定機(jī)翼的平面形狀以及各元件的站位信息。
圖1 機(jī)翼平面參數(shù)
1.2 翼面結(jié)構(gòu)元件截面形狀的參數(shù)化描述
1.2.1 梁的設(shè)計(jì)
翼梁由腹板和緣條組成,腹板用于承受扭矩引起的剪流和機(jī)翼的剪力,緣條用于承受彎矩引起的軸向力,受拉伸和壓縮。
現(xiàn)代飛行器翼面普遍應(yīng)用腹板式梁,梁緣條以承受軸向拉壓方式承彎,腹板承剪。腹板式梁的控制參數(shù)有梁的高度、梁緣條的截面尺寸、梁腹板的截面尺寸。從剖面形狀看,梁腹板的截面多為矩形,梁緣條有開口型和閉口型。梁緣條的截面形狀有多種形式可供選擇,其參數(shù)描述如圖2所示。
1.2.2 壁板的設(shè)計(jì)
蒙皮起傳遞氣動(dòng)力和維持機(jī)翼外形的作用,現(xiàn)代飛行器翼面一般采用承力蒙皮,蒙皮較厚。設(shè)計(jì)時(shí)根據(jù)翼肋的站位,蒙皮沿展向,以翼肋緣條為邊界分段變厚度,每一段厚度值自己設(shè)定。
長桁的主要功能是承受機(jī)翼彎矩和局部空氣動(dòng)力載荷引起的軸向力和剪力,此外在縱向起支持蒙皮的作用。長桁支承在翼肋上,相當(dāng)于一根處于縱向和橫向彎曲作用下的多支點(diǎn)梁柱。長桁的設(shè)計(jì)與梁緣條設(shè)計(jì)方法相同,布置方式分為等百分比布置、給定角度布置、平行于前梁布置、平行于后梁布置。
圖2 梁緣條的截面參數(shù)
1.2.3 翼肋的設(shè)計(jì)
普通肋用于維持機(jī)翼剖面形狀,并傳遞初始局部氣動(dòng)載荷。同時(shí)翼肋還有支持蒙皮和長桁的作用,從而提高加筋壁板的抗失穩(wěn)能力。加強(qiáng)肋傳遞來自其它部件傳來的集中載荷或?qū)⒛撤N形式的分布剪流轉(zhuǎn)換成另一種形式的分布剪流。
翼肋構(gòu)造形式有多種,在初步設(shè)計(jì)階段,以腹板式作為簡化,翼肋緣條和腹板的設(shè)計(jì)方法與腹板梁的設(shè)計(jì)方法相同,參數(shù)化設(shè)計(jì)時(shí),根據(jù)翼型數(shù)據(jù)與當(dāng)?shù)叵议L,繪制各段翼肋的輪廓。
2 Visual Studio環(huán)境下的CATIA二次開發(fā)
CATIA Automation二次開發(fā)方法最直接的應(yīng)用就是簡單的自動(dòng)繪圖,在Visual Studio環(huán)境下,基于COM(component object model)的OLE(object liking and embedding)自動(dòng)化技術(shù)對開發(fā)語言沒有限制,為混合編程下的二次開發(fā)技術(shù)提供可能,且能使一些復(fù)雜問題得到簡化。而CATIA CAA(component application architecture)二次開發(fā)方法不適用于自動(dòng)繪圖,實(shí)現(xiàn)方法也較復(fù)雜,并且對Visual Studio的版本也有限制,但CAA方法功能強(qiáng)大,可以為其他的開發(fā)方法提供借鑒。本文使用CAA Automation方法,在C++和VB語言下,介紹在Visual Studio 2010、CATIA V5R18環(huán)境下應(yīng)用CATIA Automation技術(shù)的主要步驟,通過混合編程,實(shí)現(xiàn)翼面結(jié)構(gòu)的快速建模。
2.1 CATIA類庫的引入
在Visual Studio環(huán)境下,使用#import"…[.tlb"high—method prefix("Catia")rename—namespace("CAT")逐個(gè)引入CATIA安裝目錄下的93個(gè)“.tlb”庫文件。由于CATIA類庫中的函數(shù)名可能與C++標(biāo)準(zhǔn)庫、Access數(shù)據(jù)庫及Office類庫的函數(shù)名相沖突,因此引入CATIA類庫時(shí)用high—method—prefix("Catia")聲明。此外,在CATIA類庫引入的過程中,其自身多個(gè)類庫的函數(shù)名沖突,需要調(diào)整類庫的引入順序并把相沖突的類庫放在不同的命名空間下。編譯成功后,會(huì)在debug目錄下生成對應(yīng)的“tlh”和“tli”文件。
VB環(huán)境下只需在“工程一引用”選項(xiàng)中把所需CATIA類庫勾選即可。
2.2 機(jī)翼平面參數(shù)及翼型數(shù)據(jù)的讀取
考慮到某些CATIA的接口函數(shù)使用安全數(shù)組作為形參,而使用C++語言Automation做二次開發(fā)時(shí)不清楚如何構(gòu)造相應(yīng)的安全數(shù)組,且VB語言中安全數(shù)組的使用方法實(shí)現(xiàn)起來較為簡單,故使用VB語言編寫可以讀取總體模型信息的動(dòng)態(tài)鏈接庫(DLL),使用C++調(diào)用的方式實(shí)現(xiàn)模型讀取功能。
程序首先利用曲面設(shè)計(jì)下的AddNewlntersection()函數(shù)來剖分修型后的飛機(jī)總體模型機(jī)翼段,得到能夠描述翼型樣條曲線的控制點(diǎn),然后將這些點(diǎn)拆分、重命名,再按名字查找特征并讀取點(diǎn)的坐標(biāo)值。按名字查找特征時(shí)不能使用FindObjectByName()函數(shù),它不適用有特征重名的情況,應(yīng)使用
CATIA.ActiveDocurnent.Selectio n_Search"Name=obj.1,all"方法。
獲取機(jī)翼某段翼肋剖面上點(diǎn)的類型和個(gè)數(shù)的方法為:
CATIA.ActiveCbcmnent.Selection.Search
(PointName)
NmnOfpointsSelected=selectionPoint.Count2
Set selectedElementl=selectionPoint.Item2(1)
DetectPointType=selectedElementl.Type()
用TheSPAWorkbench.GetMeasurable方法獲取前緣后掠角
獲取機(jī)翼某段翼肋剖面上的HbridShapePointCoord類型點(diǎn)坐標(biāo)的方法為:
Set SelectedPbint(i)=CATIA.ActiveDocument.
Selection.Item2(i+1).Value
SelectedPoint(i).GetCoordimtes CoordTmp
2.3 翼面結(jié)構(gòu)模型的參數(shù)化創(chuàng)建
創(chuàng)建CATIA應(yīng)用的代碼如下
HRESULT hr=S_OK;
Hr=m _CATIA.GetActiveObject("CATIA.Application");
if(FAILED (hr)){
hr=m CATIA.CreateInstance("CATIA.Application");
)
建立CATIA繪圖環(huán)境,新建Part,啟用混合設(shè)計(jì)的過程是:
DocumentsPtr documents_WStru;
documents_WStru=m_CATIA→GetDocuments();
BSTR AddPart=_com_util::ConvertStringToBSTR("Part_WStru");
PartDocumentPtr partDocument_WStru;
partDocument_WStru=documents_WStru→CatiaAdd(&AddPart);
PartPtr WingStru=partDocument_WStru→GetPart();
WingStru→CatiaUpdateObject(hybridBodySkin);
將繪制翼面結(jié)構(gòu)的梁、長桁、蒙皮、翼肋所用到的點(diǎn)、線、面幾何特征分別放在相應(yīng)幾何圖形集下,例如蒙皮幾何圖形集的創(chuàng)建方法為:
HybridBodiesPtr hybridBodiesSkin=WingStru→HybridBodies;
HybridBodyPtr hybridBodySkin=hybridBodiesSkin→CatiaAdd();
BSTR SkinName=_com_util::ConvertStringToBSTR ("SkinDatum");
hybridBodySkin→PutName(&SkinName);
WingStru→CatiaUpdateObject(hybridBodySkin);
需要說明的是,在草圖平面創(chuàng)建樣條線時(shí)需要?jiǎng)?chuàng)建安全數(shù)組。在安全數(shù)組中存儲(chǔ)控制點(diǎn)類型的指針,然后用CreateSpline()函數(shù)創(chuàng)建樣條線,再用InsertControl-PointAfter()方法把ControlPoint2D類型的點(diǎn)附加到樣條上。還可以用AddNewSpine()方法直接創(chuàng)建空間曲線。利用這兩種方法生成的樣條曲線都能通過loft命令生成代表蒙皮的厚曲面,蒙皮可沿展向分段變厚度。
模型樹的PartBody下包含梁、長桁、肋等元件的實(shí)體造型。先在草圖平面繪制元件的截面形狀,然后生成實(shí)體,其方法如下
3 實(shí)例
機(jī)翼的平面形狀可以是平直的(矩形、梯形)、后掠形、三角形。以上述機(jī)翼結(jié)構(gòu)參數(shù)化為基礎(chǔ),表1給出了機(jī)翼結(jié)構(gòu)的平面尺寸數(shù)據(jù),由這些數(shù)據(jù)程序可以繪制出機(jī)翼的平面輪廓。其中,半展長L為機(jī)翼外漏部分的展長。
表1 機(jī)翼平面尺寸
表2列出了機(jī)翼沿展向各段的站位值,即翼肋的位置,建模時(shí)蒙皮沿展向,以翼肋為分解,每段可設(shè)計(jì)成不同厚度,采用AG11翼型。
表2 站位信息
實(shí)例采用雙梁結(jié)構(gòu),上、下蒙皮等百分比布置,表3展示了前梁和主梁位置及長桁的布置信息。
表3 翼梁、長桁元件的個(gè)數(shù)及位置
為簡化以上實(shí)例數(shù)據(jù),翼梁、長桁、翼肋等元件的截面假設(shè)為直線。通過運(yùn)行翼面結(jié)構(gòu)快速設(shè)計(jì)軟件系統(tǒng),程序調(diào)用CATIA軟件自動(dòng)生成翼面結(jié)構(gòu)的三維模型。圖3所示翼面結(jié)構(gòu)CATIA數(shù)模為該軟件系統(tǒng)依據(jù)上述參數(shù)自動(dòng)創(chuàng)建完成。
4 討論
軟件通過用戶輸入或模型讀取機(jī)翼平面參數(shù),手動(dòng)設(shè)置翼面各組成元件的個(gè)數(shù)、位置、截面控制參數(shù),通過CATIA Automation二次開發(fā)方法,快速建立翼面結(jié)構(gòu)模型。在滿足翼面結(jié)構(gòu)設(shè)計(jì)精度的同時(shí),參數(shù)化設(shè)計(jì)手段可以大大提高模型的生成和修改速度。軟件在開發(fā)過程中已經(jīng)集成了一些工程算法。這些算法通過合理地分配彎矩,結(jié)合穩(wěn)定性、最大應(yīng)力等約束條件的限制進(jìn)行翼面結(jié)構(gòu)方案設(shè)計(jì)。后續(xù)工作可進(jìn)一步改進(jìn)和完善這些算法,開發(fā)出既滿足設(shè)計(jì)要求,又能快速建立翼面結(jié)構(gòu)模型的軟件,并通過機(jī)翼結(jié)構(gòu)方案設(shè)計(jì)算例進(jìn)行驗(yàn)證。本翼面結(jié)構(gòu)快速設(shè)計(jì)軟件具有很明確的操作步驟,便于設(shè)計(jì)人員在未來飛機(jī)設(shè)計(jì)中使用。
圖3 生成的翼面結(jié)構(gòu)模型
5 結(jié)束語
以上算例表明,在對翼面結(jié)構(gòu)元件的參數(shù)化描述后,利用CATIA Automation二次開發(fā)方法可以自動(dòng)生成翼面結(jié)構(gòu)模型。參數(shù)化設(shè)計(jì)方法實(shí)現(xiàn)了翼面結(jié)構(gòu)主要元件的快速布置和各元件尺寸的快速設(shè)計(jì),提升了翼面結(jié)構(gòu)的設(shè)計(jì)能力和設(shè)計(jì)水平,具有現(xiàn)實(shí)的工程意義和使用價(jià)值。
應(yīng)用CATIA Automation二次開發(fā)方法能夠快速、準(zhǔn)確的建立參數(shù)化的翼面結(jié)構(gòu)模型。通過CATIA提供的二次開發(fā)接口,加上C++語言強(qiáng)大的編程效率和運(yùn)行效率,幾乎所有的CATIA建模功能都可以用二次開發(fā)方法實(shí)現(xiàn)。參數(shù)化設(shè)計(jì)作為未來設(shè)計(jì)發(fā)展的方向,其集成化、模塊化的設(shè)計(jì)思想符合未來發(fā)展趨勢,可為飛機(jī)結(jié)構(gòu)設(shè)計(jì)工作提供有力的設(shè)計(jì)手段。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:基于CATIA二次開發(fā)的翼面結(jié)構(gòu)參數(shù)化設(shè)計(jì)
本文網(wǎng)址:http://www.oesoe.com/html/solutions/14019312021.html