14 marca 2025

Ender 3 Pro V2

Wiadomości ze świata druku 3d

Polecenia G-kodów drukarki 3D: pełna lista i samouczek

Zrozumienie poleceń G-code odblokuje kolejny poziom drukowania 3D. Czytaj dalej, aby szybko nauczyć się podstaw tego kodu!

Mówiąc najprościej, G-code to język programowania do komputerowego sterowania numerycznego (CNC) . Innymi słowy, jest to język, którym posługuje się komputer sterujący maszyną i przekazuje wszystkie polecenia wymagane do ruchu i innych działań.

Chociaż kod G jest standardowym językiem dla różnych maszyn biurowych i przemysłowych, być może najlepiej znamy go dzięki naszym drukarkom 3D. Być może do tej pory nie radziłeś sobie z tym, co jest normalne, ponieważ fragmentatory 3D generują kod „automagicznie”.

Jeśli jednak chcesz pogłębić wiedzę na temat drukowania 3D, konieczne jest poznanie podstaw G-kodu. Ta wiedza pozwoli Ci znacznie lepiej rozwiązywać problemy i kontrolować procesy drukowania, a także umożliwia dostosowanie oprogramowania układowego drukarki 3D , takiego jak RepRap i Marlin .

W tym artykule omówimy podstawy G-kodu, w tym sposób czytania, rozumienia i pisania kilku linijek poleceń, zapewniając solidne podstawy nawet dla zupełnie początkujących w kodowaniu. Bez zbędnych ceregieli zacznijmy więc od początku!

Co to jest?

Komendy G-kodów służą do instruowania maszyny, aby wykonała określone czynności
Komendy G-code są używane do instruowania maszyny, aby wykonała określone czynności (Źródło: All3DP)

Dla tych, którzy nie znają ogólnie programowania, pomyśl o kodzie G jako o kolejnych wierszach instrukcji, z których każda mówi drukarce 3D, aby wykonała określone zadanie. Te wiersze są znane jako polecenia i drukarka wykonuje je jeden po drugim, aż do końca kodu.

Chociaż termin „kod G” jest używany w odniesieniu do języka programowania jako całości, jest to również jeden z dwóch rodzajów poleceń używanych w drukowaniu 3D: polecenia „ogólne” i „różne”.

Ogólne wiersze poleceń są odpowiedzialne za rodzaje ruchu w drukarce 3D. Takie komendy są oznaczone literą „G”, tak jak w komendach G. Oprócz kontrolowania ruchu w trzech osiach wykonywanych przez głowicę drukującą, odpowiadają również za wytłaczanie filamentu.

Z drugiej strony różne polecenia instruują maszynę, aby wykonywała zadania niegeometryczne. W druku 3D takie zadania obejmują między innymi polecenia ogrzewania dyszy i stołu, a także sterowanie wentylatorem, jak zobaczymy. Różne polecenia są oznaczone literą „M”.

Składnia

Wiersze poleceń składają się z identyfikacji poleceń i kolejnych parametrów
Wiersze poleceń składają się z identyfikacji i parametrów (Źródło: Lucas Carolo przez All3DP)

Każda linia poleceń G-kodu ma określoną składnię. Każda linia odpowiada tylko jednemu poleceniu, co może prowadzić do bardzo długich kodów.

Pierwszym argumentem dowolnego wiersza jest sam kod polecenia. Jak widzieliśmy, może to być kod typu „G” lub „M”, po którym następuje liczba identyfikująca polecenie. Na przykład „G0” odpowiada poleceniu ruchu liniowego.

Dalej są parametry, które dokładniej definiują polecenie. W przypadku ruchu liniowego G0 parametry te obejmują końcową pozycję i szybkość ruchu, również identyfikowane dużymi literami. Każde polecenie ma swój własny zestaw parametrów, jak zobaczymy wkrótce.

Uwaga na temat komentarzy do kodu G

Zanim zaczniemy, kiedy przejdziemy przez różne polecenia, zobaczysz średniki po literze i cyfrze, które wyjaśniają, co robi kod. Oto przykład wiersza z komentarzem kodu:

G1 X25 Y5 ; I am a code comment!

