馬偉,徐巖,皺宜勇,徐少林
(1.南京航空航天大學(xué) 機電學(xué)院,江蘇南京210016;2.中航工業(yè)昌河飛機工業(yè)(集團(tuán))有限責(zé)任公司,江西景德鎮(zhèn)333002)
加工仿真是虛擬制造的重要組成部分,其方法是通過建模軟件建立機床模型,并模擬機床的實際運動,以便事先發(fā)現(xiàn)生產(chǎn)過程中出現(xiàn)的錯誤、干涉等情況,進(jìn)而提高實際加工過程的安全性和可靠性[1]。隨著自動鉆鉚設(shè)備的廣泛普及,及加工仿真在自動鉆鉚技術(shù)上的應(yīng)用,極大的提高了生產(chǎn)效率和產(chǎn)品品質(zhì),縮短了產(chǎn)品的生產(chǎn)周期。而加工仿真的實現(xiàn)要靠運動仿真支撐,反映到自動鉆鉚技術(shù)上即如何實現(xiàn)產(chǎn)品的自動定位。對于平板件蒙皮的定位相對簡單,只需進(jìn)行x,y和z向的移動即可完成產(chǎn)品的定位,而對于非平板件,如單曲度和雙曲度蒙皮,就無法通過單純的移動來實現(xiàn)其精確定位了。另外,自動鉆鉚設(shè)備運動機構(gòu)復(fù)雜,加工過程中各運動組件易發(fā)生碰撞和干涉;大部分鉚接件上有眾多鉚接點,需要合理規(guī)范鉚接路徑,以減少無效的機構(gòu)運動和姿態(tài)調(diào)整[2]。
CATIA是法國達(dá)索(DASSAULT)公司的CAD/CAE/CAM一體化軟件,它為用戶開放了一定的接口,并提供了完整的一套工具,用來定制用戶所需的界面和對數(shù)模進(jìn)行操作等[3]。CATIA二次接口與外部程序通信的方式有兩種:進(jìn)程內(nèi)應(yīng)用程序方式和進(jìn)程外應(yīng)用程序方式[4-5]。
進(jìn)程內(nèi)應(yīng)用程序方式也稱為內(nèi)嵌機制,是指腳本與程序在同一進(jìn)程內(nèi)運行,這種方式主要通過宏(Macro)命令執(zhí)行,宏命令程序簡單易懂,但這種方式的人機交互性較差,不能適應(yīng)復(fù)雜的操作過程,用該方式開發(fā)的軟件也不夠穩(wěn)定。進(jìn)程外應(yīng)用程序被稱為外部開發(fā)機制,也是軟件二次開發(fā)者普遍使用的方法,利用該方式并結(jié)合CATIA提供的接口,可以實現(xiàn)CATIA中大部分功能,但這種方法操作相對復(fù)雜,需要二次開發(fā)者熟練掌握CATIA軟件并有過硬的編程能力。
通過對上述兩種方法的比較,考慮到所要實現(xiàn)功能的復(fù)雜性,以及需要保證所開發(fā)的軟件運行的穩(wěn)定性,因此采用進(jìn)程外應(yīng)用程序方式進(jìn)行二次開發(fā),即利用組件應(yīng)用架構(gòu)CAA(component application architecture)在CATIA原有功能基礎(chǔ)上進(jìn)行二次開發(fā)。
基于五軸數(shù)控托架自動定位方法其大體思路如下:1)建立五軸自動鉆鉚機床數(shù)模,并搭載有雙曲度蒙皮的托架;然后拾取制鉚點和待鉚接點等特征,計算出托架需要沿x和y旋轉(zhuǎn)的角度A和B;2)通過制鉚點和待鉚接點之間的坐標(biāo)差值,得到托架在x,y和z方向的位移;3)再利用以上計算的數(shù)據(jù)完成自動鉆鉚定位。
自動鉆鉚自動定位可以劃分為以下幾個模塊:確定曲面待鉚接點法式模塊、計算待鉚接點法式與制鉚頭軸線夾角模塊、計算待鉚接點與制鉚點距離模塊和運動仿真定位模塊,如圖1所示。
圖1 自動定位模塊劃分
1)確定曲面待鉚接點法式模塊
首先應(yīng)通過相應(yīng)的代理(CATFeatureImportAgent)選取的蒙皮和其上面的待鉆鉚點并把所選點和面的相關(guān)信息保存在相關(guān)鏈表和變量中;然后通過調(diào)用CreatePlaneTangent()函數(shù)獲待鉚接點與蒙皮的切平面,最后再調(diào)用Get-Normal()函數(shù)獲得所需要的法式;實現(xiàn)該模塊的部分源代碼如下:
CATIGSMPlaneTangent_var iPlane;
iPlane=piGSMFactory->CreatePlaneTangent(_pSurfaceObject,_pPointObject);//創(chuàng)建曲面上某點的切平面
CATISpecObject_variPlaneObject=iPlane;
……
CATPlane*iCATPlane=NULL;
HRESULT rc=iPlaneObject- >QueryInterface(IID_CATPlane,(void**)&iCATPlane);
CATMathVectoriNormal;//蒙皮上待鉚接點的法式
CATMathPoint iMathPoint;
iCATPlane- >GetNormal(iMathPoint,iNormal);
……
2)計算待鉚接點法式與制鉚頭軸線夾角模塊
在上一模塊求出了鉚接點的法式,在此模塊需要解決如何使得所求法式與制鉚頭軸線重合問題,因為二者不一定重合,其往往會有一個角度差。如何計算出托架旋轉(zhuǎn)所需的角度,使得鉚接點法式和制鉚頭二者重合是這個模塊需要解決的問題。解決這個問題的思路:對鉚接點法式進(jìn)行處理,使得該法式和z向的單位矢量方向相同,這樣便于判斷旋轉(zhuǎn)的方向;然后調(diào)用CATMathVector類下的函數(shù)GetAngleTo(),求出兩個向量之間的夾角。實現(xiàn)該模塊的部分源代碼如下:
CATMathVectoriVectorX;//與x旋轉(zhuǎn)有關(guān)的向量
double x01,y01,z01,y02,z02,x03,y03,z03;
iNormal.GetCoord(x01,y01,z01);//iNormal蒙皮上待鉚接點的法式
if(z01<0)
{
y02=-y01;
z02=fabs(z01);
iNormal.SetCoord(x01,y02,z02);
iNormal.GetCoord(x03,y03,z03);
}
CATMathVectoriRepNormal;//創(chuàng)建方向為Z正方向的參考法式
iRepNormal.SetCoord(0,0,1) ;
iNormal.GetCoord(x01,y01,z01);
iVectorX.SetCoord(0,y01,z01);
AngleX=iVectorX.GetAngleTo(iRepNormal,iRepNormal);//獲得沿x方向的轉(zhuǎn)角
//判斷x旋轉(zhuǎn)角度的正負(fù)
doubleValue_y=ioNormalx.Gety();
if(Value_y>=0)
{
AngleXX=AngleX;//把AngleX賦給全局變量AngleXX
}
else
{
AngleXX=-AngleX;
}
3)計算待鉚接點與制鉚點距離模塊
在確定待鉚接點法式和制鉚頭軸線重合的夾角后,需要計算待鉚接點和制鉚點之間在x,y和z方向之間的距離,通過移動托架使得兩點重合,其大體思路:因為待鉚接點和制鉚點不在一個坐標(biāo)系內(nèi),所以計算兩點在x,y和z方向的距離,需要計算出每個點在世界坐標(biāo)系中的坐標(biāo)值,然后對這兩點的坐標(biāo)值做差,即獲得所需的數(shù)值。實現(xiàn)該模塊的核心算法:點在世界坐標(biāo)系中的坐標(biāo)值=點所在part的坐標(biāo)系原點在世界坐標(biāo)系中的坐標(biāo)值+點在part坐標(biāo)系中的坐標(biāo)值。
4)運動仿真定位模塊
通過以上模塊的計算,得出托架運動所需的角度和位移,使用接口CATIMovable的SetAbsPosition()函數(shù),實現(xiàn)托架的旋轉(zhuǎn)和運動仿真。
1)應(yīng)用于仿真與干涉檢查
自動鉆鉚定位方法是實現(xiàn)自動鉆鉚運動仿真的必要條件,同時在運動仿真過程中,利用層次包圍盒法、布爾求交方法或空間分解法等可以實現(xiàn)干涉檢查。
2)應(yīng)用于自動編程
自動鉆鉚仿真的重點并不僅僅是實現(xiàn)干涉檢測,更重要的是在完成干涉檢測后能夠輸出應(yīng)用于數(shù)控機床的NC代碼,而自動定位方法能夠為生成NC代碼提供數(shù)據(jù)來源。
以雙曲度鉚接件為例,借以驗證定位的準(zhǔn)確性。先加載帶有雙曲度蒙皮的機床數(shù)模,然后利用所開發(fā)的軟件進(jìn)行定位運動仿真,軟件界面如圖2(a)、(b)所示。
圖2 軟件界面
通過對運動后數(shù)模待鉚接點與制鉚頭之間距離和角度的驗證,其定位距離誤差小于0.003mm,角度誤差小于0.001°,造成該誤差的原因是在數(shù)據(jù)處理時采取了近似值的原因,但由于誤差較小,滿足設(shè)計的要求。程序的模塊化比較清晰,便于更深層次的研究探索。
介紹了基于CATIA的自動鉆鉚定位方法,該方法可以快速準(zhǔn)確的實現(xiàn)托架定位,為運動仿真及干涉檢測做好鋪墊,同時也為NC代碼的生成提供了數(shù)據(jù)來源。自動鉆鉚定位方法不僅適用于平板件,而且也適用于單曲度和雙曲度件,大大縮短了產(chǎn)品設(shè)計和加工的周期,達(dá)到節(jié)約生產(chǎn)成本提高生產(chǎn)效率的目的。
[1]董伊鑫,席平.基于二次開發(fā)的五坐標(biāo)數(shù)控機床運動仿真系統(tǒng)[J].機械工程師,2005(3):41-43.
[2]殷俊清,王仲奇,康永剛,等.仿真技術(shù)在飛機自動鉆鉚中的應(yīng)用[J].航空制造技術(shù),2009(24).
[3]蔡錦達(dá),韓康瑋.基于CATIA的數(shù)控工作臺建模的二次開發(fā)[J].微計算機信息,2008(16).
[4]胡挺,吳立軍.CATIA二次開發(fā)基礎(chǔ)[M].北京:電子工業(yè)出版社,2006.
[5]廖炎平,劉莉,王嘉博.無人機外形參數(shù)化建模及CATIA二次開發(fā)[J].彈箭與制導(dǎo)學(xué)報,2011(5).