對於研發CAD/CAM軟體的人或是對於善用CAD/CAM軟體的人,大都覺得G41G42這些補正指令不大好用,因為常常有alarm的現象,或者覺得這些補正指只能好用一次,舉例來說,要銑內槽時,需將工件輪廓裡的材料銑掉,使用G41G42時,機台控制器就能讓端銑刀平行並偏置工件輪廓一個端銑刀半徑,來銑削第一圈材料,但是若要銑第二圈材料,就傷腦筋了,因為若偏置量固定一個端銑刀半徑,不論再怎麼銑,端銑刀還是沒法在往內槽中心銑進去,但倘若加大偏制量,機台控制器常會因為發現過切而Alarm;不過,話雖如此,對於手寫CNC程式的人,G41G42的確是個很好的利器,非學不可,因此本文就分成5個文章來講解補正功能。
第一篇文,先來解釋一些常用到的名詞:
1. "寫CNC程式"
在台灣"寫CNC程式"這個詞,在中國則常稱為CNC編程,而英文的講法是CNC code programming…
2. “一行程式”?
CNC程式的組成一般都講成是由一行一行的程式所組成,
這其實是不對的,正確的講法是CNC程式的組成由一個個單節所組成,單節的英文是block,每個單節的末端都需有EOB(End Of Block)來做結束,因此不論螢幕上顯現的是幾行,只要沒看到EOB,CNC工具機就都把這些行當作是同一個單節…
3. “機能指令”
CNC工具機是以一個單節裡的指令為一個行動單元來作動,每個單節裡都以”機能指令”為主體,並佐以XYZ等座標或其它參數為輔來組成,機能指令是由位址碼(英文字母)及若干個阿拉伯數字所組成,機能指令可分為七大類,即G機能(準備機能),M機能(輔助機能),T機能(刀具機能),S機能(主軸轉速機能),F機能(進給率機能),N機能(單節編號機能)H/D機能(刀具補正機能),每一個類別的機能指令皆付與群組的屬性。
G 碼
|
群 組
|
機 能
|
▼G00 |
01
| 快速定位 |
▼G01 | 直線切削 | |
G02 | 圓形/螺旋順時針切削 | |
G03 | 圓形/螺旋逆時針切削 | |
▼G40 |
07
| 刀具半徑補正取消 |
G41 | 刀具半徑左側補正 | |
G42 | 刀具半徑右側補正 | |
G43 |
08
| 刀具長補正“+” |
G44 | 刀具長補正“-” |
(列舉部份的G碼,其餘的族繁不及列載)
有標記▼行號的指令為開機時即己被設定的指令。
5. “一個單節有用的機能指令”
屬於00群組的G碼沒有連續性,它們之指令只能在一個單節有作用。
6. “機能指令的取代”
情況(1)在同一單節裡出現同一類別同一群組屬性的機能指令,後寫的指令會取代前寫的指令,譬如說 “G02G01X10.Z-20. ” => “G01X10.Z-20. ”,因為G02被G01取代了。
情況(2)在不同單節裡出現同一類別同一群組屬性的機能指令,後面單節的指令會取代前面單節的指令,譬如說 “G01X10.Z-20. (EOB) G02X12.Z-22.R5. (EOB)” ,此G01直線作動會被下一單節的G02圓弧作動取代。
7. “機能指令的殘留”
除了00群組以外,當某一類別某一群組屬性的機能指令出現之後,後面單節如果沒有出現與它同一類別同一群組屬性的機能指令,則此機能指令會一直殘留有用。
8. “圖元”
圖元或稱圖素,在本文中僅指直線圖元或圓弧圖元兩種。
9. “行進方向”
CNC工具機刀具的移動有快速移動、直線移動跟圓弧移動(實際上也是由許多的小直線所組成)等行進類別,每次行進除了行進類別之外,還必須要有出發點、終點、行進方向及行進速率,直線移動的行進方向就是從出發點至終點,但是圓弧移動的行進方向可分順時針圓弧與逆時針圓弧方向,在3D世界中順、逆時針圓弧常因觀察者所站的方位不同而有改變,如下圖所示,觀察者從右邊看此圓弧是順時針方向,但是,觀察者從左邊看此圓弧卻是逆時針方向,為了不必要的紛爭,規定 : 觀察者一律是由垂直於圓弧所在的平面的第三軸向的正向往此圓弧觀察,以下圖為例,則右邊觀察者為正確之方位,此圓弧為順時針方向。

