數(shù)控線切割機(jī)床是利用上下移動的鉬絲,對金屬進(jìn)行電火花切割的機(jī)床。幾十年來,全世界出現(xiàn)了許多系列的線切割機(jī)床,其相應(yīng)的加工指令也有了國際ISO和 EIA標(biāo)準(zhǔn)。國產(chǎn)線切割機(jī)床因?yàn)閮r(jià)格便宜、維修方便、可靠性好、熟練操作人員多而在全國各地有廣泛的用戶。然而,國產(chǎn)機(jī)床廣泛采用的是3B格式的加工指令。一般的圖形化編程系統(tǒng)(如UGⅡ、MasterCAM等)僅能生成符合ISO和EIA標(biāo)準(zhǔn)的加工代碼,對于3B格式代碼無能為力。近年來Auto CAD在國內(nèi)機(jī)械行業(yè)得到了廣泛應(yīng)用。本文在Auto CAD上開發(fā)了一個(gè)3B指令圖形化自動編程系統(tǒng),它采用AutoLisp語言讀取實(shí)體組碼數(shù)據(jù)來轉(zhuǎn)化成3B加工代碼,實(shí)踐證明其精確、實(shí)用、效率高。
1 原理
1.1 3B指令代碼的格式
格式為:B XY B YY B J G Z
其中,B是分隔符。XY和YY:①加工直線時(shí),是直線的終點(diǎn)坐標(biāo)(原點(diǎn)處于直線的起點(diǎn));②加工圓弧時(shí),是其起點(diǎn)坐標(biāo)(原點(diǎn)處于圓弧的圓心)。J和G:G是計(jì)數(shù)方向,有X、Y兩個(gè)方向,分別是Gx和Gy,如圖1所示,對于直線,當(dāng)線處在陰影區(qū)域時(shí),G取Gy,否則G取Gx;若圓孤的終點(diǎn)處于陰影區(qū),G取Gx,否則取Gy。J則是加工軌跡(直線或圓?。┰谟?jì)數(shù)方向上的投影線長度或投影長度之和; Z是加工指令,共有12種(如圖2)。
1.2 Auto CAD實(shí)體選擇集及實(shí)體組碼
在Auto CAD中,每個(gè)圖形元素都可做為獨(dú)立的實(shí)體來處理,還可以用ssget()函數(shù)來構(gòu)造需要的實(shí)體選擇集。每個(gè)實(shí)體的數(shù)據(jù),都可查找其實(shí)體組碼來獲得。每個(gè)實(shí)體都有一個(gè)實(shí)體名,用組碼-1表示,還有一個(gè)實(shí)體類型,如Line、Arc、Pline等,用組碼0表示,其他組碼關(guān)系見下表。
圖1 計(jì)數(shù)方向選擇(左為直線,右為圓?。?/div>
圖2 加工指令示意圖(左為直線,右為圓?。?/div>
下面是一段線的實(shí)體組碼:
?。?1.<Entity name: 60000014>)
(0.”LINE”)
?。?.”0”)
(10 1.0 2.0 0.0)
?。?1 6.0 6.0 0.0)
2 程序設(shè)計(jì)的方法
程序首先調(diào)用gettfiled()函數(shù)創(chuàng)建一個(gè)NC文件(該文件以.3B為擴(kuò)展名),然后用ssget()函數(shù)定義實(shí)體選擇集(由用戶依加工順序選?。?,經(jīng)解碎后成為“Line”和“Arc”兩種類型(經(jīng)研究發(fā)現(xiàn),對v12.0,圖形實(shí)體解碎到最后均為Line和Arc,如Fit擬合的pline解碎后為Arc,spline擬合的pline解碎后為line等等),因此程序的核心以line和Arc為對象。程序調(diào)入下一個(gè)實(shí)體,判斷其是line還是Arc,分流后按line或Arc的組碼提取幾何數(shù)據(jù)進(jìn)行計(jì)算,最后形成一字符串“B XX B YY B J G Z”,將這行字符添加到NC文件中去,然后再調(diào)入一個(gè)實(shí)體進(jìn)行循環(huán)計(jì)算,這樣NC文件就一行一行地增加,直到實(shí)體被編輯完畢。
對于直線,可用10和11組碼提取其起點(diǎn)和終點(diǎn)坐標(biāo),然后將原點(diǎn)換到起點(diǎn),此時(shí)XX和YY就是終點(diǎn)坐標(biāo)。令dx1和dx2分別是XX、YY的絕對值,則當(dāng)dx1>dy1時(shí),G=Gx、J=dx1,否則,G=Gy、J=dy1。對于圓弧,可用10、40、50、51組碼提取圓心、半徑、起始角度、終止角度。圓弧的問題之一是對投影長度J的計(jì)算,如圖3所示。
圓弧的J計(jì)算分成3種情況(圖3),對于①J=|Qx-Zhx|或J=|Qy-Zhy|(Q:起點(diǎn),Zh:終點(diǎn))。對于②將原點(diǎn)移到Q點(diǎn),此時(shí)J=|Qx+Zhx|或J=|Qy+Zhy|。對于③將原點(diǎn)分別移到Q1、Q2來計(jì)算Q1A’和Q2B’:Q1A’=|Qx|或|Qy|、Q2B’=
|Zhx|或|Zhy|,則J=Q1A’+Q2B’+D。