Programiści często muszą dołączyć wyjaśnienia w prostym języku angielskim, aby inni programiści mogli zrozumieć określone wiersze lub sekcje kodu. Może się również zdarzyć, że zapomnisz, dlaczego zakodowałeś rzeczy w określony sposób, co spowoduje, że trudno będzie je ponownie rozgryźć.

Rozwiązaniem tego problemu są komentarze do kodu. Komentarze zawierają wszystko (w tym samym wierszu) następujące po średniku i są całkowicie ignorowane przez maszynę podczas wykonywania kodu G. W ten sposób są przeznaczone wyłącznie dla oczu programistów.

WAŻNE POLECENIA DOTYCZĄCE DRUKOWANIA 3D

Ponieważ istnieją dosłownie setki poleceń G-kodów, w następnych sekcjach omówimy te najbardziej podstawowe i najważniejsze. Gdy już to opanujesz, będziesz mógł samodzielnie przeglądać inne polecenia z arkuszy referencyjnych .

G0 i G1: ruch liniowy

Komendy G0 i G1 odpowiadają za ruch liniowy i wyciąganie
Komendy G0 i G1 odpowiadają za ruch liniowy i wyciąganie (Źródło: Lucas Carolo przez All3DP)

Komendy G0 i G1 wykonują ruchy liniowe. Zgodnie z konwencją, G0 jest używany do ruchów bez wyciskania, takich jak ruchy początkowe i ruchy, podczas gdy G1 obejmuje wszystkie ruchy liniowe z wyciskaniem.

Obie komendy działają jednak tak samo. Parametry dla G0 lub G1 obejmują końcowe pozycje dla wszystkich osi X, Y i Z , wielkość wyciskania do wykonania podczas ruchu oraz prędkość określoną przez prędkość posuwu w ustawionych jednostkach.

Przykład

G1 X90 Y50 Z0.5 F3000 E1nakazuje drukarce ruch w linii prostej (G1) w kierunku ostatecznych współrzędnych X = 90 mm, Y = 50 mm, Z = 0,5 mm z prędkością (F) 3000 mm/min podczas wytłaczania (E) 1 mm materiał w wytłaczarce.

Większość ruchów liniowych jest wykonywana w obrębie pojedynczej warstwy, co oznacza, że ​​współrzędna Z jest zwykle pomijana w wierszu poleceń.POLECENIA G-KODÓW DRUKARKI 3D: LISTA I SAMOUCZEK

G90 i G91: pozycjonowanie bezwzględne i względne

Pozycjonowanie względne jest określone przez poprzednie współrzędne, podczas gdy bezwzględne nie jest
Pozycjonowanie względne jest definiowane przez poprzednie współrzędne, podczas gdy bezwzględne nie (Źródło: Lucas Carolo przez All3DP)

Polecenia G90 i G91 informują maszynę, jak interpretować współrzędne używane do ruchu. G90 ustanawia „pozycjonowanie bezwzględne”, które jest zwykle ustawieniem domyślnym, podczas gdy G91 służy do „pozycjonowania względnego”.

Żadna z komend nie wymaga żadnych parametrów, a ustawienie jednego automatycznie anuluje drugie. Sposób, w jaki działa pozycjonowanie, jest dość prosty, więc przejdźmy od razu.

Przykład

Powiedzmy, że chcemy przesunąć głowicę do X=30 w linii. W trybie pozycjonowania bezwzględnego wyglądałoby to tak:

G90 ; sets absolute positioning G0 X30 ; moves to the X = 30 coordinate

Ten prosty ruch kazałby drukarce przesunąć głowicę drukującą tak, aby była ustawiona na X = 30. Teraz, aby wykonać ruch pozycjonowania względnego, musimy wiedzieć, gdzie aktualnie znajduje się głowica drukująca. Załóżmy, że jest to X = 10:

G91 ; sets relative positioning G0 X20 ; moves +20 mm along the X-axis

G91 najpierw nakazuje maszynie zinterpretować współrzędne jako odnoszące się do aktualnej pozycji (X = 10). Wiedząc o tym, maszyna musi po prostu przesunąć się o 20 mm w dodatnim kierunku osi X, osiągając w ten sposób X = 30, tak jak byśmy tego chcieli.

G28 i G29: Automatyczne poziomowanie domu i łóżka

