Jak sprawdzić kolizje przed uruchomieniem g-code na routerze cnc?
Coraz więcej osób eksportuje ścieżki narzędzia do CSV, by szybciej sprawdzić płynność ruchu, liczbę kroków i ewentualne problemy z posuwem. To prosty sposób, by zweryfikować, czy router CNC będzie poruszał się tak, jak planuje CAM. Warto jednak dobrze przygotować dane, inaczej obliczenia kroków będą rozbieżne.
Poniżej znajdziesz praktyczny przewodnik, jak ułożyć kolumny, przeliczyć milimetry na kroki, potraktować łuki oraz zautomatyzować import do Pythona lub arkusza. Wszystko w formie, którą łatwo powielić w kolejnych projektach.
Jak przygotować CSV z g-code routera CNC do analizy kroków?
Najpierw unifikuj jednostki, ruchy i modalność, potem przelicz każdy ruch na odcinki z czasem i dystansem.
Ustal, czy kod używa milimetrów czy cali. Znormalizuj do milimetrów. Sprawdź tryb współrzędnych G90 lub G91 i zamień na ruchy przyrostowe między kolejnymi punktami. Ujednolić typ ruchu: szybki G0 oraz roboczy G1, a także G2 i G3. Dla łuków zaplanuj segmentację na krótkie odcinki liniowe z kontrolą błędu. W każdej linii CSV zapisz pozycję końcową, posuw, typ ruchu, dystans i czas trwania. Dzięki temu łatwo policzysz kroki dla każdego odcinka i zsumujesz je w czasie.
Jak wyodrębnić istotne kolumny pozycji, prędkości i czasu z CSV?
Stwórz czytelny zestaw kolumn pozycji, posuwu, dystansu i czasu oraz identyfikatory linii i trybu.
W praktyce sprawdzają się takie kolumny:
- line_id, gcode, move_type
- x_mm, y_mm, z_mm
- f_mm_min, units, coord_mode
- dx_mm, dy_mm, dz_mm, distance_mm
- dt_s, t_s_cumulative
- steps_x, steps_y, steps_z, dir_x, dir_y, dir_z
- plane, arc_cx_mm, arc_cy_mm, arc_r_mm, arc_dir
Pozycje x_mm, y_mm, z_mm zapisuj jako wartości końcowe polecenia. Różnice dx, dy, dz licz jako różnice do poprzedniej pozycji. distance_mm to długość wektora ruchu. Czas odcinka dt_s wylicz z posuwu. t_s_cumulative to suma narastająca czasu. Kierunek dir wyznacz ze znaku różnicy osi.
Jak przeliczyć współrzędne milimetrowe na kroki silników krokowych?
Użyj przelicznika steps_per_mm dla każdej osi i pomnóż przez przesunięcie osi w milimetrach.
Dla śruby kulowej steps_per_mm = motor_steps_per_rev × microsteps podzielone przez skok śruby w milimetrach. Dla paska steps_per_mm = motor_steps_per_rev × microsteps podzielone przez obwód na obrót, czyli liczba zębów koła × skok paska. Jeśli występuje przekładnia, uwzględnij przełożenie. Kroki osi to steps_axis = dx_mm × steps_per_mm. Wynik zaokrąglij do najbliższej liczby całkowitej. Dla ruchów wieloosiowych różnice zaokrągleń mogą się kumulować. Jeśli chcesz odwzorować kolejność impulsów, zastosuj algorytm akumulacji błędu w stylu Bresenhama, ale do sumarycznej analizy zwykle wystarczy proste zaokrąglenie. Pamiętaj o kierunku. Ustal go na podstawie znaku dx, dy, dz, co pozwoli przypisać impulsy do odpowiedniego kierunku drivera.
Jak obsłużyć ruchy łukowe i interpolację w pliku CSV?
Zsegmentuj łuki G2 i G3 na małe odcinki liniowe z kontrolą błędu cięciwy.
Łuki opisane przez IJK lub R przelicz na serię odcinków. Ustal promień i kąty początkowy oraz końcowy. Wybierz tolerancję błędu cięciwy, na przykład e_mm. Dobierz kąt segmentu tak, by odchyłka nie przekraczała e_mm. Dla każdego segmentu policz końcowy punkt, dystans oraz czas z posuwu F. Kierunek łuku (CW lub CCW) zachowaj w kolumnie arc_dir. Jeśli plik zawiera płaszczyznę inną niż XY, zapisz ją w kolumnie plane. Dzięki temu analiza kroków jest spójna dla ruchów liniowych i łukowych, a łączna liczba kroków odpowiada geometrii.
Jak poprawnie ustawić separator, kodowanie i nagłówki w CSV?
Użyj separatora przecinka lub średnio popularnego przecinka zależnie od środowiska, kodowania UTF-8 i jednoznacznych nagłówków.
Najbezpieczniejsze jest kodowanie UTF-8. W systemach ustawionych na polską lokalizację arkusze czasem oczekują średników zamiast przecinków, ale przy analizie w Pythonie przecinek jest wygodniejszy. Ustal jednoznaczne nazwy kolumn i trzymaj stałą kolejność. Stosuj kropkę jako separator dziesiętny. Warto dodać pierwszą linię z nazwami kolumn, bez zbędnych znaków i spacji. To ogranicza błędy przy imporcie i pracy na formułach.
Jak zredukować szum i nadmiar punktów przed analizą kroków?
Usuń duplikaty, połącz bardzo krótkie ruchy i wyrównaj próbki do stałego kroku długości lub czasu.
Najpierw usuń kolejne punkty, które nie zmieniają pozycji. Następnie scal ruchy krótsze niż ustalona tolerancja, na przykład wynikające z zaokrągleń CAM. Dla łuków i powierzchni 3D ustaw maksymalną długość segmentu, by nie mnożyć punktów. Jeśli analizujesz przebieg w czasie, rozważ resampling do stałego kroku czasu lub stałej długości odcinka, zachowując geometrię i posuw. Unikaj wygładzania, które zmienia kształt naroży. Szum pomiarowy z czujników filtruj osobno, na surowym logu, a nie na geometrii G-code.
Jak zautomatyzować import CSV do Pythona lub arkusza kalkulacyjnego?
Zdefiniuj stałe maszyny, wczytaj CSV, oblicz różnice, dystans, czas i kroki. W arkuszu użyj kolumn pośrednich.
W Pythonie proces przebiega prosto. Ustal stałe maszyny, takie jak steps_per_mm dla osi. Wczytaj CSV. Dla każdej linii policz dx, dy, dz jako różnice względem poprzedniej pozycji. distance_mm to pierwiastek z sumy kwadratów różnic. Posuw w mm na minutę przelicz na mm na sekundę przez podzielenie przez 60. Czas odcinka to dt_s = distance_mm podzielone przez f_mm_s dla G1, G2, G3. Dla G0 użyj znanego posuwu szybkiego, a jeśli go nie znasz, oznacz czas jako nieokreślony. Sumuj t_s_cumulative. Oblicz steps_x = dx_mm × steps_per_mm_x, analogicznie dla Y i Z, z zaokrągleniem.
W arkuszu kalkulacyjnym przygotuj kolumny z pozycją, różnicami i dystansem. Dodaj formułę na czas odcinka oraz sumę narastającą czasu. Wprowadź stałe steps_per_mm jako pola w nagłówku i użyj ich w formułach na kroki. Dzięki temu arkusz przeniesiesz między projektami bez zmian.
Gotowy do konwersji plików CSV i sprawdzenia wyników kroków?
Tak, jeśli masz spójne jednostki, zsegmentowane łuki i policzone czasy oraz dystanse.
Najpierw upewnij się, że każde polecenie ruchu ma zdefiniowany posuw i czas. Kroki licz z różnic osi i przeliczników steps_per_mm. Łuki zamieniaj na krótkie odcinki, by zachować kontrolę nad błędem. Zadbaj o nagłówki, separator i UTF-8, aby uniknąć błędów podczas importu. Gdy dane są czyste, porównasz liczbę kroków, przebieg czasowy i prędkość w każdej osi, a także wykryjesz miejsca ryzyka utraty kroków.
Dobrze przygotowany CSV to szybka ścieżka do wiarygodnych wniosków. Uporządkowane kolumny, jasne jednostki i spójny czas pozwalają ocenić, czy plan ruchu jest realistyczny dla Twojego routera CNC. Ten proces buduje zaufanie do ścieżek narzędzia i ułatwia korekty w CAM lub ustawieniach sterownika. To także dobry krok do automatycznych testów i raportów jakości w Twoim warsztacie.
Pobierz przykładowy szablon CSV i zastosuj opisane kroki na własnym pliku, a następnie porównaj wyniki z ruchem routera CNC.
Policz dokładną liczbę kroków dla każdej osi i zidentyfikuj miejsca ryzyka utraty kroków dzięki uniwersalnemu szablonowi CSV i opisanym procedurom konwersji: https://truebluemedia.pl/lasery/jz-1325-cnc-tool.









