frezarki cnc - g-cody i te sprawy

0

Pytanie do praktyków cnc:
czy istnieje kod biegu freza, czy noża po krzywej beziera?

bo gdy oglądam te g-cody na frezarki, plotery, no to tam tylko linami prostymi to biega,
co produkuje ogromne pliki w przypadku obróbki po krzywych - łuki, okręgi, elipsy...

np. wycinanie okręgu:
G1 z0.0
G1 x0.0 y0.0
G1 x1.0 y0.1
...
itd.

tego będzie z 500 linii chyba, ponieważ to jedzie po wielokącie.

Bezierem przecież można to załatwić w 4, czy 8 liniach góra.

Może inaczej - konkretniej:
czy obecnie używane maszyny rozpoznają inne g-kody do jazdy poza tym G0 i G1?

Najlepiej byłoby gdyby taką maszynę traktować jak drukarkę, czyli zwyczajnie po tym rysuję - jak na papierze,
i mnie nie interesuje co ona za g-kody używa - po co mi to?

po prostu używam standardowych funkcji graficznych, np:

PolyBezier(...)
Ellipse...
LineTo
Polygon
itd.

może ktoś wie coś na ten temat; pzdrm.

0

Kody G2 i G3 służą do poruszania się po łukach i okręgach.

0
Law napisał(a):

Pytanie do praktyków cnc:
czy istnieje kod biegu freza, czy noża po krzywej beziera?

G5.
Jakieś 2 sekundy szukania.

bo gdy oglądam te g-cody na frezarki, plotery, no to tam tylko linami prostymi to biega,
co produkuje ogromne pliki w przypadku obróbki po krzywych - łuki, okręgi, elipsy...

I w czym problem?
Nie każde urządzenie wspiera wszystkie komendy. Nie każde musi.

np. wycinanie okręgu:
(...)
tego będzie z 500 linii chyba, ponieważ to jedzie po wielokącie.

G2, G3 pozwalają na ruch po łuku. I też nie wszystkie urządzenia je obsługują.

Bezierem przecież można to załatwić w 4, czy 8 liniach góra.

Ale ktoś poszczególne punkty musi przeliczyć. Jak CNC jest wypasione to może liczyć samo, jak nie - ogarnie tylko jazdę po wielokącie. Często to wystarcza.

Może inaczej - konkretniej:
czy obecnie używane maszyny rozpoznają inne g-kody do jazdy poza tym G0 i G1?

Tak. Kodów są czasem i setki.

Najlepiej byłoby gdyby taką maszynę traktować jak drukarkę, czyli zwyczajnie po tym rysuję - jak na papierze,
i mnie nie interesuje co ona za g-kody używa - po co mi to?
po prostu używam standardowych funkcji graficznych, np:

PolyBezier(...)
Ellipse...
LineTo
Polygon
itd.

Obuduj sobie gcody w takie funkcje to będziesz coś podobnego miał. Zresztą sporo programów CAM ma gdzieś w środku własnie taką warstwę abstrakcji która dopiero potem zamieniana jest na polecenia urządzenia (no mój tak ma ;p).

Pamiętaj że do urządzenia (frezarki, tokarki, drukarki 3D, plotera, lasera, itp) wysyłasz to co ma zrobić narzędziem a nie to co chcesz otrzymać jako efekt końcowy.

0

Chyba rozumiem co masz na myśli: proponujesz aby przerabiać te beziery na linie, czyli G1?

zatem poproszę:

int BezierToG1(float pbez[], int count, float prec)
begin

/// ... i tu kod który przerobi beziery na te linie łamane, czyli na G1, i z zadaną precyzją - gładkością, np. 0.1mm.

}
<image>https://www.researchgate.net/profile/Renjiang-Zhang-2/publication/221209101/figure/fig1/AS:648236192784384@1531562960403/Approximation-of-a-Bernstein-Bezier-polynomial-curve-with-5-segments.png</image>

1 użytkowników online, w tym zalogowanych: 0, gości: 1