趙 宏
(深圳第二高級技工學校,深圳 518049)
隨著數(shù)控機床的日益普及,現(xiàn)代機械加工正逐步向著數(shù)控加工方向發(fā)展,早期在普通機床上完成的孔類加工,如今通常都在數(shù)控機床上加工。在模具制造企業(yè),模具零件上通常有數(shù)十上百的頂針孔或其他孔需要數(shù)控加工,其AutoCAD零件圖如圖1所示。
面對眾多的批量孔數(shù)控加工程序設計,如果用CAM軟件自動編程,編程人員需投入精力先將AutoCAD圖導入CAM軟件中,由于軟件間的兼容性問題,難免出現(xiàn)數(shù)據(jù)遺漏等,增加了后續(xù)的復核工作量,而且編程時,要手工選擇這些孔,由于視覺空間所限,若干圖形混在一起,難免錯選重復選擇或漏選,編好程序后,還要后處理等;如果手工編程,不僅對編程人員要求高,而且容易將孔的坐標位置抄錯,導致零件報廢或加工返工,工作量大,效率也低。
鑒于以上兩個方法的不足,本文提出,以AutoCAD零件圖為原始數(shù)據(jù),利用AutoCAD軟件作為開發(fā)平臺,以AutoLISP和DCL語言為開發(fā)工具,實現(xiàn)批量孔的數(shù)控加工程序NC代碼的自動編程。
圖1 后模頂針排位圖
AutoCAD是廣泛流行的計算機輔助設計軟件之一,二維繪圖功能強大,開放性好,便于二次開發(fā)。Autolisp是由Autodesk公司開發(fā)的一種LISP程序語言,自AutoCAD R2.6以來便嵌套于AutoCAD內部,是資格最老的表處理語言之一,既具有一般高級語言的功能,又具有強大的圖形處理功能,其對象處理功能函數(shù)可以直接訪問當前圖形的數(shù)據(jù)庫,利用其表處理功能函數(shù)處理批量孔的坐標點,優(yōu)與其他語言的二維數(shù)組法。
DCL語言是AutoCAD自R12版起為二次開發(fā)引入的可編程人機對話框界面工具,對話框形象、直觀,輸入、修改方便、鼠標與鍵盤并用,是當今最流行的的人機互動界面。與AutoLISP配合使用,改進了圖形用戶接口,改變了在COMMAND命令行通過鍵盤人機交互輸入信息的方式,使用戶操作更加直觀簡便。
在數(shù)控加工中,鉆孔加工程序是典型的2D程序,以鉆孔循環(huán)的形式給出,格式固定,以點(圓心)為加工驅動幾何體,加工出的孔徑取決與所裝夾鉆頭的直徑,與程序無關。以FANUC或MITSUBISHI系統(tǒng)為例,其標準格式如圖2所示。
圖2 鉆孔程序標準格式
其中,其中(x1 y1),(x2 y2),...,(xn yn)表示1-n個點的坐標。如果要直鉆,或鏜孔,只需將表1中G83..相應改成G81...或G85...等即可。因此,孔的數(shù)控程序設計,核心是確定圓心點,求出圓心點,將其輸入到NC文件中,這也是程序設計的基本思路。
AutoCAD通過圖形來表達零件的幾何信息,數(shù)控加工的NC指令有固定的格式。以AutoCAD零件圖為原始數(shù)據(jù),利用DCL設計人機交互對框,形象直觀的輸入數(shù)控加工工藝參數(shù)等;利用Autolisp直接操作選擇的圖素,通過循環(huán)指令,逐個訪問其數(shù)據(jù)庫,從關聯(lián)表中搜索提取CAD圖形中的圓的圓心、半徑等幾何信息,過濾掉與要加工孔徑不一致的孔,構建符合要求的圓心坐標點的表,并對表進行數(shù)據(jù)排序,優(yōu)化最短路徑;通過文件處理及字符串函數(shù),將圓心點表有關信息寫入指定NC指令文件中,輸出符合標準格式的數(shù)控加工程序指令代碼,方便快捷的完成若干個點的數(shù)控加工程序設計,實現(xiàn)批量孔的數(shù)控自動編程,程序框圖如圖3所示。
設計如圖4所示的鉆孔參數(shù)人機交換輸入界面,按照加工習慣,深度參數(shù)中,通常只有“加工深度”需要因工件而更改,其余使用缺省值;刀具參數(shù)一般不需修改,使用缺省值即可,鉆孔的大小,只跟實際加工時裝夾的鉆頭直接相關。“工作原點...”用來設定編程原點,“圖素...”按鈕用來選擇圖素,其實質是調用了選擇集函數(shù)(ssget),支持AutoCAD的所有選擇機制,比如可以用窗口等快速選擇圖素。“直徑10”,限定了選擇圖素中直徑為10mm的孔為本次鉆孔的幾何對象,“排序方式”用來優(yōu)化加工路徑,縮短加工時間,生成的數(shù)控程序指令輸出到“d: c"給定的文件中。
圖3 程序框圖
圖4 鉆孔工藝參數(shù)對話框
DCL語言程序片段如下:
提取孔圖形信息的方法有多種,比如通過通過人機交互獲取、DXF文件導入,由于Autolisp可以直接操作選擇集,方便設定工件原點,人機交互更為方便。通過圖4的“圖素...”按鈕選取若干圖素后,對選中的圖素,通過循環(huán)指令,利用對象處理函數(shù)(entget)逐個訪問其數(shù)據(jù)庫,利用(ASSOC)函數(shù),關聯(lián)表中搜索提取CAD圖形中的有用圖形信息,對圖素類型為“CIRCLE"的圖素,提取其半徑信息。對與直徑大小符合加工要求的孔,提取其圓心坐標,并構建一個圓心坐標點的表LCPT。這些圓心點,就是數(shù)控程序的點位坐標參數(shù)源。程序如下:
圓心點表LCPT中的圓心坐標,排列沒有規(guī)律。為了使走刀路徑最短,縮短加工時間,優(yōu)化加工路徑,因此需對表中的圓心點進行排序。排序的算法比較多,本案提供了以X坐標和以Y坐標排序兩種選擇。如果選擇了最終以X坐標排序,首先進行按Y坐標排序,然后再進行X坐標排序,可以保證優(yōu)先以X排序,X坐標相等的情況下,再以Y坐標排序。反之亦然,避免了點坐標跳躍的情況。程序如下:
圓心坐標點表排好序后,設計一個子程序,循環(huán)讀取圓心點坐標,利用AUTOLISP 的文件處理及字符串函數(shù),將表中每個圓心點坐標,寫入標準格式數(shù)控孔加工程序(圖2)中,不需要后處理,實現(xiàn)了自動編程,改程序可直接用于FANUC或MITSUBISHI數(shù)控機床。如果是其他控制器機床,只需更改標準注格式即可。程序代碼如下:
自動編程系統(tǒng)包括三個文件:AutoLISP文件:DRILL.LSP;對話框文件:DRILL.DCLH和對話款圖像文件:DRILL.SLD,第一次使用時,需先將三個文件拷入AutoCAD的SUPPORT路徑下。打開需要加工孔的DWG文件,點擊主菜單下的“工具”→AUTOLISP→加載,選擇DRILL.lsp程序,點擊“加載”。運行DRILL命令,按照圖4所示的對話框,完成相關的信息輸入,即可一次性快速完成若干孔的數(shù)控加工指令的自動編程。
以AutoCAD零件圖為原始數(shù)據(jù),利用DCL設計人機交互對框,形象直觀方便信息輸入,利用Autolisp直接操作選擇的圖素,從AutoCAD圖形中提取圓心、半徑等幾何信息,去掉與要加工孔徑不一致的孔并進行數(shù)據(jù)排序,優(yōu)化最短路徑,通過文件處理函數(shù),將圓心點等有關信息輸出到標準格式的NC指令文件中,完成若干個點的數(shù)控加工程序設計,無需再后處理,可直接用于數(shù)控機床加工,實現(xiàn)AutoCAD平臺的批量孔的數(shù)控自動編程。
雖然目前數(shù)控編程多采商品化的CAM軟件自動編程,但在模具加工企業(yè)、模坯制造廠等需要加工批量孔的企業(yè),無需轉換圖形,無需另外繪圖,無需額外購置軟件,無需從事繁雜的選擇操作,即可方便快捷自動完成批量孔的數(shù)控指令自動編程,本方案有較高的實用價值。
[1] 陳桂友.石材加工中的數(shù)控自動編程技術研究[J].制造業(yè)自動化,2004(3):0040-3.
[2] 賈毅朝.基于AutoCAD的數(shù)控沖床自動編程系統(tǒng)研究與開發(fā)[J].機床與液壓,2008(7):384-4.
[3] 吳竹溪.謝友寶.數(shù)控加工中圖形自動編程系統(tǒng)研究[J].組合機床與自動化加工技術,2002(4):26-27.
[4] 趙宏.利用AUTOLISP快速分割批量數(shù)控程序[J].機械,2013(7):61-65.
[5] 趙景亮.AUTOCAD2004與AUTOLISP二次開發(fā)技術[M].北京:清華大學出版社.2004
[6] 吳永進.AUTOLISP&DCL基礎篇[M].北京:中國鐵道出版社.2002.