劉德剛,李佳星,趙靜赟
(中國地質大學(武漢)機械與電子信息學院,武漢 430074)
目前的切割軌跡自動生成系統開發模式主要有參數圖庫、專用系統以及基于CAD 的二次開發系統等。參數化圖庫利用通用編程語言實現常用基本切割圖形的參數化定制[3]。此種方式開發工作量小,系統使用簡單,但是圖庫內容有限,不能滿足實際復雜需求。專用系統也采用通用編程語言開發,實現了圖形編輯、套料以及G 代碼生成等功能。此種方式開發工作量大,開發難度高,系統使用復雜,價格高,代表軟件為Fast-CAM[4-5]?;贑AD 的二次開發系統則可以綜合前兩種方式,既能使用CAD 原有的強大圖形設計編輯功能,又可以降低開發及使用難度。
AutoCAD 應用廣泛,提供了面向對象的開發庫ObjectARX[6]?;贠bjectARX 已成功開發出了眾多CAM 系統[7-10]。本系統也基于ObjectARX 開發,論文對系統的設計與實現進行闡述。
自動編程系統的最終用戶為工廠的CAM 設計人員或一線工人,他們熟悉切割業務,但計算機知識往往掌握得較少。針對這種情況,系統的主設計目標為“傻瓜化”,將復雜的處理邏輯盡量封裝在算法內部,用戶只需幾個簡單的操作就可以完成G 代碼的生成,提高系統的實用性。
自動編程系統的動態運行是典型的數據流處理過程。切割圖形作為原始數據輸入,此圖形經過多個處理環節,每個環節都對輸入數據進行專業加工,輸出加工后的數據,最終輸出為G 代碼。系統基本數據流圖如圖1 所示。

圖1 基本數據流圖
原始設計圖可以利用AutoCAD 強大的設計功能繪制,經過圖形規范化處理后,加入切割工藝相關描述信息。工藝編譯根據用戶輸入的工藝參數,將規范后的圖形進行編譯,包括追蹤封閉輪廓以及進行割縫補償等。編譯后的圖形可以進行自動或手動排序。有了排序信息,系統就可以遍歷切割圖形,將其輸出為加工G 代碼。數據處理流程貫徹了“傻瓜化”的設計目標,步驟簡單。
基于數據流圖的設計模式,流程節點可以設計為單獨的數據處理模塊,實現輸入—處理—輸出的算法模式。各模塊最終注冊為AutoCAD 中的新命令組,通過鍵入命令或者點擊菜單來調用。系統的功能架構設計如圖2 所示。

圖2 系統功能架構
工藝編譯中包含多個子模塊,用來實現多個處理邏輯?;凇吧倒匣钡脑O計目標,最終用戶只需要使用“工藝編譯”一個命令,工藝編譯會自動調用子模塊的處理邏輯完成圖形的全部編譯工作。
由于專業培養目標的不同,對于非計算機專業而言,其在Access數據庫方面的教學呈現一種不夠科學嚴謹的特點。主要體現為:
系統的設計采用面向對象技術,各個模塊都利用類來實現。還設計了CBaseARX 基礎類,該類封裝了ObjectARX 的復雜接口,用簡單的C++函數提供基本的CAD 數據操作功能,如標注、直線、多段線、圖層的添加、刪除、修改等基本函數,以及改變多段線方向、判斷多段線的順逆、輪廓縮放等復雜函數。上層模塊需要時直接調用此類中的函數,從而簡化了上層模塊的復雜度,實現了代碼重用。
AutoCAD 具有強大的圖形設計功能,但設計出的圖形并沒有包含切割工藝相關的信息,比如一條多段線是屬于外輪廓還是內輪廓,一條直線是空移線還是引入線等。普通的AutoCAD 圖形中增加了這些專業切割信息后就變成了規范化的切割圖形。
切割附屬信息可以利用圖元的擴展屬性進行描述,但這種方式操作復雜,可視化效果差,當圖元進行合并、打斷等處理后,需要重新設置,所以不是一種好的方案。
經過研究,利用AutoCAD 的圖層屬性來完成切割信息描述。相同類型的圖元放在同一層,每個圖層設置不同的顏色,用戶通過顏色就能直接判斷圖元切割屬性,內部算法也可以根據圖層進行查找與計算。主要的切割圖層如表1 所示。

表1 主要切割用圖層
前五個層與切割輪廓相關,描述了內外、順逆、是否封閉等信息。切割順序號層中放置切割順序標注數字。
基于“傻瓜化”的設計目標,打開或者新建圖形時,插件自動創建切割專用圖層,不需要用戶輸入命令或者點擊菜單。重載AcRxArxApp 類的On_kLoad-DwgMsg 函數,在其中調用切割圖層創建函數,即可實現此效果。
工藝編譯是系統的核心模塊,內部實現了多個子處理功能,算法基本流程圖如圖3 所示。

