• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于ObjectARX 的切割軌跡自動編程系統(tǒng)的設(shè)計與實現(xiàn)

      2014-06-29 10:17:46劉德剛李佳星趙靜赟
      關(guān)鍵詞:圖層輪廓代碼

      劉德剛,李佳星,趙靜赟

      (中國地質(zhì)大學(xué)(武漢)機械與電子信息學(xué)院,武漢 430074)

      0 引言

      目前的切割軌跡自動生成系統(tǒng)開發(fā)模式主要有參數(shù)圖庫、專用系統(tǒng)以及基于CAD 的二次開發(fā)系統(tǒng)等。參數(shù)化圖庫利用通用編程語言實現(xiàn)常用基本切割圖形的參數(shù)化定制[3]。此種方式開發(fā)工作量小,系統(tǒng)使用簡單,但是圖庫內(nèi)容有限,不能滿足實際復(fù)雜需求。專用系統(tǒng)也采用通用編程語言開發(fā),實現(xiàn)了圖形編輯、套料以及G 代碼生成等功能。此種方式開發(fā)工作量大,開發(fā)難度高,系統(tǒng)使用復(fù)雜,價格高,代表軟件為Fast-CAM[4-5]。基于CAD 的二次開發(fā)系統(tǒng)則可以綜合前兩種方式,既能使用CAD 原有的強大圖形設(shè)計編輯功能,又可以降低開發(fā)及使用難度。

      AutoCAD 應(yīng)用廣泛,提供了面向?qū)ο蟮拈_發(fā)庫ObjectARX[6]?;贠bjectARX 已成功開發(fā)出了眾多CAM 系統(tǒng)[7-10]。本系統(tǒng)也基于ObjectARX 開發(fā),論文對系統(tǒng)的設(shè)計與實現(xiàn)進行闡述。

      1 系統(tǒng)架構(gòu)設(shè)計

      自動編程系統(tǒng)的最終用戶為工廠的CAM 設(shè)計人員或一線工人,他們熟悉切割業(yè)務(wù),但計算機知識往往掌握得較少。針對這種情況,系統(tǒng)的主設(shè)計目標為“傻瓜化”,將復(fù)雜的處理邏輯盡量封裝在算法內(nèi)部,用戶只需幾個簡單的操作就可以完成G 代碼的生成,提高系統(tǒng)的實用性。

      自動編程系統(tǒng)的動態(tài)運行是典型的數(shù)據(jù)流處理過程。切割圖形作為原始數(shù)據(jù)輸入,此圖形經(jīng)過多個處理環(huán)節(jié),每個環(huán)節(jié)都對輸入數(shù)據(jù)進行專業(yè)加工,輸出加工后的數(shù)據(jù),最終輸出為G 代碼。系統(tǒng)基本數(shù)據(jù)流圖如圖1 所示。

      圖1 基本數(shù)據(jù)流圖

      原始設(shè)計圖可以利用AutoCAD 強大的設(shè)計功能繪制,經(jīng)過圖形規(guī)范化處理后,加入切割工藝相關(guān)描述信息。工藝編譯根據(jù)用戶輸入的工藝參數(shù),將規(guī)范后的圖形進行編譯,包括追蹤封閉輪廓以及進行割縫補償?shù)?。編譯后的圖形可以進行自動或手動排序。有了排序信息,系統(tǒng)就可以遍歷切割圖形,將其輸出為加工G 代碼。數(shù)據(jù)處理流程貫徹了“傻瓜化”的設(shè)計目標,步驟簡單。

      基于數(shù)據(jù)流圖的設(shè)計模式,流程節(jié)點可以設(shè)計為單獨的數(shù)據(jù)處理模塊,實現(xiàn)輸入—處理—輸出的算法模式。各模塊最終注冊為AutoCAD 中的新命令組,通過鍵入命令或者點擊菜單來調(diào)用。系統(tǒng)的功能架構(gòu)設(shè)計如圖2 所示。

      圖2 系統(tǒng)功能架構(gòu)

      工藝編譯中包含多個子模塊,用來實現(xiàn)多個處理邏輯?;凇吧倒匣钡脑O(shè)計目標,最終用戶只需要使用“工藝編譯”一個命令,工藝編譯會自動調(diào)用子模塊的處理邏輯完成圖形的全部編譯工作。

      由于專業(yè)培養(yǎng)目標的不同,對于非計算機專業(yè)而言,其在Access數(shù)據(jù)庫方面的教學(xué)呈現(xiàn)一種不夠科學(xué)嚴謹?shù)奶攸c。主要體現(xiàn)為:

      系統(tǒng)的設(shè)計采用面向?qū)ο蠹夹g(shù),各個模塊都利用類來實現(xiàn)。還設(shè)計了CBaseARX 基礎(chǔ)類,該類封裝了ObjectARX 的復(fù)雜接口,用簡單的C++函數(shù)提供基本的CAD 數(shù)據(jù)操作功能,如標注、直線、多段線、圖層的添加、刪除、修改等基本函數(shù),以及改變多段線方向、判斷多段線的順逆、輪廓縮放等復(fù)雜函數(shù)。上層模塊需要時直接調(diào)用此類中的函數(shù),從而簡化了上層模塊的復(fù)雜度,實現(xiàn)了代碼重用。

      2 主要模塊設(shè)計

      2.1 專業(yè)圖層生成

      AutoCAD 具有強大的圖形設(shè)計功能,但設(shè)計出的圖形并沒有包含切割工藝相關(guān)的信息,比如一條多段線是屬于外輪廓還是內(nèi)輪廓,一條直線是空移線還是引入線等。普通的AutoCAD 圖形中增加了這些專業(yè)切割信息后就變成了規(guī)范化的切割圖形。

      切割附屬信息可以利用圖元的擴展屬性進行描述,但這種方式操作復(fù)雜,可視化效果差,當圖元進行合并、打斷等處理后,需要重新設(shè)置,所以不是一種好的方案。

      經(jīng)過研究,利用AutoCAD 的圖層屬性來完成切割信息描述。相同類型的圖元放在同一層,每個圖層設(shè)置不同的顏色,用戶通過顏色就能直接判斷圖元切割屬性,內(nèi)部算法也可以根據(jù)圖層進行查找與計算。主要的切割圖層如表1 所示。

      表1 主要切割用圖層

      前五個層與切割輪廓相關(guān),描述了內(nèi)外、順逆、是否封閉等信息。切割順序號層中放置切割順序標注數(shù)字。

      基于“傻瓜化”的設(shè)計目標,打開或者新建圖形時,插件自動創(chuàng)建切割專用圖層,不需要用戶輸入命令或者點擊菜單。重載AcRxArxApp 類的On_kLoad-DwgMsg 函數(shù),在其中調(diào)用切割圖層創(chuàng)建函數(shù),即可實現(xiàn)此效果。

      2.2 工藝編譯

      工藝編譯是系統(tǒng)的核心模塊,內(nèi)部實現(xiàn)了多個子處理功能,算法基本流程圖如圖3 所示。

      圖3 工藝編譯算法基本流程圖

      工藝編譯首先進行圖形數(shù)據(jù)預(yù)處理,包括統(tǒng)一轉(zhuǎn)換圖形為世界坐標系,將圖形左下角平移到原點,轉(zhuǎn)換橢圓為多段線等。因為G 代碼中只支持直線和圓弧,橢圓須轉(zhuǎn)換為多段線。算法實現(xiàn)原理為利用Object-ARX 設(shè)置為折線繪制模式,自動重畫橢圓,畫出的橢圓即為多短線,然后刪除原始橢圓。樣條曲線可以利用AutoCAD Express Tools 中的flatten 命令轉(zhuǎn)換為多段線。

      輪廓追蹤算法取出圖層信息,以此對五個輪廓相關(guān)層進行處理。首先是將輪廓層中的圖元自動轉(zhuǎn)換為多段線,通過ObjectARX 獲取圖層范圍,自動執(zhí)行pedit 命令,自動設(shè)置轉(zhuǎn)換參數(shù),完成多段線的轉(zhuǎn)換。多段線轉(zhuǎn)換完成后,計算出多段線的順逆,再根據(jù)所屬圖層判斷是否需要進行多段線方向反轉(zhuǎn)。由于系統(tǒng)可以自動追蹤出多段線并調(diào)整方向,用戶繪圖的時候就沒有額外限制,可以按照自己的習(xí)慣進行設(shè)計。封閉輪廓中的多段線如果不能閉合,系統(tǒng)會提示錯誤信息。

      由于設(shè)計原因或者一些轉(zhuǎn)換軟件的算法原因,切割圖形中有時存在過多點坐標,導(dǎo)致切割效率嚴重下降,甚至不能正常切割。刪除多余點算法根據(jù)用戶設(shè)置的允許誤差,對輪廓坐標進行判斷,刪除多余的點坐標。

      由于割炬存在寬度,需要對輪廓進行補償,根據(jù)補償值放大外輪廓,縮小內(nèi)輪廓。補償算法通過Object-ARX 調(diào)用AutoCAD 所提供的offset 函數(shù),通過圖層取出順逆屬性,計算出偏移的正確參數(shù),完成偏移操作。

      引入線生成算法對依次對輪廓層進行遍歷,得到多段線坐標,根據(jù)引入線長度參數(shù),自動生成引入線。引入線的終點坐標與輪廓的首點坐標重合,通過坐標位置建立拓撲關(guān)系。不封閉輪廓的引入線可以是輪廓本身的一部分或者額外添加引入線,由用戶在切割工藝參數(shù)中設(shè)置。

      2.3 排序與G 代碼輸出

      自動排序功能未集成在工藝編譯模塊中,是為了用戶可以調(diào)整引入線,比如可以改變引入線的引入位置或者使用圓弧引入線等。

      引入線符合要求后,可以利用系統(tǒng)提供的自動排序算法自動編排切割順序。算法的基本原則是先切割內(nèi)輪廓,再切割外輪廓,切割的總路徑最短。系統(tǒng)采用LK 算法[11]進行最優(yōu)路徑的尋找。切割順序以數(shù)字標注形式放置于切割順序號圖層。標注的內(nèi)容為輪廓切割的順序,標注的坐標與引入線的坐標開始坐標重合,通過坐標建立順序標注與引入線之間的拓撲關(guān)系。

      系統(tǒng)還提供了手動排序功能,根據(jù)用戶點擊輪廓的向后順序進行排序。排序完成后,還可以進行排序號的調(diào)整。利用MFC 開發(fā)圖形界面對話框,用戶設(shè)置需要調(diào)整的序號。

      排序完成后,就可以遍歷圖形輸出G 代碼。通過圖層屬性以及坐標拓撲屬性可以完成輪廓的尋找,空移線可以自動生成。G 代碼輸出算法的基本流程圖如圖4 所示。

      圖4 G 代碼輸出算法基本流程圖

      3 系統(tǒng)實現(xiàn)與運行情況

      本插件系統(tǒng)支持AutoCAD2004 至AutoCAD2014各個版本,提供中英兩種語言版本。由于ObjectARX的版本較多,與開發(fā)環(huán)境關(guān)系密切,在支持不同版本的AutoCAD 時,ObjectARX 的版本與開發(fā)平臺都不同,發(fā)布前需要在多種環(huán)境下編譯。以支持AutoCAD2010的情況為例,ObjectARX 版本為ObjectARX2010,開發(fā)平臺為Visual Studio.NET 2008 SP1,開發(fā)語言為Visual C++,使用MFC 進行圖形界面開發(fā)。

      插件安裝后,在AutoCAD 中增加了“切割機”菜單,點擊菜單即可以實現(xiàn)切割軌跡自動編程功能,如圖5 所示。

      圖5 自動編程系統(tǒng)運行界面

      本插件系統(tǒng)與切割機廠商合作,已投入實際運行多年。系統(tǒng)在眾多用戶處已成功生成了上萬個的G代碼文件。系統(tǒng)運行穩(wěn)定,使用簡單,達到了“傻瓜化”的設(shè)計目標,算法的穩(wěn)定性與正確性也得到了驗證。

      4 結(jié)束語

      本文利用面向?qū)ο蠹夹g(shù),基于ObjectARX 二次開發(fā)平臺設(shè)計開發(fā)了適用于數(shù)控火焰/等離子切割機的切割軌跡自動編程系統(tǒng)。該系統(tǒng)已成功投入實際運行。系統(tǒng)遵循“傻瓜化”的設(shè)計目標,簡單易用,符合現(xiàn)場工人需求。開發(fā)經(jīng)驗表明,基于ObjectARX 進行二次開發(fā),能夠充分利用AutoCAD 已有的強大功能,快速開發(fā)出領(lǐng)域?qū)S霉δ?,是CAM 開發(fā)中的一種重要開發(fā)方式。本文對類似系統(tǒng)的設(shè)計開發(fā)具有參考意義。未來還可以將參數(shù)化典型圖庫的功能集成進本系統(tǒng)中,進一步增強系統(tǒng)的實用性。

      [1]楊素嬡,潘文方. 國內(nèi)數(shù)控切割技術(shù)的研究與應(yīng)用現(xiàn)狀[J]. 金屬加工(熱加工),2010(8):37 -40.

      [2]張維官. 關(guān)注現(xiàn)代切割設(shè)備核心部件[J]. 金屬加工(熱加工),2012(6):13 -19.

      [3]甘明,袁正萍,陳小亮. 數(shù)控切割機系統(tǒng)加工代碼圖形庫的開發(fā)[J]. 制造技術(shù)與機床,2010(2):85 -87.

      [4]楊帆,婁俊超. FastCAM 實際生產(chǎn)中的應(yīng)用[J]. 金屬加工(熱加工),2011(6):18 -19.

      [5]陳永. 火焰切割機編程工藝分析與處理[J]. 金屬加工(熱加工),2011(4):33 -34.

      [6]王文波. AutoCAD2010 二次開發(fā)實例教程(ObjectARX)[M]. 北京:機械工業(yè)出版社,2013.

      [7]黃潔瓊,袁群. 基于AutoCAD 的沖裁零件圖形的自動輸入與識別[J]. 機械設(shè)計與制造,2012(2):82 -84.

      [8]董克權(quán),黃鵬,劉超英,等. 基于ObjectARX 的羅茨泵轉(zhuǎn)子刨刀軌跡自動生成[J]. 現(xiàn)代制造工程,2011(8):71-74.

      [9]劉輝,談沛,賀俊雄. 基于AutoCAD 的數(shù)控自動編程系統(tǒng)的研制[J]. 組合機床與自動化加工技術(shù),2008(10):68-70.

      [10]陳光霞,曾曉雁. 基于AutoCAD 激光切割數(shù)控系統(tǒng)的開發(fā)[J]. 機械設(shè)計與制造,2008(4):151 -153.

      [11]王東,李婭,吳臣,等. 提高鏈式Lin-Kernighan 算法性能的一種新策略[J]. 計算機應(yīng)用,2007(2):425 -427.

      猜你喜歡
      圖層輪廓代碼
      輪廓錯覺
      基于實時輪廓誤差估算的數(shù)控系統(tǒng)輪廓控制
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      巧用混合圖層 制作抽象動感森林
      圖層法在地理區(qū)域圖讀圖中的應(yīng)用
      在線學(xué)習(xí)機制下的Snake輪廓跟蹤
      計算機工程(2015年4期)2015-07-05 08:27:39
      淺析“遞層優(yōu)化法”在礦井制圖中的應(yīng)用
      河南科技(2014年6期)2014-04-04 08:00:42
      东方市| 阿合奇县| 华蓥市| 衡阳县| 阜阳市| 莫力| 株洲县| 育儿| 芮城县| 香格里拉县| 铜陵市| 博野县| 台中市| 环江| 逊克县| 响水县| 剑川县| 梁平县| 保定市| 海盐县| 乐业县| 靖远县| 巴林左旗| 张家港市| 黄冈市| 辽阳县| 磐石市| 天台县| 沂源县| 西华县| 长丰县| 沙田区| 新晃| 易门县| 马鞍山市| 济南市| 广安市| 上饶市| 伊通| 沙田区| 恭城|