韓洪征,朱穎,孫琳
(1. 中航發(fā)沈陽黎明航空發(fā)動機(jī)有限責(zé)任公司,遼寧 沈陽 110034; 2. 沈陽工學(xué)院,遼寧 沈陽 110034)
在發(fā)動機(jī)的生產(chǎn)中,車加工占比很大。車加工數(shù)控程序的仿真是一個細(xì)致、耗時的過程,現(xiàn)有的成熟仿真軟件如VERICUT,憑借其強(qiáng)大的后處理功能,能夠以三維實體狀態(tài)模擬實際加工,分析干涉、碰撞等。但進(jìn)行數(shù)控程序復(fù)查時只能在程序運(yùn)行結(jié)束后,運(yùn)行“自動比較”命令比較設(shè)計模型與VERICUT輸出模型,進(jìn)行過切或殘留檢查。由于無法設(shè)定過切、殘留值測量方向,測量的結(jié)果往往達(dá)不到理想要求。
針對這些問題,基于AutoCAD軟件,使用AutoLISP語言編程[1]開發(fā)出數(shù)控車加工仿真功能,起到對VERICUT進(jìn)行補(bǔ)充作用:
1) 借助AutoCAD軟件的縮放功能實時檢查刀軌與部件輪廓的相對位置,并可隨意方向測量過切殘留。相比于VERICUT軟件的數(shù)控程序復(fù)查功能(圖1),AutoCAD可以隨時隨意對工件外廓與刀軌圖像進(jìn)行縮放和平移,以檢查二者的相對位置(如圖2);
2) 無需復(fù)雜后置處理,靈活運(yùn)用,通用性強(qiáng),可支持臥車、立車,F(xiàn)anuc系統(tǒng)、Siemens系統(tǒng)的仿真;
圖1 利用VERICUT軟件復(fù)查程序
圖2 使用開發(fā)功能進(jìn)行車加工程序仿真
3) 零件尺寸進(jìn)行微調(diào)、更改,無需進(jìn)行繁雜的模型轉(zhuǎn)換,只需在CAD上更改后的二維輪廓圖上采點(diǎn)生成程序段,反應(yīng)迅速,方便準(zhǔn)確。
數(shù)控程序是控制機(jī)床運(yùn)動的語言,常見的語言系統(tǒng)有Fanuc以及Siemens,由于二者有很大的共通性,以Fanuc系統(tǒng)數(shù)控車加工程序為例分析,其他系統(tǒng)以此類推。
圖3為工件輪廓圖。程序零點(diǎn)設(shè)在大端面中心,刀片采用VBMT160408(35°菱形刀片),刀尖半徑為0.8mm。輪廓編程,程序如表1所列。
圖3 工件輪廓圖
程序段注釋O1234(REV.A,R0.8)程序號以及注釋G97M03 S30指定轉(zhuǎn)速G40重置半徑補(bǔ)償方式G0Z500.快速進(jìn)給G1G42X32.75F50.直線插補(bǔ),刀半徑補(bǔ)償Z400.F20.直線插補(bǔ),更改進(jìn)給Z100.F10.直線插補(bǔ),更改進(jìn)給Z61.446F0.2直線插補(bǔ),更改進(jìn)給,開始切削G2X33.562 Z59.69R4.圓弧插補(bǔ)G1X53.052 Z39.741直線插補(bǔ)G2X98.517 Z25.546R25.3圓弧插補(bǔ)G1X150.直線插補(bǔ)G0G40Z500.快速進(jìn)給,半徑補(bǔ)償重置M05主軸停M30機(jī)床停
仿真一個程序,主要包括兩個部分內(nèi)容:一是還原出刀具運(yùn)行的軌跡,并與工件輪廓進(jìn)行對比驗證;二是標(biāo)識出每段軌跡運(yùn)行時所對應(yīng)的轉(zhuǎn)速、進(jìn)給、刀補(bǔ)方向等輔助信息。
a) 刀軌模擬
控制車刀運(yùn)動的準(zhǔn)備功能字是“G00”、“G01”、“G02”、“G03”,其中“G00”表示快速定位到指定坐標(biāo)位置;“G01”是以給定進(jìn)給量(以“F”輔助功能字引出)進(jìn)行直線插補(bǔ)運(yùn)動到指定坐標(biāo)位置;“G02”、“G03”準(zhǔn)備功能字表示分別以順時針或逆時針方向進(jìn)行圓弧插補(bǔ)。這些準(zhǔn)備功能字決定刀具軌跡的形狀。輔助功能字“X”,“Z”決定軌跡的坐標(biāo)選擇,并引出具體坐標(biāo)值,對于圓弧插補(bǔ),還要提供輔助功能字“R”來標(biāo)明轉(zhuǎn)動圓弧半徑。
b) 輔助信息標(biāo)識
轉(zhuǎn)速、進(jìn)給、刀補(bǔ)方向需要在每一段程序中標(biāo)識出來。轉(zhuǎn)速以“S”輔助功能字引出;進(jìn)給以“F”輔助功能字引出;刀具半徑補(bǔ)償準(zhǔn)備功能字為“G40”,“G41”以及“G42”,由于數(shù)控程序有輪廓、刀心編程方式的分別,在仿真過程中,需要體現(xiàn)出程序軌跡對應(yīng)的補(bǔ)償方向。
圖4為程序設(shè)計流程圖,從圖4上可以看出,讀入程序后主要進(jìn)行兩個方面的內(nèi)容:一是繪出刀具軌跡,二是在每一條軌跡上做出注釋。
圖4 程序設(shè)計流程圖
AutoLISP可以利用命令“getfiled”打開文本文檔[2],因此,將程序保存在文本文檔里,在AutoCAD的命令欄里輸入“l(fā)athe”命令,程序打開一個對話框供用戶選擇程序,如圖5所示。
圖5 用戶選擇仿真的程序
選擇程序后,對話框關(guān)閉,程序開始仿真,仿真過程如圖6所示,每按下一次空格,軟件讀取一條程序段顯示在命令行的輸入框,并將已執(zhí)行完畢的程序段自動傳遞到輸入歷史框里。與此同時,執(zhí)行的程序?qū)?yīng)的刀軌按照插補(bǔ)方式的不同以圖層區(qū)分并繪制在工件輪廓圖上。仿真完畢后,將鼠標(biāo)放在刀具軌跡線上方,即可通過“超鏈接”[3]方式顯示出該段程序的輔助信息。如圖6所示的超鏈接信息“S30F0.2G42”,表示轉(zhuǎn)速30r/min,進(jìn)給0.2mm/r,程序沿前進(jìn)方向右偏置。通過鼠標(biāo)滾輪的縮放并CAD的測量功能,可以測量刀具軌跡與工件輪廓的任意方向的距離,以此得到任意方向的過切量或殘留量。
圖6 仿真結(jié)果展示
從流程圖中可以看出,程序運(yùn)行的方式就是在程序段中搜尋功能字如“G、F、X、Z、R、S”。下面列出尋址“F”功能字并獲得“F”后面引出的進(jìn)給值的程序偽代碼:
(提取程序段data)
(setqF_code(vl-string-position70data))
;搜尋程序中的“F”字的位置代號
(setqF_value"")
;存放進(jìn)給值的變量F_value置空
(whileF_code
;當(dāng)存在“F”字進(jìn)行如下操作
(setqF_code(1+F_code))
;設(shè)置“F”后字符位置代號
(setqaddF_value(vl-string-eltdataF_code))
;析出“F”后一位字符
(cond
((>addF_value57) (setqF_codenil))
(( ((=addF_value47) (setqF_codenil)) ;若不為數(shù)字或小數(shù)點(diǎn),則退出循環(huán) (t(progn (setqF_value(strcatF_value(chraddF_value)))) (if(>= (1+F_code) (strlendata)) (setqF_codenil))) ;若為數(shù)字或小數(shù)點(diǎn)則放入F_value并搜尋下一個,直到程序段最后則退出循環(huán) ) ) (if(/=F_value"") (setqF_cord(atofF_value))) ;如存在F值,賦值給F_cord。 當(dāng)新建工件程序,或者工件尺寸發(fā)生變化時需要重編程序,使用UG或Mastercam比較繁瑣,對于更改局部程序,需要手動去計算點(diǎn)位坐標(biāo)。由于增加了人為干擾因素,容易造成程序錯誤。針對這一不便,基于AutoCAD使用AutoLISP編程開發(fā)出采點(diǎn)功能[4],直接在工件輪廓上采集線條端點(diǎn)位置信息,并將該位置信息按照機(jī)床代碼格式直接以程序段輸出。 采集CAD圖形上的點(diǎn)位的坐標(biāo)可以使用“getpoint”命令得到一個點(diǎn)位的列表,分別用“car”和“cadr”取得該點(diǎn)位的X坐標(biāo)和Y坐標(biāo)。為防止點(diǎn)位捕捉錯誤,可在“對象捕捉”中使用命令(setvar"osmode" 4133)[5]設(shè)置捕捉模式為端點(diǎn)、圓心、交點(diǎn)、延伸選項。 機(jī)床的坐標(biāo)與CAD的坐標(biāo)有著一一對應(yīng)關(guān)系,表2列出了這種對應(yīng)關(guān)系。 表2 CAD坐標(biāo)與機(jī)床坐標(biāo)對應(yīng)關(guān)系 根據(jù)表中對應(yīng)坐標(biāo)關(guān)系進(jìn)行坐標(biāo)轉(zhuǎn)換,并將坐標(biāo)值以程序語句形式保存成字符串[6]。 (vl-load-com) ;調(diào)用VLISP擴(kuò)展功能 (setqmynote(vlax-create-object"htmlfile")) ;建立html (setqRESULT(vlax-invoke(vlax-get(vlax-getmynote'PARENTWINDOW) 'CLIPBOARDDATA) 'SETDATA"Text"STR)) ;賦值給RESULT (vlax-release-objectmynote) ;關(guān)閉html 按以上程序代碼將坐標(biāo)點(diǎn)轉(zhuǎn)換的程序語句輸出到粘貼板。如圖7所示,分別選取圖中的1,2兩點(diǎn),對應(yīng)的程序語句如圖中信息提示,將坐標(biāo)信息粘貼到文本編輯器中并添加準(zhǔn)備功能字等便可以形成數(shù)控程序。 圖7 采點(diǎn)結(jié)果展示 數(shù)控程序仿真功能[7],針對一些非宏普通程序,不需要檢查碰撞等復(fù)雜工況的條件下,能夠很好地對數(shù)控車加工程序進(jìn)行仿真驗證,相對一些大型仿真軟件,能夠避免過于復(fù)雜的后置設(shè)置[8],并且在自動比較分析時可以在任意方向進(jìn)行余量分析。兼容Fanuc和Siemens仿真系統(tǒng),運(yùn)用靈活,通用性強(qiáng)。 數(shù)控程序采點(diǎn)功能,可以簡化程序局部更改過程,對于尺寸變化需要更改程序的情況,使用采點(diǎn)功能直接在工件二維圖上采集坐標(biāo)點(diǎn),并將其自動轉(zhuǎn)化為機(jī)床程序坐標(biāo)語句,后續(xù)添加準(zhǔn)備功能字等即可變成程序段[9],避免在CAD/CAM軟件上重新畫圖,重新出程序的復(fù)雜過程。3 程序創(chuàng)建及更改采點(diǎn)功能開發(fā)
3.1 點(diǎn)位采集
3.2 坐標(biāo)轉(zhuǎn)換與程序段輸出
4 結(jié)語