G28 i G29 są przydatne w fazie inicjalizacji, ponieważ maszyna gromadzi informacje fizyczne
G28 i G29 są przydatne w fazie inicjalizacji (Źródło: Lucas Carolo przez All3DP)

„Homing” nazywamy procesem ustalania fizycznych granic wszystkich osi ruchu. Polecenie G28 wykona to zadanie, przesuwając głowicę drukującą, aż uruchomi ograniczniki potwierdzające limity.

Homing jest ważny nie tylko dla orientacji maszyny, ale także dla zapobiegania przesuwaniu się głowicy drukującej poza granice. Komenda G28 jest zwykle wykonywana przed każdym procesem drukowania.

Kolejne polecenie, G29, uruchamia sekwencję automatycznego poziomowania stołu . Istnieje wiele różnych metod poziomowania stołu przed drukowaniem, ponieważ jest to zwykle ustalane przez oprogramowanie układowe , a nie przez użytkowników końcowych. Z tego powodu nie będziemy wchodzić w szczegóły dotyczące metod i parametrów poleceń. Wystarczy wiedzieć, że G29 jest zwykle wysyłany po automatycznym powrocie do domu (G28) i powinien wykonać automatyczne poziomowanie łóżka zgodnie z oprogramowaniem układowym .

Przykład

G28 X Y ; home the X and Y axes only

G28 ; home all axes

Określona oś może być indywidualnie bazowana poprzez uwzględnienie X, Y lub Z jako parametrów. W przeciwnym razie sam G28 zdobędzie wszystkie trzy.

G29 ; perform automatic bed leveling sequence

Jeśli chcesz uruchomić sekwencję automatycznego poziomowania łóżka, pamiętaj, aby wysłać G29 po wykonaniu procesu naprowadzania.

M104, M109, M140 i M190: Ustaw temperaturę

Te polecenia M są odpowiedzialne za kontrolowanie temperatury gorącego końca i stołu
Te polecenia kodu M są odpowiedzialne za kontrolowanie temperatury gorącego końca i stołu (źródło: Lucas Carolo przez All3DP)

Są to podstawowe różne polecenia, które znowu nie wymagają żadnego ruchu.

Aby rozpocząć, polecenie M104 ustawia docelową temperaturę do osiągnięcia przez gorący koniec i utrzymuje ją do czasu otrzymania innych instrukcji.

Niektóre parametry obejmują rzeczywistą wartość temperatury (S) i głowicę drukującą (T) do nagrzania (w przypadku konfiguracji wielokrotnego wytłaczania).

Przykład

M104 S210 ; set target temperature for hot end to 210 degrees

Ten wiersz poleceń nakazuje maszynie rozgrzanie gorącego końca do 210 °C i zakłada, że ​​w tej konfiguracji wytłaczania jest tylko jeden gorący koniec. Po ustawieniu temperatury docelowej drukarka przejdzie do wykonania następnego wiersza poleceń podczas podgrzewania gorącego końca.

Alternatywnie, jeśli chcielibyśmy poczekać, aż ten cel zostanie osiągnięty, zanim przejdziemy do następnej linii, możemy użyć polecenia M109.

M109 S210 ; set target temperature for hot end to 210 degrees and do nothing until reached  

Ustawienie temperatury stołu jest bardzo podobne do gorącego końca, ale zamiast tego za pomocą poleceń M140 i M190:

M140 S110 ; set target temperature for bed to 110 degrees
M190 S110 ; set target temperature for bed to 110 degrees and do nothing until reached

M106 i M107: Sterowanie wentylatorem

Komendy M106 i M107 sterują wszystkimi wentylatorami w Twojej drukarce 3D
Komendy M106 i M107 sterują wszystkimi wentylatorami w drukarce 3D (Źródło: Lucas Carolo przez All3DP)

Kolejne ważne zadanie dla drukarek 3D, różne polecenia M106 i M107 zapewniają sterowanie wentylatorem .

M106 włącza wentylator i ustawia jego prędkość. Jest to szczególnie przydatne w przypadku wentylatora chłodzącego część, ponieważ podczas procesu drukowania podczas pierwszej warstwy i mostkowania wymagane są różne prędkości .

Parametr prędkości musi być wartością z zakresu od 0 do 255. Wartość 255 zapewnia 100% mocy, a każda liczba w tym zakresie określa odpowiednio procent.

