Gdy frezarka lub tokarka CNC wykonuje ruch, za każdym przejazdem narzędzia stoi zapisany program. G-code określa położenie osi, kierunek ruchu, prędkość posuwu i sposób obróbki, dlatego jego znajomość przydaje się zarówno operatorowi, jak i osobie przygotowującej program w CAM. Poniżej pokazuję, jak czytać poszczególne bloki, które polecenia są najważniejsze, jak bezpiecznie uruchomić program i gdzie najczęściej pojawiają się kosztowne błędy.
Najważniejsze informacje o programowaniu CNC
- G-code steruje ruchem narzędzia, układem współrzędnych i sposobem interpolacji.
- G00, G01, G02 i G03 odpowiadają za podstawowe ruchy liniowe i kołowe.
- M-code obsługuje funkcje pomocnicze, między innymi wrzeciono, chłodzenie i zakończenie programu.
- G90 i G91 określają, czy współrzędne są absolutne, czy przyrostowe.
- Symulacja, przejazd próbny i kontrola bazy są niezbędne przed rozpoczęciem skrawania.

Co naprawdę oznacza G-code w CNC
G-code to zestaw poleceń, za pomocą których sterowanie CNC przekłada program na ruchy maszyny. Nie jest to język ogólnego przeznaczenia, taki jak Python czy C++, lecz język instrukcji dla obrabiarek. Program mówi między innymi, gdzie ma znaleźć się narzędzie, z jaką prędkością ma się poruszać i w jakiej płaszczyźnie ma pracować.
Litera G zwykle oznacza funkcję przygotowawczą, czyli sposób wykonania ruchu lub ustawienia trybu pracy. Litera M odnosi się do funkcji pomocniczych. W praktyce oba rodzaje kodów występują razem, ale ich zadania są różne. G01 steruje ruchem osi, natomiast na przykład M03 uruchamia wrzeciono w określonym kierunku.
Trzeba pamiętać, że nie istnieje jedna, identyczna lista poleceń działająca na każdej maszynie. Sterowania Haas, Fanuc, Siemens, Heidenhain czy LinuxCNC mają wspólny fundament, lecz mogą różnić się składnią, cyklami i znaczeniem wybranych kodów. Dlatego przed użyciem programu zawsze sprawdzam instrukcję konkretnego sterowania, a nie tylko ogólną tabelę kodów znalezioną w internecie.
Przeczytaj również: Szlifowanie płaszczyzn - Precyzja, błędy i optymalizacja procesu
Kody modalne i niemodalne
Część poleceń pozostaje aktywna do chwili zastąpienia ich innym kodem z tej samej grupy. Są to kody modalne. Jeżeli program zawiera G01, kolejne wiersze mogą wykonywać ruch roboczy bez ponownego wpisywania G01. To wygodne, ale również niebezpieczne, gdy operator błędnie założy, jaki tryb jest aktualnie aktywny.
Dlatego w programach, które mają być łatwe do kontroli, zapisuję jawnie najważniejsze ustawienia, takie jak G90, G21, G17 i G54. Kilka dodatkowych znaków w nagłówku programu może uchronić przed ruchem w złym układzie współrzędnych albo pracą w calach zamiast w milimetrach.
Jak czytać pojedynczy blok programu
Program CNC składa się z bloków, czyli wierszy zawierających polecenia i wartości. Jeden blok może ustawić sposób ruchu, współrzędne, posuw oraz numer narzędzia. Przykładowy fragment frezowania może wyglądać tak:
G21 G90 G17
G54
T01 M06
S8000 M03
G00 X10 Y10 Z5
G01 Z-2 F150
G01 X60 F300
G02 X80 Y30 I0 J20
G00 Z20
M05
M30
Pierwszy wiersz ustawia milimetry, współrzędne absolutne i płaszczyznę XY. G54 wybiera bazę przedmiotu, T01 wskazuje narzędzie numer 1, a M06 wywołuje jego zmianę. Wartość S8000 ustawia prędkość obrotową wrzeciona na 8000 obr./min, zaś M03 uruchamia je zgodnie z kierunkiem wymaganym przez daną maszynę.
| Element | Znaczenie | Praktyczna uwaga |
|---|---|---|
| G00 X10 Y10 Z5 | Szybki przejazd do pozycji | Narzędzie powinno znajdować się nad materiałem |
| G01 Z-2 F150 | Ruch liniowy na głębokość 2 mm | F150 oznacza posuw, zwykle w mm/min |
| G01 X60 F300 | Frezowanie po linii prostej | Posuw może zależeć od materiału i narzędzia |
| G02 X80 Y30 I0 J20 | Interpolacja kołowa zgodna z ruchem wskazówek zegara | I i J określają położenie środka łuku w wielu sterowaniach |
Najwięcej pomyłek wynika z mylenia pozycji docelowej z punktem startowym łuku. Przy G02 i G03 wartości X oraz Y wskazują zwykle koniec ruchu, a I, J lub K opisują środek okręgu względem punktu początkowego. Zawsze sprawdzam ten fragment w symulatorze, bo jedna pomylona wartość może skierować narzędzie w materiał albo poza obrys detalu.
Najważniejsze polecenia używane przy obróbce
Nie ma potrzeby zapamiętywania całej tabeli kodów. Na początku wystarczy dobrze rozumieć grupę poleceń odpowiedzialnych za ruch, jednostki, układ współrzędnych, korekcję narzędzia i zakończenie programu.
| Kod | Funkcja | Gdzie ma znaczenie |
|---|---|---|
| G00 | Przejazd szybki bez skrawania | Zmiana pozycji nad detalem |
| G01 | Ruch liniowy z zadanym posuwem | Frezowanie, toczenie i zagłębianie |
| G02 | Interpolacja kołowa zgodna z ruchem wskazówek zegara | Łuki, promienie i okręgi |
| G03 | Interpolacja kołowa przeciwna do ruchu wskazówek zegara | Łuki, promienie i okręgi |
| G17, G18, G19 | Wybór płaszczyzny pracy | Odpowiednio XY, ZX lub YZ |
| G20, G21 | Wybór cali lub milimetrów | Podstawowe ustawienie jednostek |
| G40, G41, G42 | Wyłączenie lub wybór korekcji promienia narzędzia | Kontrola rzeczywistego wymiaru konturu |
| G43 | Korekcja długości narzędzia | Najczęściej przy obróbce na frezarce |
| G54-G59 | Układy współrzędnych przedmiotu | Ustawienie bazy detalu |
| G90, G91 | Współrzędne absolutne lub przyrostowe | Określenie sposobu interpretacji pozycji |
| G94 | Posuw w jednostkach na minutę | Częsty tryb pracy frezarek |
Warto też znać podstawowe kody M. M03 uruchamia wrzeciono, M05 je zatrzymuje, M08 włącza chłodziwo, M09 wyłącza chłodziwo, M06 wywołuje zmianę narzędzia, a M30 kończy i resetuje program. Konkretne funkcje mogą się różnić, dlatego kod M zawsze traktuję jako polecenie zależne od producenta maszyny.
G00 nie służy do skrawania. To szybki przejazd, podczas którego sterowanie może poruszać osiami z maksymalną prędkością. Jeśli Z znajduje się zbyt nisko, a program przejdzie w G00 przed odsunięciem narzędzia, skutkiem może być kolizja uchwytu, oprawki lub wrzeciona.
Jak przygotować i bezpiecznie uruchomić program
Program można napisać ręcznie, wygenerować w systemie CAM albo połączyć oba podejścia. Ręczne programowanie dobrze sprawdza się przy prostych otworach, kieszeniach i korektach, natomiast przy złożonych powierzchniach CAM ogranicza liczbę obliczeń i skraca przygotowanie obróbki. Sam kod z CAM nie jest jednak automatycznie bezpieczny.
- Ustal bazę detalu i sprawdź, gdzie znajduje się punkt zerowy programu.
- Dobierz narzędzie, jego średnicę, długość, prędkość obrotową oraz posuw.
- Zweryfikuj jednostki i tryb współrzędnych, przede wszystkim G21 lub G20 oraz G90 lub G91.
- Przeprowadź symulację z kontrolą kolizji, jeśli sterowanie lub system CAM ją obsługuje.
- Wykonaj przejazd próbny nad materiałem albo uruchom program w trybie blokowym.
- Rozpocznij obróbkę z ograniczonym posuwem i obserwuj pierwsze ruchy.
Przy pierwszym uruchomieniu nie zakładam, że program jest poprawny tylko dlatego, że wygenerował go popularny system CAM. Sprawdzam kolejność zmiany narzędzia, wysokość bezpieczną, korekcje oraz zgodność bazy G54 z rzeczywistym zamocowaniem. Najważniejsza kontrola odbywa się przed włączeniem wrzeciona, a nie dopiero po usłyszeniu niepokojącego dźwięku.
Posuw F i prędkość wrzeciona S powinny wynikać z materiału, średnicy narzędzia, liczby ostrzy i głębokości skrawania. Nie ma jednej bezpiecznej wartości dla aluminium, stali, tworzywa i drewna. Zbyt mały posuw może powodować tarcie i przegrzewanie, a zbyt duży może złamać frez lub wyrwać detal z mocowania.
Typowe błędy w programach CNC
Najczęstsze problemy nie wynikają z trudnych cykli, lecz z pominięcia podstawowych ustawień. Poniżej zebrałem sytuacje, które szczególnie często prowadzą do błędnego wymiaru albo kolizji.
| Błąd | Możliwy skutek | Jak go ograniczyć |
|---|---|---|
| Brak jawnego G90 lub G91 | Ruch w nieoczekiwane miejsce | Ustaw tryb na początku programu |
| Pomylenie G20 z G21 | Wielokrotnie zły wymiar detalu | Sprawdź jednostki w kodzie i sterowaniu |
| Błędna baza G54 | Przesunięcie całej obróbki | Zmierz punkt zerowy i wykonaj przejazd próbny |
| Za niska płaszczyzna bezpieczna | Kolizja z uchwytem lub mocowaniem | Uwzględnij wysokość imadła, łap i wystającego materiału |
| Nieprawidłowe I, J lub K przy łuku | Błąd interpolacji albo zły promień | Sprawdź kierunek G02/G03 i środek łuku |
| Brak korekcji długości narzędzia | Nieprawidłowa głębokość pracy | Zweryfikuj G43 i numer tabeli narzędzi |
| Wysoki posuw lub obroty bez obliczeń | Drgania, przegrzanie i zużycie narzędzia | Dobierz parametry do materiału i geometrii ostrza |
Osobną pułapką są kody modalne pozostawione po poprzednim fragmencie programu. Sterowanie może nadal pamiętać G01, korekcję promienia albo nietypowy tryb posuwu. Z tego powodu czytelny program powinien mieć jednoznaczny nagłówek i bezpieczne zakończenie, zamiast polegać na ustawieniach odziedziczonych po wcześniejszej pracy.
Nie należy też kopiować kodu między frezarką a tokarką bez weryfikacji. Ta sama numeracja może oznaczać inną funkcję, a dodatkowo zmieniają się osie, płaszczyzny oraz sposób definiowania korekcji. W przypadku nieznanego sterowania zaczynam od dokumentacji producenta i krótkiego programu testowego, a nie od obróbki właściwego detalu.
Ręczne programowanie czy system CAM
Ręczne pisanie kodu daje dużą kontrolę i pozwala szybko poprawić prosty ruch. Przydaje się również do nauki, diagnostyki oraz tworzenia krótkich programów testowych. Jego ograniczeniem jest czasochłonność i ryzyko pomyłki przy większej liczbie punktów.
System CAM automatyzuje obliczanie ścieżki narzędzia i lepiej radzi sobie z kieszeniami, konturami 3D oraz obróbką wieloosiową. Nie zastępuje jednak wiedzy operatora. Jeśli źle ustawimy bazę, średnicę narzędzia lub wysokość bezpieczną, program CAM wygeneruje dokładnie taki błąd, jaki mu zadaliśmy.
| Metoda | Najlepsze zastosowanie | Główne ograniczenie |
|---|---|---|
| Programowanie ręczne | Proste kontury, otwory, testy i korekty | Większe ryzyko błędu przy skomplikowanej geometrii |
| Programowanie CAM | Złożone kształty i produkcja seryjna | Konieczność poprawnej konfiguracji postprocesora |
| Połączenie obu metod | Praktyczna produkcja i szybkie poprawki | Wymaga rozumienia wygenerowanego kodu |
Najrozsądniejsze podejście polega na tym, aby używać CAM do tworzenia głównej ścieżki, ale umieć przeczytać jej najważniejsze fragmenty. Dzięki temu można zauważyć nieprawidłowy kierunek obrotów, zbyt niski przejazd, brak korekcji albo niepasujący postprocesor. Operator, który rozumie kod, szybciej wykrywa problem i nie jest całkowicie zależny od automatycznych ustawień.
Jak podejść do nauki bez ryzykowania maszyny
Najlepiej zacząć od symulatora lub sterowania testowego i ćwiczyć pojedyncze polecenia. Najpierw warto opanować G00, G01, G02, G03, G90, G91, G20, G21 oraz wybór bazy. Dopiero później sens ma nauka cykli wiercenia, korekcji promienia i bardziej rozbudowanych makr.
Dobrym ćwiczeniem jest napisanie programu, który przejedzie po prostokącie nad materiałem, bez zagłębiania narzędzia. Następny etap to wykonanie płytkiej kieszeni w miękkim tworzywie, z zatrzymaniem po pierwszym przejściu i kontrolą wymiaru. Taki sposób nauki pokazuje, jak zmiana jednego parametru wpływa na rzeczywisty ruch, a jednocześnie ogranicza koszt błędu.
Przed każdą pracą sprawdzam trzy rzeczy: gdzie jest zero detalu, jaka długość narzędzia znajduje się w tabeli i czy program rozpoczyna się od bezpiecznej pozycji. Te proste czynności zajmują chwilę, lecz w praktyce mają większe znaczenie niż znajomość dziesiątek rzadko używanych kodów.
Od pierwszego bloku do pewnej obróbki
G-code warto traktować jak instrukcję ruchu maszyny, a nie zbiór przypadkowych liter i cyfr. Najpierw trzeba rozumieć układ współrzędnych, jednostki, tryby modalne i funkcję podstawowych poleceń, a dopiero potem przechodzić do bardziej złożonych cykli.
Jeżeli program jest wygenerowany w CAM, nadal należy sprawdzić postprocesor, bazę, korekcje i przejazdy bezpieczne. Symulacja, przejazd próbny i spokojna kontrola pierwszego detalu dają znacznie większą pewność niż samo zaufanie do gotowego pliku.
W obróbce CNC nie wygrywa osoba, która zna najdłuższą listę kodów, lecz ta, która potrafi przewidzieć ruch narzędzia i rozumie, co sterowanie zrobi w każdej kolejnej linii programu.