基于AutoCAD的數(shù)控沖床自動編程系統(tǒng)研究與開發(fā)
點擊:1600
A+ A-
所屬頻道:新聞中心
1 概述
隨著科學(xué)技術(shù)的發(fā)展,數(shù)控機床越來越廣泛地應(yīng)用在機械制造行業(yè)中。在數(shù)控加工系統(tǒng)中,傳統(tǒng)的NC代碼手工編程不僅效率低,而且容易出錯;而采用APT語言的自動編程雖然幾何定義語句簡潔,功能較強,但要求編程人員要熟記系統(tǒng)的語言與規(guī)則,一旦出錯又不易發(fā)現(xiàn)。國外的數(shù)控沖床圖形編程系統(tǒng)已應(yīng)用于工業(yè)生產(chǎn)實際,而我國在這方面還處于研究階段。
本文作者對數(shù)控沖床的自動編程系統(tǒng)進行了深入的研究,并在AutoCAD的VisualLISP環(huán)境下進行了相應(yīng)的系統(tǒng)開發(fā)工作,并成功通過了AutoCAD2000~AutoCAD2006多個版本的兼容性測試。
2 自動編程系統(tǒng)的總體結(jié)構(gòu)
自動編程系統(tǒng)采用模塊化結(jié)構(gòu),由六大功能模塊組成,分別為自動編程主模塊、圖形信息處理模塊、加工路徑確定與優(yōu)化模塊、模具庫與模具選擇模塊、后置處理模塊、圖形仿真模塊,模塊化數(shù)控沖床自動編程系統(tǒng)的總體結(jié)構(gòu)圖如圖1所示。
自動編程主模塊的主要工作是調(diào)用加工路徑模塊和模具庫模塊,將圖形信息轉(zhuǎn)化為加工路徑信息及模具信息,并生成刀位文件。此模塊還可以直接調(diào)用后置處理模塊與圖形仿真模塊,生成加工所需的NC代碼,并對其進行圖形仿真。本模塊所具有的功能還包括保存、編輯刀位文件和NC代碼文件等文件編輯功能。
3 系統(tǒng)開發(fā)的關(guān)鍵技術(shù)研究
3.1 圖形信息的處理
要想生成NC代碼,首先就要讓計算機識別所需要加工的圖形。圖形信息處理模塊的作用是將CAD圖形中的有用圖形信息提取出來,比如圖形中圓孔的直徑和圓心、方孔的邊長和中心、腰圓孔的孔徑和中心線圓弧的半徑與圓心、矩形孔的邊長和幾何中心等,然后將這些信息輸送到主程序模塊中。獲取圖形信息的方法有多種,比如通過DXF文件導(dǎo)人,或者通過人機交互獲取。由于VisualLISP可以直接操作選擇集,所以選擇后一種方法更為合適,并且有利于設(shè)定編程原點(工件坐標系原點)等人機交互更為方便的操作。
3.1.1 圓形類基本參數(shù)的獲取
在AutoLISP中,通過交互操作獲取圓基本參數(shù)是非常容易的,如下簡單程序段即可獲得圓形的主要參數(shù):
?。⊿ETQ cir_data(ENTGET (CAR(ENTSEL”\n請選擇一個圓形:”))));通過交互操作獲得圖形信息
?。⊿ETQ cir_pt(CDR(ASSOC 10cir_data)));從圖形信息中獲取圓心坐標
(SETQ cir_r(CDR(ASSOC 40 cir_data)));從圖形信息中獲取圓的半徑。
3.1.2 矩形類基本參數(shù)的獲取
矩形類的主要參數(shù)是2個邊長和4個頂點,4個頂點可以用AutoLISP函數(shù)獲得,邊長可以通過計算相鄰的兩點間的距離確定。
獲得點的位置一般要用到ASSOC函數(shù),其作用是從關(guān)聯(lián)表中搜索1個元素,如果找到則返回該關(guān)聯(lián)表條目,如果點的數(shù)目較多則一般采用循環(huán)讀取的方法,只需做1個循環(huán)即可獲得4個頂點。
(SETQ reg_data(ENTGET(CAR(ENTSEL”\n請選擇一個矩形:”))));通過交互操作獲得圖形信息
?。╓HILE(SETQpt(ASSOCloreg data));設(shè)置循環(huán)條件
(SETQ reg-data(CDR(MEMBER pt reg-da-ta)));將以獲得的點從羌聯(lián)表中刪除
?。⊿ETQptb(CONS(CDR pt)ptb)));將獲得的依次點位存儲到變量ptb中
計算邊長的時候?qū)Ⅻc位從點表變量ptb中提取,通過Distance函數(shù)直接求取,無需做距離計算。
3.1.3 腰圓孔、腰直孔類基本參數(shù)的獲取
腰圓孔、腰直孔基本參數(shù)的獲取涉及到多段線數(shù)據(jù)的提取。為了實現(xiàn)圖形的自動編程,必須將這兩類孔均轉(zhuǎn)換為多段線Polyline或者Lwpolyline。
采用AutoLISP表處理函數(shù)可以獲得各節(jié)點坐標及圓弧凸度,其方法如下:
(SETQ pel_data(ENTGET(CAR(ENTSEL”\n請選擇一個矩形:”))))
?。⊿ETQ ptl(CDR(ASSOCl0pel-ara)));從pel_data中取出第一個節(jié)點坐標給變量pt1
(SETQ par(CDR(ASSOC42pel-ata)));從pel_data中取出第一條線段凸度給變量par
圓弧半徑可由凸度值和相鄰兩節(jié)點坐標計算出來,圓弧半徑R的值由式(1)確定:
R=(dist*par2+dist)/(2*par) (1)
式中:R為圓弧半徑;dist為兩節(jié)點距離;par為凸度絕對值。
腰圓孔類基本參數(shù)主要有4個半徑和4個圓心。其實,只需要計算出其中4個圓心就可以實現(xiàn)編程功能了。有了4個圓心又可以確定圓弧步?jīng)_的起點和終點。通過分析計算出的圓弧半徑就可以獲得模具的半徑和圓弧步?jīng)_所需的圓弧半徑。
腰直孔獲得其多段線的4個頂點圓弧半徑就可得出步?jīng)_的起點、終點和步?jīng)_的長度。計算出的圓弧半徑即模具的半徑。
3.2 加工模具的自動選擇
3.2.1 模具庫的建立
對于一個具體的刀具,具體有以下幾個參數(shù):模具號,形狀,X方向長,Y方向長以及直徑。對于圓形模具,沒有X、Y方向長參數(shù),對于矩形模具,沒有直徑參數(shù)。用戶可以由對話框建立刀具和修改刀具。
定義變量m_dia為模具直徑,m xlen為模具X方向長,m_ylen為模具Y方向長,m_shape為模具形狀,m_sym為模具號,如下程序段定義刀具信息格式。
?。╨ist m_sym m_shape m_xlen m_ylen m_dia);刀具信息組成表格式
模具類的建立即是建立了刀具存儲的格式,即刀具信息在刀具庫中是以表的格式存儲的,模具庫管理通過表操作來完成對模具庫的管理功能。
3.2.2 加工模具的自動選擇
一般的數(shù)控沖壓機可以多副模具,其中既有圓形模具,也有矩形模具,其要加工的孔可分為圓孔、矩形孔、腰圓孔,腰直孔四類。為了方便選擇圖形和不同類圖形的處理,系統(tǒng)可以通過交互式操作將不同類型圖形賦值于四個不同的選擇集ss1、ss2、ss3、ss4。通過對SSGET函數(shù)的參數(shù)設(shè)置,可以避免賦值過程的誤操作。系統(tǒng)自動模具選擇的總體流程如圖2所示。
其中模具匹配需要編寫專用的匹配函數(shù),根據(jù)孔型的不同自動從建立好的模具庫中選擇合適的模具進行加工。
3.3 加工路徑確定
加工路徑的確定就是數(shù)控沖床沖壓路徑的確定,主要的設(shè)計任務(wù)就是實現(xiàn)以何種方式來確定加工順序,加工路徑如何實現(xiàn)最短優(yōu)化,如何使加工時間縮到最少,如何使程序適應(yīng)多種加工方案。
3.3.1 加工路徑確定的基本原則
數(shù)控沖床加工路徑的確定主要涉及兩個基本原則:
?。?)同一把刀工序盡量集中。在數(shù)控沖壓加工時,為了減少轉(zhuǎn)刀所占用的輔助時間,可按集中工序的方法加工零件,盡可能用同一把沖模加工完零件表面上的相同沖切部分。
(2)走刀路徑最短。對于數(shù)控設(shè)備來說,每一秒鐘的時間都是寶貴的,沖壓過程所需的時間較短,而模具的空行程決定了加工效率,合理安排空行程路徑顯得尤為重要。
3.3.2 加工路徑的優(yōu)化
加工路徑的優(yōu)化的問題即是對加工孔尋找最短遍歷路徑的問題,對尺寸相同的加工孔而言,路徑的優(yōu)化可以歸屬與完全NP問題,完全NP問題的典型是貨郎擔(dān)問題,貨郎擔(dān)問題和本文研究的最短遍歷路徑問題的差別在于貨郎擔(dān)問題的最終節(jié)點是起始點,而最短遍歷路徑不要求最后回到起始點,但如果能夠以一個高效的算法來解決貨郎擔(dān)問題,最短遍歷路徑也可參照得出近似算法。完全NP問題完全的算法是不存在的,因為對于遍歷點大于20時要想得出結(jié)果需要幾年甚至幾十年的時間。一般采用近似算法來代替最優(yōu)算法,常見的算法有正交路徑法、最近點路徑法等。
3.4 后置處理
后置處理模塊的主要作用是用來將刀位文件轉(zhuǎn)化為NC代碼。把它作為獨立模塊的作用是可以通過不同的后置處理生成適應(yīng)不同數(shù)控系統(tǒng)的NC代碼,增強系統(tǒng)的通用性。
3.4.1 后置處理模塊的設(shè)計
后置處理模塊分為兩大類:一類為專用后置處理模塊,另一類是通用后置處理模塊。根據(jù)沖壓數(shù)控系統(tǒng)的特點,通用后置處理模塊更適合本系統(tǒng),通過制定標準格式的機床文件,通過對話框?qū)崿F(xiàn)機床數(shù)據(jù)的標準化文件。在NC代碼生成和圖形仿真時調(diào)用機床標準文件,即可獲得相應(yīng)的數(shù)控代碼信息。數(shù)控系統(tǒng)C代碼的設(shè)置界面如圖3所示。
3.4.2 NC代碼生成
(1)點位沖孔的NC代碼生成
點位沖孔的C代碼是GOO,但為了適應(yīng)更多的數(shù)控系統(tǒng),作者建立一個變量gcode_00,用來表示快速點定位沖孔指令,系統(tǒng)默認代碼為GOO,不同的數(shù)控系統(tǒng)可以在自動編程系統(tǒng)的后置處理設(shè)置中設(shè)定。刀具的中心位置坐標由加工路徑模塊確定,刀具信息由模具選擇模塊確定。
?。?)步?jīng)_加工的NC代碼生成
以直線步?jīng)_為例,系統(tǒng)默認的直線步?jīng)_的G代碼是G69,不同的數(shù)控系統(tǒng)仍然可以在自動編程系統(tǒng)的C代碼設(shè)置中設(shè)定。步?jīng)_的起始位置和終點位置坐標由加工路徑模塊確定,刀具信息由模具選擇模塊確定。步?jīng)_的長度即是起點位置和終點位置的距離,用函數(shù)Distance可以輕松實現(xiàn),步矩的確定分為圓形模具步?jīng)_和矩形模具步?jīng)_兩種情況。
3.4.3 步?jīng)_步矩的確定
用圓形的模具進行步?jīng)_時必然會產(chǎn)生均勻的步?jīng)_齒花,步距越大,齒花越明顯。圓形模具的步?jīng)_步距取決于步?jīng)_齒花的高度,即取決于步?jīng)_精度的大小,齒花大小決定了孔的加工精度,所以設(shè)計程序時把精度要求作為一個輸入?yún)?shù),在自動編程系統(tǒng)的步?jīng)_精度設(shè)置中設(shè)定,步距的大小由式(2)計算確定。
p=2(ds-s2)1/2 (2)
式中:P為步距;d為模具直徑;s為齒花高度。
矩形模具的步?jīng)_步距只取決于步?jīng)_的長度與模具的尺寸。用步?jīng)_起點和終點的距離除以步?jīng)_方向的模具尺寸得出的數(shù)值取整加一,得出最小步?jīng)_步數(shù);然后,再用步?jīng)_起點和終點的距離除以步?jīng)_步數(shù)得出的數(shù)值即可作為步?jīng)_步距。
當(dāng)然,在大多數(shù)數(shù)控系統(tǒng)中,矩形模具的步?jīng)_步距可以是小于步?jīng)_方向的模具尺寸的任何值,為了保證加工的效率和加工效果,可以人工估算一個合理步矩值,然后通過自動編程系統(tǒng)的步?jīng)_精度設(shè)置中設(shè)定。如果步?jīng)_起點和終點的距離除以此步距得出的步?jīng)_步數(shù)不為整數(shù)時,數(shù)控系統(tǒng)會自動調(diào)整步矩以適合加工。
4 加工過程的仿真
在數(shù)控加工過程中,零件加工后的質(zhì)量是否符合要求,在加工過程中是否會發(fā)生零件與刀具、刀具與夾具、刀具與機床工作臺之間的干涉與碰撞,刀具是否對零件進行了過切或少切,刀具的走刀路線、走刀方式是否合理等一系列實際加工中可能會發(fā)生的問題都決定于自動編程系統(tǒng)所輸出的數(shù)控加工指令集是否正確。根據(jù)NC代碼文件提供的信息,將加工軌跡模擬出來,顯示在顯示屏上,以方便程序校驗和沖壓過程檢驗。
4.1 仿真系統(tǒng)總體結(jié)構(gòu)
仿真系統(tǒng)應(yīng)該能夠完成數(shù)控程序的錯誤檢查,動態(tài)地模擬數(shù)控機床驅(qū)動刀具的運動及加工過程。因此加工過程的仿真一般由文件處理、錯誤檢查和模擬仿真三部分組成。其總體結(jié)構(gòu)如圖4所示。
4.2 NC代碼的翻譯與仿真的實現(xiàn)
獲得了程序段的數(shù)據(jù),就可以利用其提供的數(shù)值進行仿真。
實現(xiàn)了在屏幕上作圖不等于實現(xiàn)了加工過程的仿真,如果不僅想看到全部的圖形顯示在屏幕上,而且想動態(tài)的觀測加工的先后順序,就需要加一些程序。實現(xiàn)動態(tài)的仿真可以由兩種方法實現(xiàn):
一是調(diào)用AutoCAD的內(nèi)部命令“delay”。這種方法的優(yōu)點是簡單快捷,可以隨意設(shè)定兩個圖形間的生成時間,即可以隨意調(diào)節(jié)仿真的速度。
第二種方法是編寫動態(tài)函數(shù)z_timer。動態(tài)函數(shù)z_timer的作用是通過輸入的沖床T軸移動速度,再根據(jù)圖形中計算出的兩個相鄰加工點的距
離,即可得出其移動所需要的時間,然后再由Delay函數(shù)實現(xiàn)延時。這種方法的優(yōu)點是:全部時間與實際時間相符,可以加入換刀的時間,實現(xiàn)真正實時的仿真,并且可以通過對話框指定時間縮放比例,即也可以按比例控制仿真的速度。
5 程序運行實例
5.1 NC代碼的自動生成
選用實際加工的電控板圖紙如圖5所示。
首先,將圖5按1:1的比例在AutoCAD中繪制出來,然后檢查要加工的矩形孔是否是整體,如果矩形孔是用多條直線段繪制的,就需要轉(zhuǎn)化為一條多段線。點擊菜單“數(shù)控加工”→“加工刀具預(yù)檢驗”,以檢查所需加工的孔在刀庫中是否存在合適的加工刀具,檢查完畢后,系統(tǒng)會提示矩形孔60×20沒有直接可以使用的模具。因此,可以指定步?jīng)_模具為T316號刀具,即13×13方模具,但是為了讓動態(tài)仿真更為清晰,選用T321號步?jīng)_模具,即10×10方模具。
點菜單“數(shù)控加工”→“NC代碼生成”,在彈出的對話框中根據(jù)提示選擇要加工的圖形,并設(shè)定好相關(guān)參數(shù),點擊確定即可生成相應(yīng)的NC代碼,如圖6所示。
5.2 NC代碼的動態(tài)仿真的實例
爭先對NC代碼文件進行錯誤檢查,確認沒有詞法和語法錯誤后,點擊“數(shù)控加工”→“數(shù)控仿真”,激活數(shù)控仿真對話框,通過對話框選定要進行仿真的NC文件,設(shè)定好沖壓仿真速度,點擊確定按鈕,對話框自動關(guān)閉,并且在當(dāng)前屏幕上開始對所指定的NC代碼文件進行動態(tài)仿真。仿真效果如圖7所示。圖7顯示了NC代碼文件的仿真結(jié)果,圖中的虛線展示了刀具走刀的中心軌跡。
6 結(jié)論
本系統(tǒng)已成功應(yīng)用到山西某電控設(shè)備廠。實踐生產(chǎn)證明,本系統(tǒng)具有NC代碼的自動生成和圖形的動態(tài)仿真功能,并且可以對已有的NC代碼進行檢錯。系統(tǒng)通過對加工零件圖的自動編程,避免了手工編程繁瑣的坐標計算,并對加工路徑進行了優(yōu)化處理,提高了生產(chǎn)效率;結(jié)合圖形仿真模塊的應(yīng)用,有效地減少了加工事故的發(fā)生,提高了沖壓加工的安全性。
(審核編輯: 智匯小新)
分享