用AutoCAD圖形計(jì)算刀具中心軌跡的方法
筆者用Autolisp R12.0編寫了一個(gè)應(yīng)用程序,程序從AutoCAD圖形中獲得零件輪廓的坐標(biāo)信息,并根據(jù)這些信息和其它參數(shù)計(jì)算出刀具中心的運(yùn)動(dòng)軌跡,并直接生成加工代碼。
數(shù)控銑床在加工過程中,遇到輪廓較復(fù)雜的零件時(shí),用人工編寫數(shù)控程序需要花費(fèi)大量的時(shí)間,且易出錯(cuò)。筆者用Autolisp R12.0編寫了一個(gè)應(yīng)用程序,程序從AutoCAD圖形中獲得零件輪廓的坐標(biāo)信息,并根據(jù)這些信息和其它參數(shù)計(jì)算出刀具中心的運(yùn)動(dòng)軌跡,并直接生成加工代碼。該程序?qū)Ω纳乒ぷ髻|(zhì)量、保證編程的正確性和提高處理更復(fù)雜加工作業(yè)的能力具有較好的實(shí)用價(jià)值。
一、零件輪廓坐標(biāo)信息的獲取
從圖形中獲得信息,首先要把零件按實(shí)際尺寸準(zhǔn)確進(jìn)行繪制,并使圖形坐標(biāo)和機(jī)床加工坐標(biāo)一致。為了選取方便,通常要把零件輪廓線組合成一整體,對(duì)于封閉輪廓,可用Bloly命令使之形成一條多義線(Polyline),對(duì)于非封閉輪廓,可以用Pedit的子命令Join使之形成多義線。多義線是 AutoCAD中的特殊圖形實(shí)體,它由一系列首尾相連的直線和圓弧組成,在圖形數(shù)據(jù)庫中以頂點(diǎn)(即相連點(diǎn))子實(shí)體的形式保存信息,與位置、形狀有關(guān)的信息主要有兩個(gè):一是頂點(diǎn)坐標(biāo)數(shù)值,保存在10組碼中;二是頂點(diǎn)凸度(Bulge),保存在42組碼中。
AutoCAD中約定:凸度為0是直線頂點(diǎn),它與下一個(gè)頂點(diǎn)連接為一直線;凸度不為0是圓弧頂點(diǎn),它與下一個(gè)頂點(diǎn)連接為一圓。煌苟戎禐樨(fù)表示順時(shí)針圓弧,凸度值為正表示逆時(shí)針圓弧;凸度絕對(duì)值小于1表示圓弧包角小于180°,凸度絕對(duì)值大于1表示圓弧包角大于180°。凸度與圓弧包角的關(guān)系是:圓弧包角=4×arctan|凸度值|。
多義線的直線頂點(diǎn)和圓弧頂點(diǎn)都只保存了直線和圓弧的起點(diǎn)標(biāo)志,終點(diǎn)坐標(biāo)則都保存在下一個(gè)頂點(diǎn)中。
Autolisp語言提供了讀取頂點(diǎn)實(shí)體組碼數(shù)據(jù)的函數(shù),因此,可以很方便地知道多義線各頂點(diǎn)的坐標(biāo)值和凸度值,再通過坐標(biāo)系轉(zhuǎn)換和計(jì)算,就得到了零件輪廓線上直線段的起點(diǎn)、終點(diǎn)坐標(biāo)和圓弧段的起點(diǎn)、終點(diǎn)、半徑、圓心等幾何信息。
二、與刀具運(yùn)動(dòng)軌跡有關(guān)的因素
刀具運(yùn)動(dòng)軌跡不僅與零件輪廓形狀有關(guān),還與該輪廓是零件的內(nèi)表面還是外表面、加工方式是順銑還是逆銑、銑刀半徑、公差尺寸、加工變形等諸因素有關(guān)。
加工零件內(nèi)表面:順銑時(shí),刀具按逆時(shí)針方向運(yùn)動(dòng)(主軸正轉(zhuǎn),下同)(見圖1a),逆銑時(shí),則刀具按順時(shí)針方向運(yùn)動(dòng)(見圖1b)。
圖1 刀具運(yùn)動(dòng)與零件表面和加工方法的關(guān)系
加工零件外表面:正好相反,順銑時(shí),刀具順時(shí)針運(yùn)動(dòng)(見圖1c),逆銑時(shí),則刀具逆時(shí)針運(yùn)動(dòng)(見圖1d)
刀具中心與零件輪廓線的距離除了銑刀半徑外,還要考慮尺寸公差和加工時(shí)“讓刀”變形的情況,若按名義尺寸進(jìn)行加工,一般內(nèi)表面尺寸偏小,外表面尺寸偏大,因此,必須設(shè)置一個(gè)調(diào)整變量,用于對(duì)名義尺寸進(jìn)行調(diào)整。
此外,對(duì)非平滑過渡的連接處,要考慮圓弧過渡方式(也可用其它過渡方式)。
三、刀具中心軌跡的計(jì)算
計(jì)算刀具中心軌跡是按刀具運(yùn)動(dòng)方向,依次取出多義線頂點(diǎn)實(shí)體的數(shù)據(jù)進(jìn)行計(jì)算和轉(zhuǎn)換。首先根據(jù)凸度值判斷頂點(diǎn)的性質(zhì),由此確定對(duì)象是直線還是圓弧。如果是直線頂點(diǎn),則先取得該頂點(diǎn)和下一個(gè)頂點(diǎn)的坐標(biāo)值,再根據(jù)加工方式,用Polar函數(shù)分別把直線的兩個(gè)端點(diǎn)沿起點(diǎn)到終點(diǎn)方向加90°(順銑)或減90°(逆銑)后,移動(dòng)刀具半徑和調(diào)整變量之差的距離,得到刀具中心的起點(diǎn)和終點(diǎn)坐標(biāo)。
如果是圓弧頂點(diǎn),則先取得該頂點(diǎn)的坐標(biāo)值和凸度值以及下一個(gè)頂點(diǎn)的坐標(biāo)值,計(jì)算出圓心和半徑,再把兩端點(diǎn)沿圓心方向(凹弧)或與圓心相反方向(凸弧)移動(dòng)刀具半徑和調(diào)整變量之差的距離。
一段直線或一段圓弧是上述算法,當(dāng)它們組合在一起時(shí),情況要復(fù)雜一些,主要是判斷它們在連接處是否需要過渡圓弧以及是否重復(fù)計(jì)算。一般來講,兩直線銜接,要有過渡圓弧;直線和圓弧或兩圓弧銜接,相切時(shí)不需要過渡圓弧,且相切處只需計(jì)算一點(diǎn),不相切時(shí)需要過渡圓弧。
特殊情況下,圓弧半徑與刀具半徑相等的凹圓弧,后接相切直線或圓弧,均可不需計(jì)算。
值得注意的是,上述計(jì)算的前提是多義線的頂點(diǎn)排列順序與刀具運(yùn)動(dòng)方向是一致的。而用Bpoly命令形成的多義線的頂點(diǎn)在圖形數(shù)據(jù)庫中總是按逆時(shí)針方向排列保存的,且排列的起點(diǎn)與生成多義線時(shí)的選擇點(diǎn)有關(guān),因此,在計(jì)算前必須先確定刀具運(yùn)動(dòng)方向。當(dāng)?shù)毒呤琼槙r(shí)針運(yùn)動(dòng)時(shí),則需要顛倒頂點(diǎn)原來的排列順序,且要改變頂點(diǎn)的性質(zhì),即直線頂點(diǎn)改為圓弧頂點(diǎn),圓弧頂點(diǎn)改為直線頂點(diǎn)。
四、操作對(duì)話框設(shè)計(jì)
為了使用操作方便,要用DCL語言設(shè)計(jì)一個(gè)操作對(duì)話框,如圖2所示。在這個(gè)對(duì)話框中,通過按下選擇輪廓按鈕(在圖形上選取加工輪廓線,并獲得坐標(biāo)信息)、選擇零件表面和加工方式(以確定刀具的運(yùn)動(dòng)方向)、輸入調(diào)整參數(shù)和刀具號(hào)(確定刀具中心和輪廓線的偏移量)等操作后,就可用模擬顯示按鈕,在 AutoCAD圖形編輯器中直接進(jìn)行刀具運(yùn)動(dòng)的二維仿真模擬顯示;觀察滿意后,再分別輸入切削深度、每次進(jìn)刀量、切削速度、進(jìn)刀速度、精銑速度、主軸轉(zhuǎn)速等編程加工參數(shù),按下確認(rèn)按鈕,即可將完整的數(shù)控加工程序輸出到指定的文本文件中。
圖2 參數(shù)輸入對(duì)話框
五、結(jié)束語
用這種方法進(jìn)行數(shù)控編程,只要原圖正確,都能保證編程一次成功,且編程人員所要做的工作就是選擇加工對(duì)象并輸入加工參數(shù)。既能減輕勞動(dòng)強(qiáng)度,縮短編程時(shí)間,又可減少差錯(cuò),使編程工作簡便,效率提高。
|