Przykład

M106 ; turn on a fan at maximum (100%) speed
M106 S128 ; turn on a fan and set it to 50% power

Wiele wentylatorów z regulacją prędkości można zdefiniować za pomocą parametrów indeksu (P), ponieważ każdy wentylator ma przypisany indeks przez oprogramowanie układowe.

Na koniec komenda M107 wyłączy określony wentylator. Jeśli nie podano parametru indeksu, zwykle wyłączany jest wentylator chłodzący część.

STRUKTURA PROGRAMU

Jesteśmy teraz w dobrej sytuacji, aby przyjrzeć się rzeczywistemu fragmentowi kodu używanego do drukowania 3D. Programy w kodzie G można podzielić na trzy odrębne sekcje, jak zobaczymy dalej.

Warto zauważyć, że jeśli użyjesz edytora tekstu do otwarcia pliku z kodem G wygenerowanego przez fragmentator 3D, może się okazać, że nie rozpocznie się on od razu od poleceń G lub M. Na przykład fragmentator, taki jak Cura lub Simplify3D , uruchamia kod, umieszczając niektóre parametry procesu drukowania zdefiniowane wcześniej w komentarzach. Te wiersze nie wpłyną na drukowanie, ale zamiast tego stanowią szybkie odniesienie do parametrów, takich jak na przykład wysokość warstwy.

Faza 1: Inicjalizacja

The
„Faza inicjalizacji” obejmuje wszystkie polecenia wymagane do przygotowania drukarki do drukowania (Źródło: Lucas Carolo przez All3DP)

Pierwsza sekcja każdego programu zawiera czynności przygotowawcze wymagane przed rozpoczęciem drukowania modelu. Poniżej znajduje się pierwszych sześć linii poleceń inicjalizacji kodu G z rzeczywistego zadania drukowania 3D.

G90
M82
M140 S80
M104 S200
G28
G29

Jak teraz wiemy, pierwsza linia mówi, że ruchy powinny wykorzystywać pozycjonowanie bezwzględne, podczas gdy druga linia mówi ekstruderowi, aby również interpretował wytłaczanie w kategoriach bezwzględnych.

Trzecia i czwarta linia zaczynają podgrzewać złoże i dyszę do ich docelowych temperatur. Zwróć uwagę, że nie będzie czekać na docelową temperaturę, co oznacza, że ​​drukarka automatycznie przejdzie do pozycji wyjściowej i wypoziomuje łóżko podczas nagrzewania.

Niektóre procedury inicjalizacji (np. ta używana przez PrusaSlicer ) obejmują proces czyszczenia dysz, na przykład drukowanie pojedynczej linii prostej przed przejściem do procesu drukowania.

Faza 2: Drukowanie

Proces drukowania składa się głównie z serii ruchów i wytłoczeń
Proces drukowania składa się głównie z serii ruchów i ekstruzji (Źródło: Lucas Carolo przez All3DP)

Oto, gdzie dzieje się magia. Jeśli spojrzysz na pocięty plik kodu G, zobaczysz, że nie jesteśmy w stanie określić, co właściwie robi dysza.

Drukowanie 3D to proces warstwa po warstwie, więc przekonasz się, że ta faza obejmuje wiele ruchów w płaszczyźnie XY podczas drukowania pojedynczej warstwy. Gdy to zrobisz, jeden mały ruch w kierunku Z zdefiniuje początek następnej warstwy.

Oto przykład, jak polecenia G-code mogą wyglądać w fazie drukowania:

G1 X103.505 Y153.291 E4.5648 ; movement and extrusion in XY plane
G1 X103.291 Y153.505 E4.5804 ; movement and extrusion in XY plane
G1 Z0.600 F3000 ; change layer
G1 X104.025 Y154.025 F9000 ; movement in XY plane
G1 X95.975 Y154.025 E0.4133 F1397 ; movement and extrusion in XY plane

Faza 3: Zresetuj drukarkę

Ostateczne polecenia kodu G to zwykle resetowanie pozycji i statusu
Ostateczne polecenia kodu G to zwykle resetowanie pozycji i statusu (Źródło: Lucas Carolo przez All3DP)

Wreszcie, po zakończeniu drukowania, niektóre ostatnie wiersze poleceń kodu G przenoszą drukarkę do rozsądnego stanu domyślnego.