10. “補正“..."補正方向"..."觀察者方位”
補正或稱補償(compensation) : 以銑床言,所謂的補正一般是指為刀具半徑補正,以車床言,所謂的補正則是指"刀尖半徑補正"或"刀鼻半徑補正"。
補正指令是由G41(刀具偏移左側補正)或G42(刀具偏移右側補正)行之,但是在3D世界中左、右方向常因觀察者所站的方位不同而有改變,如下圖所示,觀察者從圖中右邊方位看此直線的左側方向卻是觀察者從圖中左邊方位看此直線的右側方向。

為了不必要的紛爭,因此規定觀察者方位 :
1. 所要偏置的直線或圓弧必須與三軸中的某兩軸所構成的平面平行:此"三軸中的某兩軸所構成的平面"意指=>XY平面..YZ平面..或ZX平面。如果所要偏置的直線或圓弧不平行於某兩軸所構成的平面,則無法偏置。
2. 觀察者視線必須"垂直於所要偏置的直線(或圓弧)所在的平面",亦即觀察者視線是所要偏置的直線或圓弧所處的某兩軸所構成的平面之外的第三軸,舉例來說,若工件為於XZ平面,則觀察者視線必須平行於Z軸。
3. 觀察者視線的方向:由第三軸的正向往負向觀去,以上圖為例,則圖中右邊方位觀察者為正確之方位,以車床工件來說,工件位於XZ平面,觀察者視線除了必須平行於Z軸之外,還必須由Z軸的負向往正向來看工件。
除了觀察方位的因素要遵守之外,觀察者的頭位也會影響左右側的判斷,如下圖所示,觀察者頭位順著行進方向與觀察者頭位逆著行進方向所看到的左右側剛好相反,因此,補正時觀察者的頭位一律規定:需順著行進方向來判斷左右側。


但是,假若如果欲車削工件的是外徑表面,並且車刀是從夾頭方向往端面車過去,那就得採用左偏置(G41),但是,如果欲車削工件的是內徑表面,並且車刀若是由孔的裡面往端面方向車過來,那就得採用右偏置(G42),如下圖所示。

G42之車床使用範例一 : 把G41或G42寫在刀具定位那個單節裡 :
T0404 G99(外徑精車刀)
G50 S2200
G96S250M03
G0 G42 X55.0 Z2.0 (<=將G42寫在此刀具定位之單節)
M08
G70 P10 Q20 F0.1
....
G42之車床使用範例二 : 把G41或G42寫在循環車削的初始單節
T0202 G99
G50 S2200
G96S150M03
G0 G40 X42.0 Z0.08
M08
G1 X10.0 Z0.08 F0.17
X-1.6 F0.14
Z1.1 F1.25
G0 X38.0
G1 X38.67 F1.75
G71 U2.2 R0.5
G71 P10 Q20 U0.3 W0.1 F0.2
N10 G42 G0 X-1.6 (<==將G42寫在此循環車削的初始單節)
.....(第二個方法係將G42寫在G71循環車削的初始單節, 因此呼叫G70時, 便可不再使用G42; 上述兩法擇一而用即可, 但不要並用)
行文至此,稍嫌枯燥,我們來舉個實例 :
........
G90 G1 X48. Y-10. Z-4. F200
G41 G1 X55. D01
Y110.
X40.
Y-10.
Z-4.5(此時深度改變,改銑不同深度的溝槽)
X40.
Y110.
.........
不知大家是否看出這個程式的錯誤?
倒數第2行其實是無效的單節,因為在倒數第5行就已是在X50.的位置,而此X50.的位置一直到最後行都沒被取代,至於倒數第3行只是改變Z的位置,對於XY的位置沒影響,所以沒有補正的問題,所以總共這倒數5個單節如果不考慮補正,只做了 => 從出發點X40.Y110. 往下到 X40.Y-10.,又從X40.Y-10. 往上到X40.Y110.,這是360度的大迴轉。
如果要補正考慮下去,則X40.Y110. 到 X40.Y-10. 往下線段的左側補正,加上X40.Y-10 . 到X40.Y110.的往上線段的左側補正,則線段X40.Y110. 到 X40.Y-10. 完全會被銑到。

11. "補正角"
補正角或稱補正內角,不論兩個圖元的相接形態是直線與直線、直線與圓弧、圓弧與直線、圓弧與圓弧,這相接的兩個圖元皆會形成兩個夾角,如下圖所示之α與β(如果圖元是圓弧,則以連接點處的切線來求出夾角),當G41作動時,α角位於補正側(即左側),則稱α為(G41之)補正角,而β角則稱為(G41之)補正外角;當G42作動時,β角位於補正側(即右側),則稱β為(G42之)補正角,而α角則稱為(G42之)補正外角。

正常情況下,補正角與補正外角加起來剛好為360度; 用上面剛舉的CNC程式為例,其G41之補正角為360度,而G41之補正外角則為0度。
篇幅所限,請續看第二篇文:
留言
張貼留言