Program CNC potrafi wyglądać jak ciąg przypadkowych liter i liczb, ale większość zapisów opiera się na powtarzalnych zasadach. W tym praktycznym przewodniku tłumaczę po polsku najważniejsze kody G, pokazuję przykłady dla frezarki i tokarki, a także wyjaśniam, jak czytać blok programu, ustawiać współrzędne i unikać kosztownych błędów.
Najważniejsze informacje o kodach G w CNC
- G00 służy do szybkiego pozycjonowania, a G01 do ruchu roboczego z zadanym posuwem.
- G02 i G03 wykonują interpolację kołową, czyli ruch po łuku.
- G90 oznacza programowanie absolutne, a G91 przyrostowe.
- G54-G59 wybierają układ współrzędnych przedmiotu obrabianego.
- Kody mogą różnić się między sterowaniami, dlatego program trzeba sprawdzać w instrukcji konkretnej maszyny.

Jak czytać kod G i z czego składa się blok programu
Kod G to zestaw poleceń opisujących ruch narzędzia, sposób prowadzenia obróbki oraz wybrane ustawienia maszyny. Samo polecenie nie działa jednak w oderwaniu od reszty programu. Znaczenie mają również osie, posuw, prędkość wrzeciona, korekcje narzędzia i aktywny układ współrzędnych.
Typowy zapis programu składa się z bloków, czyli pojedynczych wierszy. Przykład N20 G01 X50 Y20 Z-2 F300 oznacza ruch roboczy do punktu o współrzędnych X50, Y20, Z-2 z posuwem 300 mm/min, jeśli maszyna pracuje w milimetrach.
N10 G90 G21
N20 G00 X0 Y0 Z5
N30 G01 Z-2 F150
N40 G01 X50 F300
N50 G00 Z5
Litera N oznacza numer bloku i zwykle nie wpływa na samą geometrię ruchu. Litery X, Y i Z wskazują położenie osi, F określa posuw, S prędkość wrzeciona, a T numer narzędzia. W programach spotkasz też polecenia M, które sterują funkcjami pomocniczymi, na przykład wrzecionem, chłodzeniem lub zakończeniem programu.
Kody modalne i jednorazowe
Część kodów jest modalna. Oznacza to, że pozostaje aktywna w kolejnych blokach, dopóki nie zastąpi jej inne polecenie z tej samej grupy. Po wpisaniu G01 następny ruch może nadal odbywać się z posuwem roboczym, nawet jeśli w kolejnym wierszu nie powtórzysz kodu.
Inaczej działają polecenia jednorazowe. G04, czyli postój czasowy, wykonuje się tylko w bieżącym bloku. Ta różnica ma praktyczne znaczenie, bo pominięcie anulowania aktywnego trybu może zmienić sposób wykonania całej dalszej części programu.
G-code i M-code to nie to samo
Kody G opisują głównie geometrię i sposób ruchu. Kody M sterują funkcjami maszyny. Przykładowo M03 uruchamia wrzeciono zgodnie z ruchem wskazówek zegara, M05 je zatrzymuje, a M08 włącza chłodziwo. Konkretne znaczenie niektórych kodów M zależy od producenta obrabiarki.
Najważniejsze kody G do frezowania CNC
Na frezarce najczęściej pracuje się w układzie osi X, Y i Z. Osie X oraz Y opisują ruch w płaszczyźnie stołu, a Z zwykle odpowiada za zagłębianie lub unoszenie narzędzia. Poniższe polecenia tworzą podstawę ręcznego czytania programu i pomagają zrozumieć kod wygenerowany przez system CAM.
| Kod | Znaczenie | Praktyczne zastosowanie |
|---|---|---|
| G00 | Szybkie pozycjonowanie | Przejazd nad materiałem, bez skrawania |
| G01 | Interpolacja liniowa | Cięcie po prostej z posuwem F |
| G02 | Interpolacja kołowa zgodna z ruchem wskazówek zegara | Wykonanie łuku lub fragmentu okręgu |
| G03 | Interpolacja kołowa przeciwna do ruchu wskazówek zegara | Wykonanie łuku w przeciwnym kierunku |
| G17 | Wybór płaszczyzny XY | Standardowa płaszczyzna pracy frezarki |
| G20 / G21 | Cale / milimetry | Ustawienie jednostek programu |
| G40 | Anulowanie kompensacji promienia | Wyłączenie korekcji toru narzędzia |
| G41 / G42 | Kompensacja promienia narzędzia | Przesunięcie toru w lewo lub w prawo od konturu |
| G43 | Kompensacja długości narzędzia | Uwzględnienie rzeczywistej długości freza |
| G54-G59 | Układy współrzędnych przedmiotu | Praca z różnymi bazami detalu |
| G80 | Anulowanie cyklu stałego | Bezpieczne zakończenie wiercenia lub rozwiercania |
| G90 / G91 | Współrzędne absolutne / przyrostowe | Określenie sposobu interpretacji pozycji |
G00 nie jest poleceniem skrawania. Służy do szybkiego przemieszczania narzędzia, dlatego przed jego użyciem trzeba upewnić się, że narzędzie znajduje się na bezpiecznej wysokości. W praktyce właśnie pomylenie G00 z G01 albo wykonanie szybkiego przejazdu zbyt blisko materiału prowadzi do wielu kolizji.
G01 wymaga podania posuwu F, chyba że sterowanie wykorzysta wartość zapisaną wcześniej. Przykład G01 X80 Y25 F250 oznacza liniowy ruch do wskazanego punktu z posuwem 250 mm/min. Przy obróbce aluminium, stali i tworzyw ta wartość może różnić się wielokrotnie, dlatego nie należy kopiować jej bez sprawdzenia średnicy narzędzia, liczby ostrzy i parametrów skrawania.
Ruch po łuku za pomocą G02 i G03
Interpolację kołową można zapisać z użyciem parametrów I, J i K albo promienia R. Parametry I, J i K opisują położenie środka łuku względem punktu początkowego, natomiast R wskazuje jego promień. Nie każde sterowanie interpretuje wszystkie warianty identycznie, szczególnie przy łukach większych niż 180 stopni.
G17 G90
G00 X10 Y10 Z5
G01 Z-1 F120
G02 X40 Y10 I15 J0 F250
G00 Z5
W tym przykładzie G17 wybiera płaszczyznę XY, G01 zagłębia narzędzie, a G02 prowadzi je po łuku. Przed uruchomieniem programu sprawdziłbym kierunek ruchu na symulacji, ponieważ błąd w G02 lub G03 może zmienić stronę obróbki konturu.
Układ współrzędnych i korekcje decydują o dokładności
Nawet poprawne polecenia ruchu nie wystarczą, jeśli baza detalu albo długość narzędzia są ustawione błędnie. Właśnie dlatego w codziennej pracy większą wagę przykładam do układów współrzędnych i korekcji niż do samego zapamiętania długiej listy kodów.
G90 i G91
W trybie G90 każda pozycja odnosi się do ustalonego początku układu współrzędnych. Jeżeli narzędzie znajduje się w X20, a program zawiera X50, sterowanie jedzie do X50. Ten sposób programowania jest czytelny i dobrze sprawdza się przy stałych wymiarach detalu.
G91 działa przyrostowo. Polecenie G91 X10 przesuwa oś X o 10 mm względem aktualnej pozycji, a nie do współrzędnej X10. Tryb przyrostowy bywa wygodny przy powtarzalnych otworach, lecz pozostawienie go aktywnego przez pomyłkę może przesunąć narzędzie o kilkadziesiąt milimetrów poza materiał.
G54-G59 i baza przedmiotu
Układy G54-G59 pozwalają zapisać różne punkty zerowe. Jeden może służyć do pierwszego detalu, drugi do kolejnego elementu zamocowanego obok, a następny do obróbki z drugiej strony. Sam kod G54 nie ustala jeszcze współrzędnych, ponieważ wartości są zapisane w pamięci sterowania podczas bazowania przedmiotu.
Przed startem programu sprawdzam trzy rzeczy: aktywny układ, położenie zera detalu i kierunek osi. G54 w programie nie gwarantuje poprawnego bazowania, jeśli operator wcześniej wpisał błędne wartości przesunięcia.
Przeczytaj również: Jak czytać rysunek techniczny i przygotować obróbkę CNC
G40, G41, G42 i G43
Kompensacja promienia narzędzia pozwala prowadzić frez po torze przesuniętym względem zaprogramowanego konturu. G41 przesuwa tor na lewą stronę kierunku ruchu, a G42 na prawą. Do wyłączenia kompensacji służy G40.
G43 dotyczy długości narzędzia. Najczęściej występuje razem z numerem korekcji H, na przykład G43 H01 Z50. Jeśli numer H nie odpowiada zamontowanemu narzędziu, maszyna może ustawić końcówkę na złej wysokości, nawet gdy sama geometria programu jest bezbłędna.
Cykle stałe upraszczają wiercenie i powtarzalne operacje
Przy kilku otworach nie trzeba za każdym razem pisać pełnej sekwencji dojazdu, zagłębienia i wycofania. Służą do tego cykle stałe. Najczęściej spotykam G81 do prostego wiercenia, G82 do wiercenia z postojem na dnie oraz G83 do wiercenia z łamaniem wióra.
| Kod | Zastosowanie | Na co uważać |
|---|---|---|
| G81 | Standardowe wiercenie | Dobór bezpiecznej wysokości R i głębokości Z |
| G82 | Wiercenie z postojem na dnie | Czas postoju P może mieć inną jednostkę w różnych sterowaniach |
| G83 | Wiercenie głębokie z wycofaniami | Dobór przyrostu Q do średnicy i materiału |
| G84 | Gwintowanie | Wymaga zgodności obrotów wrzeciona i posuwu |
| G80 | Anulowanie cyklu | Trzeba użyć go przed zwykłym przejazdem do innego miejsca |
Przykładowy zapis dla czterech otworów może wyglądać tak:
G90 G54 G17
G00 X10 Y10 Z5
G81 Z-12 R2 F120
X50 Y10
X50 Y40
X10 Y40
G80
G00 Z50
Po pierwszym wywołaniu G81 kolejne wiersze z samymi współrzędnymi powtarzają cykl w nowych punktach. G80 powinno znaleźć się przed dalszymi ruchami, ponieważ bez anulowania sterowanie może potraktować kolejny punkt jako następny otwór.
Parametr R wyznacza płaszczyznę bezpiecznego rozpoczęcia wiercenia, Z określa dno otworu, a F posuw. W G83 parametr Q ustala głębokość pojedynczego zagłębienia. Przy długich otworach ten cykl pomaga usuwać wióry, ale wydłuża czas pracy i nie zastępuje chłodzenia ani właściwego doboru wiertła.
Kody G na tokarce CNC mają inną logikę
Na tokarce podstawowa płaszczyzna pracy to zazwyczaj XZ, a oś X opisuje średnicę lub położenie poprzeczne narzędzia. To ważna różnica dla osoby, która zna już frezowanie. Ten sam numer G może mieć podobne znaczenie, ale sposób interpretacji osi, promieni i cykli będzie inny.
| Kod | Znaczenie na tokarce | Typowe zastosowanie |
|---|---|---|
| G00 | Szybkie pozycjonowanie | Dojazd narzędzia przed obróbką |
| G01 | Ruch liniowy | Toczenie średnicy lub czoła |
| G02 / G03 | Ruch po łuku | Promienie i zaokrąglenia konturu |
| G18 | Wybór płaszczyzny XZ | Standardowa płaszczyzna toczenia |
| G50 | Ograniczenie lub ustawienie zależne od sterowania | Najczęściej limit obrotów przy G96 |
| G96 | Stała prędkość skrawania | Dostosowanie obrotów do średnicy |
| G97 | Stałe obroty wrzeciona | Praca z konkretną wartością S |
| G71 | Cykl zgrubny | Szybkie usuwanie większej ilości materiału |
| G70 | Cykl wykańczający | Przejście po gotowym konturze |
| G76 | Cykl gwintowania | Wykonanie gwintu według parametrów sterowania |
G96 utrzymuje stałą prędkość skrawania, dlatego obroty wrzeciona zmieniają się wraz ze średnicą. Przy tej funkcji stosuje się limit maksymalnych obrotów, często za pomocą G50. Bez ograniczenia narzędzie może osiągnąć niebezpieczną prędkość przy dojeździe do małej średnicy.
G97 wybiera stałe obroty, co bywa prostsze przy krótkich operacjach i ustawianiu narzędzia. Ja traktuję G96 jako rozwiązanie korzystniejsze dla jakości toczenia, ale tylko wtedy, gdy operator poprawnie ustawi ograniczenie obrotów i zna możliwości uchwytu oraz materiału.
Jak sprawdzać program przed uruchomieniem na maszynie
Najbezpieczniejszy program to nie ten, który wygląda najkrócej, lecz ten, którego działanie można łatwo przewidzieć. Przed uruchomieniem sprawdzam kolejność narzędzi, punkt zerowy, jednostki, tryb G90 lub G91, wysokości bezpieczne i wartości posuwu.
- Sprawdź nagłówek programu, zwłaszcza jednostki G20 lub G21, płaszczyznę pracy i układ G54.
- Zweryfikuj narzędzie, numer korekcji długości H oraz korekcję promienia D.
- Przejrzyj pierwsze ruchy i upewnij się, że G00 nie prowadzi narzędzia przez materiał ani uchwyt.
- Uruchom symulację albo grafikę ścieżki, jeśli sterowanie ją udostępnia.
- Wykonaj przejazd testowy nad materiałem lub użyj trybu single block przy pierwszej sztuce.
- Obserwuj korekty po pierwszym detalu, zamiast od razu zmieniać kilka parametrów jednocześnie.
Do najczęstszych błędów należy pominięcie jednostek, aktywny G91 po wcześniejszej operacji, brak G80 po cyklu wiercenia oraz niewłaściwa płaszczyzna G17, G18 lub G19. Błąd może wynikać także z różnicy między sterowaniami. Nie istnieje jedna, całkowicie uniwersalna tabela kodów G dla wszystkich maszyn.
Przy programach z CAM szczególnie ważne jest sprawdzenie postprocesora. To on tłumaczy ścieżkę narzędzia na składnię konkretnego sterowania. Ten sam cykl może wymagać innego zapisu na maszynie Haas, Fanuc, Siemens, LinuxCNC czy w sterowaniu producenta małej frezarki.
Przed obróbką pierwszego detalu zmniejszam posuw i używam pojedynczego bloku, ale nie traktuję tego jako zabezpieczenia przed każdym błędem. Jeśli baza, narzędzie albo korekcja są błędne, wolniejszy przejazd nadal może doprowadzić do kolizji.
Co zapamiętać przed napisaniem pierwszego programu
Na początek wystarczy dobrze opanować G00, G01, G02, G03, G90, G91, G54 i G80. Te polecenia pozwalają czytać dużą część prostych programów frezarskich i zrozumieć, w jaki sposób narzędzie porusza się względem detalu.
Nie uczę się jednak kodów wyłącznie z tabeli. Każde polecenie łączę z pytaniem praktycznym: w jakiej płaszczyźnie pracuję, gdzie jest zero, jaki tryb współrzędnych jest aktywny i czy narzędzie ma bezpieczny przejazd. Taki sposób myślenia daje więcej niż zapamiętanie kilkudziesięciu skrótów bez rozumienia ich zależności.
Najważniejsza zasada brzmi prosto: przed uruchomieniem zawsze sprawdź dokumentację konkretnego sterowania. Polski opis kodów pomaga zrozumieć program, ale dopiero instrukcja maszyny potwierdza dokładne znaczenie polecenia, jego parametry i ograniczenia.