Na przykład dysza może przejść do wstępnie zdefiniowanej pozycji, podgrzewacze gorącego końca i łóżka są wyłączone, a silniki są wyłączone, między innymi.

M107 ; turn fan off
G1 Z10 ; move nozzle away from print
M104 S0 ; turn hot end heating off
M140 S0 ; turn bed heating off
M84 ; turn motors off

Wejścia i wyjścia terminali

OctoPrint posiada okno terminala do bezpośredniego wysyłania i odbierania G-kodu
OctoPrint ma okno terminala do bezpośredniego wysyłania i odbierania kodu G (Źródło: Lucas Carolo przez All3DP)

Do tej pory mówiliśmy tylko o wysyłaniu przez komputer poleceń G-code do drukarki (zwykle przesyłanych przez kartę SD). Nie jest to jednak jedyny sposób komunikacji.

Niektóre programy sterujące, takie jak Pronterface i OctoPrint , umożliwiają bezpośrednią komunikację z drukarką 3D, w którym to przypadku można ręcznie wprowadzać polecenia.

Z oczywistych względów nie byłoby praktyczne drukowanie czegokolwiek przez wysyłanie pojedynczych wierszy kodów. Ale czasami ta metoda komunikacji jest potrzebna do innych celów, takich jak pobieranie cennych informacji do kalibracji lub nawet wtedy, gdy drukarka 3D nie ma ekranu wyświetlacza.

Na przykład polecenie M105 „zgłoś temperatury” pobierze bieżące temperatury dyszy i stołu (które mogą być następnie wyświetlane przez coś takiego jak OctoPrint).

Ta komunikacja jest również bardzo przydatna do przeglądania i zmiany ustawień EEPROM, które są zakodowane na stałe na poziomie oprogramowania układowego. Parametry takie jak kroki silnika/mm, maksymalne prędkości posuwu lub PID można wizualizować za pomocą M503 („ustawienia raportu”), zmieniać ręcznie, a następnie zapisywać za pomocą M500 („zapisz ustawienia”).

Pisanie kodu G

Niektóre narzędzia do wizualizacji kodu G mogą być bardzo przydatne do nauki pisania kodu
Niektóre narzędzia do wizualizacji kodu G mogą być bardzo przydatne do nauki pisania kodu (Źródło: Lucas Carolo przez All3DP)

Do tej pory powinieneś być w stanie znacznie lepiej czytać i rozumieć G-kod. Mimo to możesz również skorzystać z jego napisania.

Ta wizualizacja G-kodu online jest doskonałym narzędziem do testowania swoich umiejętności, ponieważ możesz pisać polecenia G-kodu i odpowiednio je symulować. To naprawdę świetna zabawa!

Spojrzenie na wyeksportowane pliki G-kodu z fragmentatorów powinno również dostarczyć pewnych informacji na temat działania G-kodu w przypadku drukowania 3D. Upewnij się, że masz przy sobie arkusz referencyjny poleceń i zapoznaj się z kodem!

Zgodność

Nauka G-kodu to ciągłe i satysfakcjonujące zadanie
Nauka G-kodu to ciągłe i satysfakcjonujące zadanie (Źródło: Repetier )

Mamy nadzieję, że dzięki zrozumieniu poleceń G-kodów staniesz się bardziej kompetentnym i potężnym użytkownikiem drukowania 3D. Chociaż G-kod nie jest najbardziej złożonym językiem komputerowym, nadal wymaga dużo praktyki i nauki.

Zanim zakończymy ten artykuł, warto porozmawiać o kompatybilności G-code.

Istnieje wiele rodzajów oprogramowania do drukowania 3D, a każdy z nich może mieć inne „smaki” kodu G. Może to prowadzić do poważnych problemów ze zgodnością, ponieważ polecenia działające na jednym komputerze mogą nie działać na innym.

Oprogramowanie Slicer obsługuje to, przekazując kod przez sterowniki przetwarzania końcowego specyficzne dla maszyny. Postprocesor wykrywa smak przychodzącego kodu i konwertuje go na coś, co zrozumie oprogramowanie układowe.

Powiedziawszy to, mamy nadzieję, że spodobał Ci się ten krótki przewodnik. Udanego kodowania!