曹智梅
(廣東松山職業(yè)技術學院,廣東 韶關 512126)
數(shù)控加工編程一般分為手工編程和自動編程。手工編程編制的程序簡潔明了,識讀性強,程序段少。自動編程通常是借助CAD/CAM軟件來實現(xiàn),其程序段多,占用內存大,可讀性差。在近年的數(shù)控大賽中,數(shù)控車床、數(shù)控銑床和加工中心都包含橢圓曲線的加工。對于橢圓曲線,數(shù)控機床中并沒有提供專門的加工指令。雖然現(xiàn)在越來越多的操作者喜好用CAD/CAM自動編程軟件進行曲線的加工,但由于宏程序具有通用性好、易讀性強、程序段短等優(yōu)點,在數(shù)控加工中仍然占有非常重要的地位。
宏程序使用起來事半功倍,但在真正編寫宏程序時,由于點的坐標表達較繁瑣,編寫過程中極易出錯。本文借助VB軟件,對橢圓加工參數(shù)進行了一般表達,將其長半軸、短半軸、加工刀具號、進給率、主軸轉速、坐標位置和坐標旋轉角度等多個參數(shù)設置為可輸入的變量。當這些變量發(fā)生改變時,程序對應進行自動修改,大大減輕了編程人員的工作量,結合自動編程和手工編程的優(yōu)勢,在保證程序可讀性的前提下,提高了程序的正確性和編寫效率[1]。
采用宏程序加工橢圓時,一般采用橢圓參數(shù)方程。橢圓的參數(shù)方程為:x=acosθ,y=bsinθ。橢圓參數(shù)方程中的參數(shù)θ是宏程序的編程變量,它控制著橢圓曲線加工的起止點位置。方程中每一個θ對應于一個x和一個y,當θ從0°變化到360°時,就可以求出橢圓上插補點對應的(x,y)坐標,無論加工哪個象限的橢圓,僅需要用一個表達式來表達。
橢圓標準參數(shù)方程描述的橢圓中心剛好位于坐標原點,且橢圓的長半軸與X軸坐標重合。當橢圓的中心不與原點重合,且橢圓的長半軸與X軸逆時針成一定角度時,橢圓上點的坐標則需要進一步計算[2]。
橢圓圖形位置如圖1所示。圖1a中,已知橢圓中心O′在XOY坐標系中的坐標值為(x0,y0),橢圓長半軸長度為a,橢圓短半軸長度為b,則橢圓上任意點的坐標可表達為:
x=acosθ+x0
y=bsinθ+y0
a) 橢圓平移
b) 橢圓平移+旋轉
當橢圓平移后,橢圓長軸雙繞橢圓中心逆時針旋轉角度φ(見圖1b),則此時需要對橢圓上點的坐標重新計算。
當數(shù)控機床具備旋轉指令G68時,旋轉中心為(x0,y0),旋轉角度為φ,編寫的程序為G68 Xx0Yy0Rφ。若機床沒有可供使用的旋轉指令,則橢圓上點的坐標可表達為:
x=(acosθ+x0)cosφ+(bsinθ+y0)sinφ
y=(bsinθ+y0)cosφ-(acosθ+x0)sinφ
在進行宏程序編制時,要用到變量表達,首先要將圖形上的點的坐標進行數(shù)值表達。宏程序主要有程序開頭、程序中間和程序結尾3部分,程序開頭主要是描述加工前的準備狀態(tài),如主軸啟動、換刀、快速定位、冷卻液開關控制等;程序中間部分是整個程序的核心,主要通過循環(huán)語句來控制走刀的路線,重點是插補點的坐標計算公式。程序結尾主要是退刀,以及程序結束語句等。
VB是一種可視化編程語言,具備強大的計算功能、輸出功能和控制功能,能很好地完成條件判斷,以及按計劃的輸出。
本程序的界面設計如圖2所示。整個界面分成4個區(qū)域,第1個區(qū)域為橢圓參數(shù)區(qū),將橢圓長半軸、短半軸、橢圓中心點坐標、橢圓旋轉角度等參數(shù)進行輸入;第2個區(qū)域為加工參數(shù)區(qū),主要是將加工過程中的刀具號、主軸轉速、進給率、切削液開關控制等參數(shù)進行設定;第3個區(qū)域為橢圓圖形顯示區(qū),方便使用者理解各個參數(shù)的含義;第4個區(qū)域為宏程序生成區(qū),也是整個軟件的結果輸出區(qū),是整個系統(tǒng)界面中的核心區(qū)域[3-4]。
圖2 橢圓宏程序自動生成系統(tǒng)初始界面
橢圓曲線參數(shù)和切削加工參數(shù)都是編程過程中需要設置的變量。
1)橢圓曲線參數(shù)主要包括橢圓的定形尺寸和定位尺寸,橢圓的定形尺寸有橢圓長半軸a和短半軸b,橢圓的定位尺寸有橢圓中心位置的坐標x0和y0,橢圓的旋轉角度φ。這些基本參數(shù)在加工過程中會隨著具體加工對象的不同而改變,也是會變動的變量,均設置成變量,編程前可以按實際情況進行修改。
2)切削加工參數(shù)主要包括刀具號、刀具直徑、轉速和進給率、切削深度以及切削液開關控制等。在加工過程中,切削參數(shù)也是需要變化的量,設置好后,可以在自動編程中體現(xiàn)。
圖2中,橢圓長半軸長度默認值設置成50,橢圓短半軸長度默認值設置成30,橢圓中心坐標X向平移和Y向平移均默認設置為0,橢圓長軸與X軸旋轉角度默認為0,橢圓插補角度增量也就是橢圓參數(shù)方程中的變量θ默認值設置為1;加工參數(shù)中刀具號默認值設置為01,主軸轉速默認值設置為2 500,進給率設置為100,切削液默認值設置成開(即M8)。
為了對編程中的變量進行控制,VB程序設計時需要設置10個變量值,即6個橢圓參數(shù)、3個加工參數(shù)和1個冷卻液控制參數(shù)進行對應,編程加工參數(shù)設置如下:
Option Explicit
Private Sub Command1_Click()
Dim A1!, B2!, C3!, D4!, E5!, F6!, G7%, H8!, I9%, I%, J10%
List1.Clear
A1 = Val(Text1.Text) '橢圓長半軸
B2 = Val(Text2.Text) '橢圓短半軸
C3 = Val(Text3.Text) '橢圓中心坐標X向平移
D4 = Val(Text4.Text) '橢圓中心坐標Y向平移
E5 = Val(Text5.Text) '橢圓的旋轉角度
F6 = Val(Text6.Text) '橢圓插補角度增量
G7 = Val(Text7.Text) '刀具號碼
H8 = Val(Text8.Text) '主軸轉速
I9 = Val(Text9.Text) '進給率
J10 = 8 '切削液開
整個自動編程算法包含3個部分:第一部分是輸入已知參數(shù),通過已知參數(shù)來計算編程的變量。第二部分是VB程序計算,通過橢圓宏程序的部體框架設計,將計算的數(shù)值替代程序中的具體位置;第三部分是輸出加工宏程序,將替換完變量的程序進行輸出,同時保證輸出的程序滿足機床輸入標準,可直接用于機床加工[5-6]。其算法流程圖如圖3所示[7-8]。
圖3 算法流程圖
設置好變量后,應對核心部分進行編寫,具體編寫如下:
If Option2.Value = True Then J10 = 9
List1.AddItem "O0001; " '宏程序名稱
List1.AddItem "G40 G80 G49 G69 G21 G17; " '宏程序初始化
List1.AddItem "G90 G54 G0 X0 Y0 S" & H8 & " M03; " '主軸轉速
List1.AddItem "M6 T" & G7 & "; " '換刀
List1.AddItem "G43 Z50 H" & G7 & " ; " '刀長補正
List1.AddItem "G0 Z5; "
List1.AddItem "#1=0; "
List1.AddItem "#5=" & a1 & "; "
List1.AddItem "#6=" & B2 & "; "
List1.AddItem "G68 X" & C3 & " Y" & D4 & " R" & E5 & "; " '坐標旋轉
List1.AddItem "#7=" & a1 & "+" & C3 & ";" '下刀點位置計算
List1.AddItem "G0 X#7 Y" & D4 & " M" & J10 & "; " '切削液
List1.AddItem "G1 Z-2 F" & I9 & "; " '進給率
List1.AddItem "WHILE [#1 LE 360] DO1 ;"
List1.AddItem "#101=#5*COS[#1]+ X" & C3 & ";"
List1.AddItem "#102=#6*SIN[#1]+ Y" & D4 & ";"
List1.AddItem "G01 X[#101] Y[#102];"
List1.AddItem "#1=#1+1 ;"
List1.AddItem "END1; "
List1.AddItem "G1 Z2 ; "
List1.AddItem "G49 G69 "
List1.AddItem "G0 Z50 M5 M9; "
List1.AddItem "G0 X0 Y0; "
List1.AddItem "M30"
End Sub
為了更好地使用編寫的宏程序,可以在“編制程序”按鈕中加入輸出指令,將編寫好的宏程序寫入電腦中,并以a.txt為文件名保存到C盤要目錄中,方便使用者。
Open "c:a.txt" For Output As #1
For i = 0 To List1.ListCount - 1
Print #1, List1.List(i)
Next i
Close
當橢圓參數(shù)如圖4所示時,單擊“編制程序”按鈕,編寫的宏程序如圖4所示;可以驗證繪制的宏程序形式正確,內容完整,能直接輸入數(shù)控機床進行加工。用不同的數(shù)值來測試,其程序的正確性也得到了驗證。橢圓插補角度增量θ可根據(jù)實際需要來取值,當加工的橢圓插補誤差偏大時,應適當減小θ的數(shù)值。
圖4 橢圓宏程序自動編程系統(tǒng)運行結果
以記事本形式打開C盤根目錄下的a.txt文件,得到的宏程序如下,其程序可以直接傳輸?shù)綑C床進行數(shù)控加工。
O0001;
G40 G80 G49 G69 G21 G17;
G90 G54 G0 X0 Y0 S2500 M03;
M6 T1;
G43 Z50 H1 ;
G0 Z5;
#1=0;
#5=50;
#6=30;
G68 X10 Y20 R10;
#7=50+10;
G0 X#7 Y20 M8;
G1 Z-2 F100;
WHILE [#1 LE 360] DO1 ;
#101=#5*COS[#1]+ X10;
#102=#6*SIN[#1]+ Y20;
G01 X[#101] Y[#102];
#1=#1+1 ;
END1;
G1 Z2 ;
G49 G69
G0 Z50 M5 M9;
G0 X0 Y0;
M30
本程序中,為了研究方便:1)研究的加工對象為完整橢圓,若加工的為橢圓弧,則還需要進一步計算橢圓圓弧起止點的對應參數(shù),并設置成變量,編制程序時應保證從起點到止點為逆時針方向;2)忽略了刀具補償,刀具只沿著軌跡直接進刀,實際加工過程中較多情況下會有刀具補償?shù)那闆r,程序中需要加入G41或G42指令,下刀點需要從軌跡外部下刀;3)切削深度沒有設置成變量,且在Z方向沒有分層銑削,只切削了一層,接下來要考慮Z向分層加工和XY分層加工。
本文在研究宏程序編程的基礎上,應用VB軟件實現(xiàn)橢圓宏程序的自動生成,主要研究工作如下。
1)將橢圓宏程序編寫進行模塊化和規(guī)范化處理,將加工過程中需要設置的值進行直觀化變量處理,并給出了通用的自動編程思路和方法。
2)克服了傳統(tǒng)CAD/CAM軟件不能自動生成宏程序的弊端,提高了橢圓宏程序的編寫效率。
3)應用VB軟件的直觀性,結合宏程序的便捷性,由橢圓宏程序作為示例,可以移植到其他曲線的宏程序自動編程,具有較好的借鑒性,極大地方便了工程技術人員,有很高的應用價值和推廣前景。