數控加工宏案例銑孔分享 學透的關鍵點是舉一反三!
和你共勉的兩句話:
沒有實踐的學習是浪費時間
學透的關鍵點是舉一反三
給大家分享宏程序實戰案例中的銑孔案例
一、銑孔
說起孔加工,大家常用鑽頭鑽孔,鉸刀鉸孔,鏜刀鏜孔等方法。鑽削和鏜削依舊是孔加工的最快方法,但是對於小批量生產的零件,零件種類多,可能會因為不同尺寸的孔,採取不同種類的鑽頭,鏜刀加工。「一個蘿蔔一個坑」,每個規格的孔需要一種刀具。
而銑孔覆蓋各種尺寸的孔,無論是開粗(無論有無欲鑽底孔),擴孔,精銑(實現以銑代鉸、以銑代鏜),銑孔有顯著的優勢,尤其是用宏程序來編寫銑孔程序,對孔尺寸精度的控制及其方便。
那麼宏程序的優勢在哪呢?
如下圖:
我把孔的直徑、孔深、刀具直徑都用宏變數來代替,這樣的好處是你加工不同尺寸的孔,都可以用此程序來加工。只需要更具圖紙提供的尺寸給變數賦予不同數值即可。
Advertisements
比如:
#1=代表:孔的直徑
#2=代表:孔深
#3=代表:刀具直徑
根據圖紙提供的尺寸,給上面變數賦值即可。
如何編寫銑孔宏程序?
開始編寫程序(分析三點內容)
一、銑孔刀路分析:
刀具快速移動到下刀點,然後刀具每走一圈的同時下一定的距離至到銑至我需要的深度為止。
二、計算兩點(下刀點和退刀點)
大家都知道編程的時候下刀點和退刀點很重要,無論是軟體出程序,還是手工編寫程序,以及現場調試程序的時候,需要重視這兩點,以防刀具與零件碰撞……。
假設零件孔中心以及零件表面Z=0為編程原點
1、下刀點:如上示意圖(需要計算出刀具中心到孔中心的距離)
#1代表孔直徑
#3代表刀具直徑
Y方向坐標是0
X方向坐標可以推算出(孔半徑減去刀具半徑):#6=[#1-#3]/2
Advertisements
知道了下刀點,G0快速移動到下刀點,程序段即:
G0X#6 Y0
Z方向坐標是工件表面Z零點,即Z0,
2、退刀點:如上示意圖
銑完孔之後,刀具需要遠離零件孔內壁,可以計算出[#1-#3]/2-1
注意方向:朝負方向回退1mm所以[#1-#3]/2-1,退刀程序段即
G0X[#6-1]
三,圓弧插補G17G02/G03X_Y_Z_I_J_ 格式
1、G02/G03的格式: G17G02 X_Y_Z_R 或者 G17G02 X_Y_Z_I_J_
以G02X_Y_Z_I_J_(為例子,同理G03的格式也一樣)
G02後面的X_Y_Z_ 是圓弧的終點坐標數值
2、I_後面的數值是圓弧起點到圓心的距離(X方向)
J_後面的數值是圓弧起點到圓心的距離(Y方向)
上段程序G01X10Y50 。 X10,Y50就是圓弧起點坐標。
G02X50 Y10 。X50 Y10就是圓弧終點坐標
I0 J-40 為圓弧起點到圓心的距離(I0時候可以省略不寫)
備註:J_後面的數值是(Y方向)圓弧起點到圓心的距離。此句話含了兩方面的信息:
數值-----(Y方向)起點50,圓心10 ,所以J的數值是40
方向-----(Y方向)朝向負,所以J-40
3、銑孔是利用G02/G03 X_Y_Z_......三軸聯動實銑孔的,也就是旋轉一圈的同時Z需要下一定深度,設每一圈下降深度為#5(如下圖)
那麼銑孔程序段為:G3X_Y_Z_I_J_
採用順時針銑孔選擇G03,G03格式X_Y_Z_後面的數值為終點坐標。
X終點坐標點:#6
Y終點坐標點:0
Z終點坐標點:#5
I(X方向)圓弧起點到圓心的距離:-#6
J(Y方向)圓弧起點到圓心的距離:0
此程序段為:G3X#6Y0Z-#5I-#6 J0,數值為零可以省略
即:G3X#6Z-#5I-#6
有了以上三點的分析,主要程序段歸納如下:
刀具快速移動到下刀點位置:
G0X#6Y0
Z1
螺旋銑孔:
G03X#6Z-#5I-#6F500.
退刀:
G01X[#6-1]F50
G0Z50.
然後在銑孔的時候套用我之前文章講過的宏程序語句,如WHILE語句做判斷:判斷我設置的#5(下刀深度)與#2(孔深),當下刀深度小於孔深的時候,來實現內循環。這裡面涉及一個很重要的概念:自運算,通用自運算來協助WHILE語句做判斷。
我們知道宏程序一大特點是可以運算的。
比如下面程序段:
#5=1
#5=#5+1
#5的賦值是1,這1=1+1怎麼可能呢?我教程中講變數的時候說過,變數只是一個代號,不是一個具體的阿拉伯數值。比方說我有一張銀行卡,裡面有100元錢,現在我向卡里存了100元,那麼卡的總額是200元。這個過程中,卡還是那張卡,但裡面金額已經發生變化了。所以#5這張「卡」,由原來的1,存進了1,因此#5的「總額」就是2。
#5=#5+1就是自運算,大家先有個感性認識即可。
想學UG編程,在616857166群可以幫助你。
上述程序中,我把#5定義為每旋轉一圈下刀深度,#2定義為總深。(#1 ~ #26,這26個變數可以自由定義,關於變數我系統教程以大量篇幅講解,在這就不再贅述)
#5:代表每層切深
#2:代表總深
#5=2 (#5初始賦值為2,為什麼賦值為2,結合下面程序來講解)
#5=#5+1(每旋轉一圈下刀深度1mm,如果每圈下刀深度為2mm,那麼更改為#5=#5+2,至於每圈下多深,這是加工參數的事情和刀具,零件材質等有很大關係,推進大家看看我之前的課程直播-加工參數的選取。)
完整的程序如下:
%
O0001
N2 #1=30 (孔直徑)
N4 #2=10 (孔深)
N6 #3=20 (刀具直徑)
N8 #5=2(之所以初始變數賦值為2,是因為零件Z=0表面為編程零點,但在實際加工中為了安全期間,Z向需要離開工件表面一定距離,比如1mm ,我就把初始變數#5賦值為1。比如工件Z表面2mm外開始切削,那麼初始變數#5=2即可。)
想學UG編程,在616857166群可以幫助你。
N10 #6=[#1-#3]/2
N 12 S2000 M03
N14 G54 G90 G00 X0Y0 Z50.
N16 G0X#6Y0(G0快速移動到下刀點)
N18 Z2
N20 WHILE[#5LT#2]DO1(當加工深度#4小於孔深#2時,循環程序1)
N22 #5=#5+1(每旋轉一圈下刀深度1mm)
N 24 G3X#6Z-#5I-#6F500.(G03順時針螺旋加工至下一圈距)
N26 END1(循環1結束)
N28 G1X[#6-1](G01向中心退回1,即退刀)
N30 G0Z50.
N32 M30
%
上面程序模擬如下: