系統原理及關鍵技術對數控自動編程來說,主要的環節就是從CAD圖形中提取加工軌跡所需要的幾何信息,并對幾何信息進行整理和路徑優化,得到合理的加工路徑,*后再數控加工技術得到加工程序。
AutoCAD二維圖形中有較多的內,給描述零件輪廓的圖形實體以特定的相關聯的共同性質,可以有以下的方法:1)將描述零件輪廓的圖形實體放在特定的同一層;2)將描述零件輪廓的圖形實體設置為特定的統一顏色;3)將描述零件輪廓的圖形實體指定為特定的組;4)將描述零件輪廓的圖形實體連接為一條polyline(多段線)。
對上述方法比較的結果,為不規則曲線時顯得十分方便,同時還可通過逼近算法來調節逼近精度。(3)polyline中各直線段和圓弧段是依次首尾相接的,有起點,有終點,這便于確定加工刀具的運動方向。(4)polyline雖然包含線段與圓弧,但仍然為單一實體,便于選擇拾取。
鑒于以上考慮,把描述零件輪廓的圖線連成一條多段線,多段線的起始點就是刀具的起點,加工過程中所需要的終點坐標均可由多段線各頂點的數據確定,根據這些數據即可生成數控代碼。
數控代碼的生成實體的選擇和判斷選擇實體時,首先使用了函數acedEntSel<3>,原形為:acedEntSel;此函數使AutoCAD暫停,并在命令行中提示用戶選擇實體,如果成功返回RTNORM和得到實體的ADS名。否則返回RTERROR.然后用acdbOpenObject在圖形數據庫中打開所選實體,函數原形為:acdbOpenObject;*后判斷所選擇的實體是否為.
圖形實體類常稱為輕量Polyline,它能比AcDb2DPolyline更有效率地分配內存空間。本身含有很多有用的函數,如ArcSegA,tArea,BulgeAt等。利用它們可以輕易地取得此類圖形的數據,有以下函數<5>:取得PLINE的節點數。
StartPoint取得PLINE的起始點。在生成數控代碼時,刀具的快速定位指令G00需要用到起始點的數據。PointAt按指定序號取得相應頂點坐標。
BulgeAt按指定序號取相應頂點后的弧段的凸度。凸度表示圓弧的彎曲程度。它等于該圓弧所含角度的四分之一的正切值。AutoCAD中約定:凸度為零時表示直線,凸度為正數時表示逆時針圓弧,凸度為負數表示順時針圓弧,凸度絕對值小于1時表示圓弧包角小于180,凸度絕對值大于1時表示圓弧包角大于180.使用此函數可判斷出下一數控指令是直線插補指令G01還是圓弧插補指令G02、G03.
ArcSegAt按指定序號取得相應圓弧。該函數的輸出為AcGeCircArc2d,即2D圓弧類。得到這個圓弧就能夠用圓弧類的函數得到圓心坐標和半徑,免去復雜的計算。
輸出數控代碼本程序的數控代碼全部存儲在CString字符串類中,并且直接生成數控代碼文件。應用CString類有很多好處:可直接向它加入字符串,而無需擔心內存的分配問題;可直接與編輯框聯系,隨時更新其內容等等。某工件在加工中運用本系統自動生成數控代碼的實例。
仿真加工的實現在真實數控加工前通過虛擬的加工過程實驗演示,確認排序、加工路線走向、換刀安排等一系列環節準確性是十分必要的。為此,本系統運用動態仿真原理和計算機動畫技術,開發了虛擬加工過程。所用方法是在AutoCAD中生成三維實體表示刀具和毛坯,利用布爾運算讓刀具和毛坯不斷進行布爾差,實現加工過程的慮擬化。具體方法如下<6,7>:1)分別定義表示毛坯和加工刀具的AcDb3dSolid類指針;2)調用AcDb3dSolid類的成員函數構造零件毛坯和刀具;3)利用三維幾何變換將刀具移動到零件毛坯的加工位置上;4)調用booleanOper函數進行差運算,在零件毛坯上去除被加工的部分;5)用循環結構和三維幾何變換矩陣改變刀具和零件毛坯的位置,重復進行差運算,并重新生成圖形產生動畫效果,直到完成加工。
要將刀具在CNC程序的控制下,沿規定的軌跡以規定的速度約束移動的動態過程顯示在計算機屏幕上,只要以足夠小的時間間隔連續不斷地顯示出來即可,但在點(xi,yi)處顯示之前必須先將點(xi1,yi1)處顯示圖像擦除。本系統利用Windows中定時器發出的WM_TIMER消息,定時長短可由用戶設定,同時,為響應該消息設置了一映射函數,由該函數實現圖像的擦除與重畫。