發布日期:2022-04-27 點擊率:38
摘要:針對XK714 銑削系統,以及AutoCAD二次開發工具ObjectARX,介紹了一種數控銑削過程計算機模擬的實現方法,采用面向對象的程序設計方法,對刀具軌跡動態模擬技術進行了分析,在數控自動編程的基礎上,詳細介紹了數控銑削仿真模塊的實現方法,實現了可視化圖形交互式數控銑削的模擬。
關鍵詞:銑削模擬;數控加工;面向對象的程序設計;刀具軌跡
數控銑床的應用越來越廣泛,數控加工的整個過程是通過NC 加工程序來控制的。無論是手工編程還是自動編程所得到的程序都會存在一定的錯誤,傳統方法采用試切法來驗證程序是否正確,即用木模、蠟模或塑料模試切以進行檢驗。而在計算機環境下,利用數控模擬方法進行數控程序的正確性檢驗是一種新的方法。通過對零件加工過程的模擬,可以檢查數控代碼的正確性,還可以檢查加工過程中刀具與工件、機床及夾具之間是否有干涉現象。加工過程模擬可以比較真實地反映出實際的切削加工過程。在計算機屏幕上以可視化圖形方式模擬NC 加工過程,查出程序中的錯誤并加以修改,可以節省大量費用和時間。所以,采用NC 圖形的刀具軌跡模擬,可以提高編程效率.
本模擬系統為本人開發的NCCODE 數控自動編程系統的一部分,在XK714 數控銑床的實際應用中,證明了它的有效性和正確性。
1 開發平臺及工具
本系統在PC 機上運行,選用當今流行的Windows 98 或Windows XP 作為軟件的開發和運行的操作系統。以Auto-CAD 2000 為平臺,采用面向Microsoft 公司的通用軟件開發平臺Visual C + + 的開發工具ObjectARX,該工具支持可視化編程和面向對象技術,是基于MFC 開發的Windows 應用程序。
2 數控銑削模擬系統的結構及流程
數控程序加工模擬系統是CAD/ CAM 集成系統中一個重要組成部分,開發的CAD/ CAM 集成系統CCODE 中,首先根據零件輪廓的圖形實體直接生成數控加工代碼,然后通過該模擬系統進行模擬檢驗。模擬有二維動畫顯示模擬和三維實體幾何模擬。本系統采用二維動畫顯示模擬,其結構如圖1 所示,開發流程如圖2 所示。這種模擬的特點是二維的,與二維視圖的工件圖紙一樣,比較簡單方便,由于二維動畫顯示比較易行,因此應用廣泛。在求算平面刀位軌跡、優化刀具運動軌跡時比較有效;對于一些三維模擬分解為二維模擬來解決也是有意義的。
3 刀具軌跡模擬數據的獲取及實現
為了實現由AutoCAD二維圖形中描述零件輪廓圖形,實體的刀具軌跡模擬必須獲取刀具軌跡的信息,刀具軌跡信息由AutoCAD圖形數據庫中描述零件輪廓的圖形實體獲取。在NCCODE數控自動編程系統中,把零件輪廓的圖形實體連接成一條多段線(可封閉也可不封閉)。多段線是AutoCAD中特殊的圖形實體,它是由一系列首尾相連的直線和圓弧組成,在圖形數據庫中以頂點(即相連點)子實體的形式保存信息。與位置、形狀有關的重要信息有兩個:一是頂點(Vertex)坐標數值,保存在10 組碼中;二是頂點凸度(Bulge),保存在42 組碼中。多段線的起點即就是刀具的起點,加工過程中所需的終點坐標均可由多段線各頂點的數據確定,根據這些數據即可生成數控加工代碼。同樣,根據這些數據可以模擬刀具軌跡.
3.1 直線部分的數據
鑒于直線線段是多段線組成部分,但在實體多段線內,子實體不是線段,而是頂點,而且多段線的直線頂點只保存了直線起點標志,終點坐標則都保存在下一個頂點中。利用ObjectARX 函數可以很方便地知道多段線各頂點的坐標值和凸度值,這樣就得到了零件輪廓線上直線的起點、終點坐標等幾何信息.
AutoCAD中約定:凸度為0 是直線的頂點。具體方法如下:
if(bulge == 0) //判斷是否直線
{
ads name e0,e1;
acdbGetAdsName(e0,vertexObjId);
struct resbuf *ed,*cb;//定義結果緩沖區鏈表指針
acdbEntNex(te0,e1);
if((ed=acdbEntGe(e1))!=NULL)
{
for(cb=ed;cb!=NULL;cb=cb->rbnext)
if(cb->restype==10)
{
P2[Y]=2*(cb - > resval.rpoint[Y]-pt[Y])
P2[Y]=cb - > resval.rpoint[X]-pt[X] //直線的第二頂點的數據信息
numb ++ ;
}
acutRelRb(ed);
}
}
3.2 圓弧部分的數據
多段線的圓弧頂點都只保存了圓弧的起點標志,終點坐標則都保存在下一個頂點中。利用ObjectARX函數可以很方便地知道多段線各頂點的坐標值和凸度值,這樣就得到了零件輪廓線上圓弧的起點、終點、半徑、圓心等幾何信息.AutoCAD中約定:凸度不為0 是圓弧的頂點,凸度為正表示逆時針圓弧,凸度為負表示順時針圓弧。具體方法如下:
acedOsnap(ptm,"center",ptcen);/ / 獲得圓心的坐標
ads name e011, e111;
acdbGetAdsName(e011, vertexObjId);
struct resbuf *ed,*cb;/ / 定義結果緩沖區鏈表指針
ads point pst1,pst10,opst1,ptcen1,ptm1;
ads real rads1,length1;
ads point-set(cb - > resval.rpoint, pst1);/ / 獲得PST 點為圓弧的端點
acdbEntNext(e011, e111);
if((ed = acdbEntGet(e111))! = NULL)
{
for(cb = ed;cb! = NULL;cb = cb - > rbnext)
if(cb - > restype = = 10)
{
ads point-set(cb - > resval.rpoint,pst10);
opst1[X]=(pst1[X]+ pst10[X])/ 2;
opst1[Y]=(pst1[Y]+ pst10[Y])/ 2;
opst1[Z]=(pst1[Z]+ pst10[Z])/ 2;
rads1 = acutAngle(pst1,pst10);
length1 = acutDistance(pst1,pst10);
acutPolar(opst1,rads1 - 3.1415926 / 2,bulge*length1(/ 2),ptm1);
acedOsnap(ptm1,"center",ptcen1);/ / 獲得圓心的坐標
}
3.3 刀具軌跡模擬的實現
根據上面介紹的方法,獲得刀具軌跡數據,然后根據ARX函數acedCommand(RTSTR,“INSERT”RTSTR,刀具圖塊名,RTPOINT,P1,RTREAL,scale,RTSTR,“ ”,RTREAL,..),如果為直線,則在兩點間插入若干個以刀具半徑為圓的圖塊,數目的多少與進給速度有關,數目越多,則切削速度越快,反之,則切削速度慢;如為圓弧,則在該圓弧段上插入刀具圖塊,但要區別順圓和逆圓,以區別切削方向。
4 實例
以銑削模擬的一個實例來說明,在NCCODE 界面下當生成數控加工代碼后,按下“模擬”按鈕,輸入正確的模擬參數,單擊“確定”按鈕,彈出如圖3 所示對話框,然后單擊模擬后,模擬效果如圖4 所示。
5 結論
利用計算機圖形交互界面,采用二維模擬技術及面向對象的程序設計方法,以VC++和AutoCAD功能強大的開發工具ARX,對描述刀具軌跡的圖形實體進行處理,獲取所需數據,對銑削系統的刀具軌跡進行模擬,直觀、快速、正確地驗證數控代碼,且操作簡單、方便,提高了數控機床的工作效率。在XK714數控銑床上應用,取得了良好的效果,同時,該系統還可以用于學生的教學中。
參考文獻:
[1] 王先逵,段廣洪,吳丹。計算機輔助制造[M]。北京:清華大學出版社,1997.
[2] 范炳炎。數控加工程序編制[M]。北京:航空工業出版社,1990.
[3] 李福生。數控機床程序編制--手工編程[M]。北京:機械工業出版社1978.
[4] Michael J.Young。Visual C + + 6.0 從入門到精通[M]。北京:電子工業出版社,2001.
[5] 馮辛安,葛巧秦。CAD/ CAM 技術概論[M]。北京:機械工業出版社,2000.
[6] 余承飛,方勇。AutoCAD2000 二次開發技術[M]。北京:人民郵電出版社,1999.
[7] 劉良華,朱東海。AutoCAD2000 ARX 開發技術[M]。北京:清華大學出版社,1999.
[8] 老大中,趙吉強。AutoCAD2000 ARX 二次開發實例精粹[M] 北京:國防工業出版社,2001.
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV