Ten tekst porządkuje g kody cnc po polsku i pokazuje, jak czytać je bez zgadywania, czy dana linia rusza narzędzie, ustawia jednostki, czy włącza laser. Skupiam się na tym, co naprawdę przydaje się przy frezowaniu, cięciu laserem i pracy z CAM. Zobaczysz też, gdzie najczęściej pojawiają się błędy i jak je wyłapywać, zanim program trafi na maszynę.
G-code trzeba czytać razem z kontekstem maszyny, a nie jako samą listę komend
- G-kody opisują ruch i tryb pracy, a M-kody sterują funkcjami maszyny, na przykład wrzecionem, chłodziwem albo laserem.
- Jedna linia programu może ustawiać kilka rzeczy naraz: jednostki, układ współrzędnych, posuw i sam ruch narzędzia.
- Najważniejsze są nie tylko same kody, ale też modalność, czyli to, które polecenie zostaje aktywne do odwołania.
- W CNC, laserze i CAM ten sam kod bywa interpretowany trochę inaczej, dlatego zawsze liczy się postprocesor i sterownik.
- Najwięcej problemów robią zwykle: pomyłka w G90/G91, zły punkt zerowy, złe jednostki i nieodpowiedni tryb lasera.
Co naprawdę oznaczają g-kody w CNC
W praktyce G-code to język, którym mówi się do maszyny: jedź tu, jedź tak szybko, użyj tej płaszczyzny, trzymaj się tej bazy. Litera G najczęściej oznacza ruch albo tryb pracy, a litera M funkcje pomocnicze, czyli to, co nie jest samą geometrią przejazdu. To dlatego jeden program może wyglądać skromnie, a mimo to robić bardzo dużo, bo każda linia ustawia konkretny fragment zachowania obrabiarki.
Najważniejsza rzecz, którą rozumiem po latach pracy z takimi programami, jest prosta: G-code nie opisuje tylko ścieżki. Opisuje też logikę wykonania. Maszyna musi wiedzieć, w jakich jednostkach pracuje, gdzie jest zero, czy ruch ma być szybki, czy roboczy, czy ma ciąć po łuku, a nie po prostej. W CNC frezującym to oczywiste, ale w laserze i ploterze sprawa działa podobnie, tylko źródło energii jest inne.
Warto też pamiętać, że nie istnieje jeden „uniwersalny” G-code dla wszystkich maszyn. Sterowniki różnią się dialektem, a postprocesor dopasowuje wynik do konkretnego kontrolera. Dlatego ten sam projekt z CAM może działać świetnie na jednej maszynie, a na innej wymagać korekty. To właśnie odróżnia poprawny kod od kodu, który tylko wygląda poprawnie na ekranie.
Żeby to uporządkować, najpierw rozbijmy typową linię programu na części, a potem przejdziemy do komend, które pojawiają się najczęściej.
Jak czytać pojedynczą linię programu
Każdy zapis w programie CNC składa się z adresów i wartości. Najczęściej spotkasz litery X, Y, Z dla osi, F dla posuwu, S dla obrotów lub mocy, T dla narzędzia oraz I, J, K dla parametrów łuku. Sama składnia jest zwykle zwięzła, ale znaczenie zależy od tego, co już zostało wcześniej ustawione.
Adresy i stan modalny
Wiele komend jest modalnych, czyli działa dalej, dopóki nie zastąpi ich inne polecenie z tej samej grupy. Jeśli w jednej linii ustawisz G1, to kolejne ruchy mogą pozostać liniowe, nawet gdy nie powtórzysz już samego G1. To wygodne, ale też zdradliwe, bo początkujący często patrzą tylko na ostatnią linię i nie widzą, że maszyna nadal pamięta poprzedni tryb.
Przykładowo zapis G90 G21 G17 zwykle oznacza: pracuj absolutnie, w milimetrach i w podstawowej płaszczyźnie XY. To drobny zestaw, ale ustawia fundament całego programu. Bez takiego początku łatwo o chaos już przy pierwszym przejeździe.
Przeczytaj również: Modelowanie 3D w przeglądarce - które narzędzie wybrać?
Przykład krótkiego programu
G21 G90 G17
G54
G0 X0 Y0 Z5
M3 S12000
G1 Z-1 F300
G1 X40 Y0 F800
G2 X40 Y40 I0 J20
G1 X0 Y40
M5
M30Ten prosty fragment pokazuje typowy tok pracy: ustawienie jednostek, trybu absolutnego i płaszczyzny, wybór bazy roboczej, szybkie dojście nad detal, włączenie wrzeciona, wejście w materiał, przejazd roboczy, łuk i zakończenie programu. Widzisz od razu, że w jednym miejscu mieszają się ruch, parametry pracy i zakończenie cyklu. To właśnie dlatego czytanie G-code wymaga spojrzenia na cały blok, nie tylko na pojedynczy znak.
Takie rozbicie jest potrzebne, bo dopiero na tym poziomie można sensownie omówić najważniejsze komendy, które w praktyce robią większość roboty.
Najczęściej używane komendy i co robią
Jeśli mam wskazać kilka poleceń, bez których trudno czytać większość programów, to zaczynam od poniższych. To nie jest pełna lista całego standardu, tylko zestaw, który rzeczywiście przewija się w codziennej pracy przy frezowaniu, laserze i prostych operacjach CAM.
| Kod | Znaczenie | Po co jest ważny |
|---|---|---|
| G0 | Szybki przejazd bez obróbki | Służy do dojazdu nad detal lub między punktami, gdzie narzędzie nie tnie materiału. |
| G1 | Ruch liniowy z posuwem roboczym | To podstawowy ruch cięcia, frezowania i grawerowania po prostej. |
| G2 | Łuk zgodny z ruchem wskazówek zegara | Używany przy interpolacji kołowej, gdy ścieżka ma iść po okręgu lub fragmencie łuku. |
| G3 | Łuk przeciwny do ruchu wskazówek zegara | Druga połowa interpolacji kołowej, równie ważna jak G2. |
| G17 | Wybór płaszczyzny XY | Najczęściej używana w frezowaniu 2D i wielu operacjach laserowych. |
| G18 | Wybór płaszczyzny XZ | Przydaje się w specyficznych operacjach tokarskich i niektórych cyklach obróbczych. |
| G19 | Wybór płaszczyzny YZ | Spotykana rzadziej, ale istotna tam, gdzie geometria programu tego wymaga. |
| G20 | Jednostki w calach | Ważne przy imporcie obcych postprocesorów i plików z rynków anglosaskich. |
| G21 | Jednostki metryczne | W Polsce to najczęstsze ustawienie i zwykle bezpieczniejszy punkt startu. |
| G28 | Powrót do punktu referencyjnego maszyny | Pomaga bezpiecznie odsunąć maszynę po zakończeniu pracy. |
| G54 do G59 | Układy współrzędnych roboczych | Określają, z którego zera roboczego korzysta program. |
| G90 | Programowanie absolutne | Wszystko liczy się od wspólnego zera, co zwykle ułatwia kontrolę nad programem. |
| G91 | Programowanie przyrostowe | Każdy ruch odnosi się do aktualnej pozycji, więc łatwo o błąd, jeśli pomylisz tryb. |
| G94 | Posuw na minutę | To bardzo częsty sposób definiowania prędkości pracy w CNC. |
| G43 | Korekcja długości narzędzia | Istotna w frezowaniu, bo bez niej wysokość może się rozjechać. |
| M3 | Włączenie wrzeciona lub źródła mocy | W laserze i routerze często uruchamia pracę roboczą, ale znaczenie zależy od sterownika. |
| M4 | Tryb dynamiczny, często używany w laserach | Przydaje się tam, gdzie moc ma reagować na zmianę prędkości przejazdu. |
| M5 | Wyłączenie wrzeciona lub lasera | To komenda bezpieczeństwa, którą warto traktować bez dyskusji. |
| M8 / M9 | Chłodziwo włączone / wyłączone | Ważne przy obróbce skrawaniem, choć w laserze zwykle nie ma zastosowania. |
| M30 | Koniec programu | Zamyka cykl i często resetuje stan programu w kontrolerze. |
Ta tabela obejmuje to, co w praktyce pojawia się najczęściej, ale nie wyczerpuje całego języka. Właśnie tu wielu użytkowników popełnia błąd: zakładają, że skoro rozumieją kilka kodów, to rozumieją już cały program. Nie. Trzeba jeszcze umieć połączyć je z trybem pracy, bazą roboczą i sterownikiem, a to prowadzi wprost do CAM i do tego, jak generowany jest kod.
G-kody w laserze i w CAM nie działają tak samo
W CNC frezującym G-code steruje ruchem narzędzia, ale w laserze często steruje też energią wiązki. To subtelna, ale bardzo ważna różnica. W laserach spotkasz zwykle G0 i G1 jako podstawę ruchu, a moc bywa podawana przez S, z włączeniem i wyłączeniem przez M3, M4 i M5. Przy sterownikach typu GRBL tryb dynamiczny potrafi utrzymać bardziej równomierną jakość graweru, bo kompensuje zmiany prędkości na zakrętach i przy przyspieszeniach.
W CAM z kolei G-code jest zwykle produktem końcowym całej ścieżki. Najpierw projektujesz geometrię, potem wyznaczasz operacje, a dopiero postprocesor tłumaczy to na język sterownika. I tu jest miejsce, w którym wszystko się albo składa, albo psuje. Jeśli postprocesor jest źle dobrany, kod może wyglądać poprawnie, ale maszyna wykona go inaczej niż oczekujesz.
To szczególnie ważne w 2026 roku, gdy wiele osób pracuje na różnych platformach: od małych ploterów i laserów po większe centra obróbcze. Jedna osoba może projektować w tym samym CAM-ie, a potem generować kod dla zupełnie innych sterowników. Dlatego nie wystarczy znać nazwy kodów. Trzeba też wiedzieć, jaką logikę narzuca dany kontroler.
W praktyce patrzę na trzy rzeczy: czy postprocesor jest dopasowany do maszyny, czy jednostki są spójne, oraz czy tryb lasera lub wrzeciona zgadza się z firmware. Jeżeli te trzy warunki są spełnione, połowa problemów znika jeszcze przed pierwszym ruchem. To dobry moment, żeby przejść do błędów, które najczęściej psują cały dzień pracy.
Najczęstsze błędy, które kosztują czas i materiał
Najbardziej bolesne pomyłki w G-code nie wyglądają dramatycznie w edytorze. Często to tylko jedna linia, jeden tryb albo jedno źle ustawione zero. W maszynie jednak taki detal potrafi oznaczać zły przejazd, przejście zbyt nisko, wypalenie narożnika albo uderzenie w stół.
- Pomylenie G90 z G91 - to klasyk. Program napisany do ruchu absolutnego uruchomiony w trybie przyrostowym może wykonać kompletnie nieoczekiwane przejazdy.
- Złe jednostki - plik wygenerowany w calach uruchomiony jako metryczny daje od razu skalę błędu, której nie da się zignorować.
- Brak poprawnego zera roboczego - G54 ustawione w złym miejscu potrafi przesunąć cały detal o kilka lub kilkanaście milimetrów, a czasem znacznie więcej.
- Założenie, że każdy łuk da się wykonać tak samo - nie każdy sterownik interpretuje G2 i G3 identycznie, zwłaszcza przy krótkich łukach i pełnych okręgach.
- Mylenie M3 i M4 w laserze - przy niewłaściwym trybie możesz dostać przegrzane narożniki albo nierówny ślad graweru.
- Brak kontroli posuwu - zbyt szybki F kończy się przeciążeniem, a zbyt wolny potrafi przypalić materiał lub wydłużyć cykl bez sensu.
- Ręczna edycja kodu bez testu - mały dopisek w złym miejscu potrafi zmienić logikę całego programu, zwłaszcza jeśli pomijasz modalność.
Najprościej mówiąc, większość problemów nie wynika z samego G-code, tylko z tego, że ktoś czyta go zbyt dosłownie i bez kontekstu. Właśnie dlatego przed uruchomieniem programu robię krótką kontrolę, która oszczędza materiał, czas i nerwy.
Zanim puścisz program na maszynie, sprawdź te trzy rzeczy
Gdybym miał zostawić tylko jedną praktyczną radę, brzmiałaby tak: zawsze sprawdzaj kod w symulacji albo w trybie bezpiecznym. Nie chodzi o przesadną ostrożność, tylko o normalną higienę pracy. Dwie minuty sprawdzania potrafią oszczędzić godzinę poprawiania błędu, który wziął się z jednej źle ustawionej linii.
- Zweryfikuj jednostki i tryb współrzędnych - G20 czy G21, G90 czy G91, a także właściwe G54/G55. To podstawa, nie dodatek.
- Sprawdź punkt startowy i bezpieczną wysokość - maszyna musi wiedzieć, gdzie jest zero i na jakiej wysokości może bezpiecznie przemieszczać narzędzie.
- Oceń zgodność postprocesora z maszyną - jeśli używasz CAM, to właśnie postprocesor decyduje, czy wygenerowany program naprawdę pasuje do sterownika.
W pracy z laserem dorzuciłbym jeszcze kontrolę mocy i trybu wyjścia, a w frezowaniu korekcję długości narzędzia i chłodziwo. To są drobiazgi tylko na papierze. W praktyce właśnie one oddzielają sprawny proces od kosztownego eksperymentu.
Jeżeli chcesz czytać kody G pewnie, zaczynaj od ruchu, potem ogarnij modalność, a dopiero na końcu zaglądaj do rzadkich instrukcji specjalnych. Taka kolejność daje lepszy efekt niż uczenie się przypadkowej listy symboli. A jeśli pracujesz z CAM, traktuj postprocesor jak równie ważny element procesu, jak sam model i narzędzie.