Co to jest?
G-code jest podstawowym językiem programowania używanym dla prawie wszystkich maszyn CNC, w tym drukarek 3D, routerów i grawerek laserowych. Instruuje on maszynę jak ma się poruszać, nagrzewać i wykonywać inne czynności.
W rzeczywistości, termin „G-code” jest trochę błędnym określeniem; język programowania jest znany jako RS274, ale „G-code” jest często używany w odniesieniu do całego języka, w tym różnych poleceń literowych (G, M, S, itp.).
G-code jest interpretowany przez firmware drukarki i jest tworzony w slicerze, który zamienia model 3D (STL, OBJ, 3MF, itp.) w skrypt G-code. Duże skrypty poleceń, jak całe wydruki 3D, są zazwyczaj wysyłane do drukarki poprzez płytę główną lub urządzenie pamięci (karta microSD), podczas gdy pojedyncze polecenia są zazwyczaj wysyłane na terminalu G-code. Terminale mogą być bardzo pomocne przy ustawianiu offsetów, dostrajaniu PID, sprawdzaniu problemów i wielu innych. Niektóre popularne z nich to Pronterface lub zintegrowany terminal G-code firmy OctoPrint.
Kilka liczb
Istnieją setki różnych poleceń G-code, a każde polecenie zaczyna się od litery, po której następuje liczba (np. „G0”). Niektóre polecenia dotyczą ruchu, inne ciepła; każde polecenie jest unikalne pod względem tego, co mówi maszynie. Na przykład, G0 nakazuje drukarce poruszać się tak szybko, jak to możliwe, podczas gdy G1 jest dla ruchu kontrolowanego.
Instrukcje mogą być również w serii kombinacji, aby jeszcze bardziej zdefiniować początkowe polecenie. Na przykład, G0 X10 Y20 mówi maszynie, aby szybko poruszała się o 10 jednostek wzdłuż osi X i 20 jednostek wzdłuż osi Y.
Polecenie G92 jest jednym z tych poleceń G-code i na drukarce 3D określa aktualną lokalizację dyszy. Przykładowo, skrypt G92 X10 Y20 Z30 E40 mówi maszynie, że dysza znajduje się na współrzędnych (10, 20, 30) – czyli 10, 20 i 30 mm w dodatnich osiach X, Y i Z. Wartość E oznacza, że ekstruder (a konkretnie silnik krokowy sterujący przekładnią) wycisnął 40 mm filamentu.
Mówienie drukarce, gdzie znajduje się dysza, może wydawać się nieintuicyjne, ale w rzeczywistości polecenie to może być bardzo pomocne, zwłaszcza jeśli chodzi o ustawianie offsetów. W tym artykule omówimy, na przykładach, jak można użyć tej komendy na swojej maszynie.
Jak go używać?
Celem polecenia G92 jest umożliwienie ustawienia przesunięć roboczych na maszynie, aby przeciwdziałać przesunięciom fizycznym lub przestrzennym. Pozwala to na fizyczne przesunięcie pomiędzy prawdziwą pozycją wyjściową a cyfrową pozycją wyjściową. Na przykład, możesz użyć polecenia G92, jeśli chcesz drukować 3D lub ciąć tylko określoną część lub na określonej wysokości.
Na drukarce 3D, ustawienie offsetu byłoby tak proste, jak naprowadzenie dyszy (G28) – tym samym wysłanie jej do prawdziwej pozycji wyjściowej- przesunięcie jej o pewien dystans w dowolnym kierunku (G0 lub G1) i ustawienie cyfrowej pozycji wyjściowej (G92 X0 Y0 Z0). Istnieją jednak również inne zastosowania.
Przykład druku 3D
Załóżmy, że Twoja drukarka 3D kazała ekstruderowi wypchnąć 5 mm filamentu (G1 E5), a teraz chcesz wytłoczyć jeszcze 2 mm materiału. Jeśli po prostu wyślesz G1 E2, Twoja drukarka będzie wiedziała, że wytłoczyła 5 mm, a tak naprawdę cofnie się o 3 mm, a nie wytłoczy 2 mm.
Aby wykonać tę czynność prawidłowo, możesz wysłać G92 E0, a następnie wysłać polecenie G1 E2. To powie Twojej drukarce, aby wyzerowała „oś” ekstrudera (E), tak aby mogła wycisnąć 2 mm filamentu. W pewnym sensie „zapomina”, że wcześniej wytłaczała 5 mm.
Przykład CNC
Załóżmy, że chcesz użyć routera do cięcia bloku drewna, którego dolny róg jest zabezpieczony w miejscu (20, 20, 3), a pozycja wyjściowa wrzeciona jest (0, 0, 0). Tak jak zaprogramowano, maszyna będzie interpretować każdy przychodzący G-code z perspektywy tej pozycji wyjściowej.
Jeśli nie chcesz dodawać 20, 20, i 3 do wszystkich swoich poleceń cięcia, możesz po prostu użyć G92, aby dostosować fizyczne przesunięcie bloku. Aby to zrobić, wyślij G0 X20 Y20 Z3, aby przesunąć wrzeciono do miejsca, w którym znajduje się blok, a następnie ustaw przesunięcie za pomocą G92 X0 Y0 Z0. To uczyni wszystkie twoje polecenia ruchu (dla tego zadania) znacznie prostszymi do zaprogramowania i odczytania.
Powszechne problemy
Podczas używania komendy G92, możesz napotkać pewne problemy, ale nie martw się, ponieważ wiele z nich można łatwo rozwiązać. Przyjrzyjmy się im.
- Przesunięcia nie wchodzą w życie: Po wysłaniu dowolnej formy komendy G92, możesz anulować przesunięcie komendą G28, która wyzeruje każdą określoną oś z powrotem do jej prawdziwego położenia zerowego (na krańcówkach). Z tego powodu, upewnij się, że twój skrypt G-kodu nie zawiera G28, w przeciwnym razie, zapomni on o przesunięciu G92.
- Brak krańcówek: Jeśli Twoja maszyna działa na firmware Marlin i nie ma krańcówek ani wyłączników krańcowych, będziesz musiał edytować firmware, aby używać komendy G92. Główny twórca Marlina, thinkyhead, zauważył, że powinieneś upewnić się, że funkcja „NO_WORK_OFFSETS” jest włączona.
- Niekompatybilny lub niezapisany firmware: Niektórzy użytkownicy doświadczyli problemów z tym, jak ich firmware interpretuje komendę G92. Za każdym razem, gdy flashujesz nowy firmware, sprawdź, czy obsługuje on polecenie G92. (Marlin obsługuje.) Następnie, po ustawieniu nowych offsetów za pomocą komendy i uruchomieniu nowego firmware, wyślij komendę M500, aby zapisać wszystkie ustawienia.
Jeśli chcesz przetestować przesunięcia G92, możesz użyć polecenia M114, które odczyta z powrotem, gdzie maszyna lokalizuje swoje osie.
Żródło: https://all3dp.com