圖3 工藝編譯算法基本流程圖
工藝編譯首先進行圖形數據預處理,包括統一轉換圖形為世界坐標系,將圖形左下角平移到原點,轉換橢圓為多段線等。因為G 代碼中只支持直線和圓弧,橢圓須轉換為多段線。算法實現原理為利用Object-ARX 設置為折線繪制模式,自動重畫橢圓,畫出的橢圓即為多短線,然后刪除原始橢圓。樣條曲線可以利用AutoCAD Express Tools 中的flatten 命令轉換為多段線。
輪廓追蹤算法取出圖層信息,以此對五個輪廓相關層進行處理。首先是將輪廓層中的圖元自動轉換為多段線,通過ObjectARX 獲取圖層范圍,自動執行pedit 命令,自動設置轉換參數,完成多段線的轉換。多段線轉換完成后,計算出多段線的順逆,再根據所屬圖層判斷是否需要進行多段線方向反轉。由于系統可以自動追蹤出多段線并調整方向,用戶繪圖的時候就沒有額外限制,可以按照自己的習慣進行設計。封閉輪廓中的多段線如果不能閉合,系統會提示錯誤信息。
由于設計原因或者一些轉換軟件的算法原因,切割圖形中有時存在過多點坐標,導致切割效率嚴重下降,甚至不能正常切割。刪除多余點算法根據用戶設置的允許誤差,對輪廓坐標進行判斷,刪除多余的點坐標。
由于割炬存在寬度,需要對輪廓進行補償,根據補償值放大外輪廓,縮小內輪廓。補償算法通過Object-ARX 調用AutoCAD 所提供的offset 函數,通過圖層取出順逆屬性,計算出偏移的正確參數,完成偏移操作。
引入線生成算法對依次對輪廓層進行遍歷,得到多段線坐標,根據引入線長度參數,自動生成引入線。引入線的終點坐標與輪廓的首點坐標重合,通過坐標位置建立拓撲關系。不封閉輪廓的引入線可以是輪廓本身的一部分或者額外添加引入線,由用戶在切割工藝參數中設置。
自動排序功能未集成在工藝編譯模塊中,是為了用戶可以調整引入線,比如可以改變引入線的引入位置或者使用圓弧引入線等。
引入線符合要求后,可以利用系統提供的自動排序算法自動編排切割順序。算法的基本原則是先切割內輪廓,再切割外輪廓,切割的總路徑最短。系統采用LK 算法[11]進行最優路徑的尋找。切割順序以數字標注形式放置于切割順序號圖層。標注的內容為輪廓切割的順序,標注的坐標與引入線的坐標開始坐標重合,通過坐標建立順序標注與引入線之間的拓撲關系。
系統還提供了手動排序功能,根據用戶點擊輪廓的向后順序進行排序。排序完成后,還可以進行排序號的調整。利用MFC 開發圖形界面對話框,用戶設置需要調整的序號。
排序完成后,就可以遍歷圖形輸出G 代碼。通過圖層屬性以及坐標拓撲屬性可以完成輪廓的尋找,空移線可以自動生成。G 代碼輸出算法的基本流程圖如圖4 所示。

圖4 G 代碼輸出算法基本流程圖
本插件系統支持AutoCAD2004 至AutoCAD2014各個版本,提供中英兩種語言版本。由于ObjectARX的版本較多,與開發環境關系密切,在支持不同版本的AutoCAD 時,ObjectARX 的版本與開發平臺都不同,發布前需要在多種環境下編譯。以支持AutoCAD2010的情況為例,ObjectARX 版本為ObjectARX2010,開發平臺為Visual Studio.NET 2008 SP1,開發語言為Visual C++,使用MFC 進行圖形界面開發。
插件安裝后,在AutoCAD 中增加了“切割機”菜單,點擊菜單即可以實現切割軌跡自動編程功能,如圖5 所示。

圖5 自動編程系統運行界面
本插件系統與切割機廠商合作,已投入實際運行多年。系統在眾多用戶處已成功生成了上萬個的G代碼文件。系統運行穩定,使用簡單,達到了“傻瓜化”的設計目標,算法的穩定性與正確性也得到了驗證。
本文利用面向對象技術,基于ObjectARX 二次開發平臺設計開發了適用于數控火焰/等離子切割機的切割軌跡自動編程系統。該系統已成功投入實際運行。系統遵循“傻瓜化”的設計目標,簡單易用,符合現場工人需求。開發經驗表明,基于ObjectARX 進行二次開發,能夠充分利用AutoCAD 已有的強大功能,快速開發出領域專用功能,是CAM 開發中的一種重要開發方式。本文對類似系統的設計開發具有參考意義。未來還可以將參數化典型圖庫的功能集成進本系統中,進一步增強系統的實用性。
[1]楊素嬡,潘文方. 國內數控切割技術的研究與應用現狀[J]. 金屬加工(熱加工),2010(8):37 -40.
[2]張維官. 關注現代切割設備核心部件[J]. 金屬加工(熱加工),2012(6):13 -19.
[3]甘明,袁正萍,陳小亮. 數控切割機系統加工代碼圖形庫的開發[J]. 制造技術與機床,2010(2):85 -87.
[4]楊帆,婁俊超. FastCAM 實際生產中的應用[J]. 金屬加工(熱加工),2011(6):18 -19.
[5]陳永. 火焰切割機編程工藝分析與處理[J]. 金屬加工(熱加工),2011(4):33 -34.
[6]王文波. AutoCAD2010 二次開發實例教程(ObjectARX)[M]. 北京:機械工業出版社,2013.
[7]黃潔瓊,袁群. 基于AutoCAD 的沖裁零件圖形的自動輸入與識別[J]. 機械設計與制造,2012(2):82 -84.
[8]董克權,黃鵬,劉超英,等. 基于ObjectARX 的羅茨泵轉子刨刀軌跡自動生成[J]. 現代制造工程,2011(8):71-74.
[9]劉輝,談沛,賀俊雄. 基于AutoCAD 的數控自動編程系統的研制[J]. 組合機床與自動化加工技術,2008(10):68-70.
[10]陳光霞,曾曉雁. 基于AutoCAD 激光切割數控系統的開發[J]. 機械設計與制造,2008(4):151 -153.
[11]王東,李婭,吳臣,等. 提高鏈式Lin-Kernighan 算法性能的一種新策略[J]. 計算機應用,2007(2):425 -427.