4 后置處理
后置處理是一個文本編輯處理過程,其作用是將提取的圖形信息根據(jù)指定數(shù)控機床的特點及規(guī)定的格式進行分析、判斷和處理,轉化為機床能夠識別的NC代碼并輸出。圖5為后置處理流程圖。
圖5 后置處理流程圖
4.1 圓的直線擬合插補算法
圓方程的一般表示形式:
x2+y2=r2
根據(jù)擬合插補精度的要求,給定擬合誤差δ=0.001,而圓經(jīng)過n等分后的擬合誤差δ'為
先令n=2,判斷δ和δ'的關系,如果δ≥δ',滿足誤差要求,則不用細分;如果δ<δ',不滿足擬合誤差要求,則對圓進一步細分,直到滿足δ≥δ'的誤差要求。當n等分滿足誤差要求,根據(jù)等分角度可依次求出擬合線條的端點。
由于圖形數(shù)據(jù)多少具有一定的不確定性,因此,在對圖形數(shù)據(jù)中的特征點提取時采用動態(tài)鏈表的存儲方式,這樣每增加一組數(shù)據(jù)只需要相應申請一個鏈表節(jié)點就可以,而且在處理的過程中,鏈表也比數(shù)組更為方便一些,不需要移動數(shù)據(jù)的存儲地址、改變相應指針的單元的指向就行。
4.2 優(yōu)化加工路徑
由于DXF文件中圖形元素是以設計人員繪制圖元先后順序為依據(jù)記錄的,使得對DXF解析獲得的各圖元信息在Clist鏈表中成為無序性排列,如果對得到的數(shù)據(jù)不加處理,依次將其一個個地存入鏈表,導致按此順序轉化進行的繪圖過程中圖元路徑的隨機性和無序性,使得工作過程中的無效行程大大增加。在數(shù)控加工的時候可能會增加很多不必要的起落刀次數(shù)。為了優(yōu)化加工路徑,減少起落刀次數(shù),這里對讀取的圖元數(shù)據(jù)采用插入排序的設計思想。
首先,定義兩個結構體類型的指針變量P1,P2,并將插入節(jié)點定義為P,且為結構體變量;
然后,令P1指向頭指針,P1→next指向P2這個節(jié)點,并判斷P1→next是否是NULL,如果是,結束插入排序。否則,轉入執(zhí)行下步操作;
最后,從鏈表頭開始查找,然后分別比較P→x1、P→y1與P1→x2、P1→y2之間的關系,或者分別比較P→x2、P→y2與P2→x1、P2→y1之間的關系。如果相等,則將節(jié)點P插入節(jié)點P1、P2之間,如果不等,則P1→next繼續(xù)比較,直到P1→next=NULL。如果沒有找到起終點坐標相等的條件,則將要插入的線段數(shù)據(jù)鏈接在鏈表尾端。
5 運行效果
圖6 AutocAD中繪制的圖形文件
為考察該程序運行的效果是否達到預期要求,首先在AutoCAD環(huán)境下繪制如圖6所示的窗格圖,然后將其保存為DXF格式文件。運行該應用程序并讀取AutoCAD所繪制的DXF格式圖形,VC++程序窗口將NC代碼加工雕刻軌跡模擬出來,圖7為該程序雕刻軌跡仿真圖。
圖7 VC++窗口雕刻圖形軌跡仿真圖
同時在文件夾中生成一個nc_code.gc的文件,該文件為文本文件,通過記事本或者文本處理軟件均可以打開,可以查看生成的NC代碼,圖8為上例生成的部分代碼。
圖8 生成的部分NC代碼
6 結論
文中針對數(shù)控加工過程中存在的實際問題,以數(shù)控加工過程中常見的DXF文件為基礎,通過讀取DXF文件中直線和圓的數(shù)據(jù)信息,并對圖形文件進行具體分析,然后采用小段直線擬合曲線的方式,對擬合點數(shù)據(jù)采用比較插入排序的優(yōu)化算法,并將生成的數(shù)控代碼送入數(shù)控機床進行加工。通過比較發(fā)現(xiàn),此優(yōu)化算法解決了雕刻過程中起落刀次數(shù)過于頻繁、雕刻過程隨機性比較強的問題,有效提高了加工效率。
(審核編輯: 智匯小新)