Strona 1 z 16

NGCGUI wyrzuca błąd!!

: 05 sie 2025, 23:35
autor: wm56
Poszukuje pomocy w sprawdzeniu ngcgui, który został stworzony przez Copilot.
Założenia programu mają na celu:
- frezowanie rowków w osi y w poprzek profila aluminiowego w określonych odstępach definiowanych z programu
- ustawienie marginesów na początku i na końcu profila, które to marginesy nie będą frezowane
- automatyczne policzyć ilość rowków po podaniu długości materiału z uwzględnieniem szerokości marginesów
- ustawienie odległości między rowkami
- głębokość frezowanego rowka
- pozycje startowe w osi xy
- powrót do xy po zakończeniu frezowania
- długość frezowania w osi y
- liczba warstw frezowania w osi z
- tryb rampy
- wysokość startowa
- wyjazd poza materiał
- głębokość rowka
- średnica freza
oraz wszystkie pozostałe parametry jak obroty wrzeciona, posuw, załączenie mgły olejowej.

Sub się uruchamia w zakładce axis bez żadnych problemów, da się wpisać wszystkie niezbędne parametry i na tym koniec.

Obrazek

Problem zaczyna się pojawiać po wciśnięciu przycisku "finalize". Otóż, po jego naciśnięciu wyskakuje błąd taki jak na załączonym zdjęciu.

Obrazek

Z linuksem jakoś sobie radzę, ale ni w ząb nie mam pojęcia o co w tych ngcgui chodzi. Spędziłem sporo czasu analizując razem Copilotem ten podprogram i wychodzi wciąż to samo. Nie mam już pomysłu co z tym dalej robić.

Nic mi nie pozostało tylko prosić Was o pomoc.
Może ktoś zajmuje się pisaniem takich programów to chętnie zlecę jego wykonanie.

Wszystkie podpowiedzi jak i krytyki przyjmę z pkorą jako lekcję nauki.

rowki.zip
(1.06 KiB) Pobrany 45 razy

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 04:09
autor: ClickerItalianbrainrot
Świetny pomysł na automatyzację! Sprawdź koniecznie Italian Brainrot Clicker obliczanie odstępów i warstw Z – reszta brzmi bardzo dobrze.

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 05:11
autor: tuxcnc
wm56 pisze:
05 sie 2025, 23:35
Poszukuje pomocy w sprawdzeniu ngcgui, który został stworzony przez Copilot.
(...)
Spędziłem sporo czasu analizując razem Copilotem ten podprogram i wychodzi wciąż to samo. Nie mam już pomysłu co z tym dalej robić.
Świat zmierza ku wielkiej katastrofie...

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 07:28
autor: drzasiek90
Pokaż ten wygenerowany przez twojego suba plik auto.ngc

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 08:49
autor: kamar
ClickerItalianbrainrot pisze:
06 sie 2025, 04:09
Clicker[/size][/color][/URL] obliczanie odstępów i warstw Z – reszta brzmi bardzo dobrze.
Błąd jest przy wyliczaniu liczby rowków w zadanym zakresie. LinuxCNC nie rozpoznaje funcji FLOOR

Obrazek

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 13:25
autor: tuxcnc
kamar pisze:
06 sie 2025, 08:49
Błąd jest przy wyliczaniu liczby rowków w zadanym zakresie. LinuxCNC nie rozpoznaje funcji FLOOR
Prawda, ale to chyba nie wszystko.

Tak ogólnie, to komunikat błędu jest bardzo mylący.
W linii 26 auto.ngc jest wywoływany podprogram rowki.ngc, czyli dowolny błąd w rowki.ngc będzie zgłaszany jako występujący w linii 26 auto.ngc.
Żeby debuggować rowki.ngc trzeba by było przerobić go z podprogramu na program i dopiero wtedy patrzeć gdzie są jakieś błędy.

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 14:34
autor: kamar
kamar pisze:
06 sie 2025, 08:49
LinuxCNC nie rozpoznaje funcji FLOOR
Nie rozpoznaje też innych zaokrąglających w dół, np ROUNDDOWN

Wyrażenie:
#<liczba_rowkow> = [#<dl_robocza> / #<odl_rowki>] ma zwrócić liczbę całkowitą z obciętym ułamkiem.
Jak to przeskoczysz to można będzie szukać dalej.

Dodane 34 minuty 24 sekundy:
tuxcnc pisze:
06 sie 2025, 13:25
Tak ogólnie, to komunikat błędu jest bardzo mylący.
W linii 26 auto.ngc jest wywoływany podprogram rowki.ngc, czyli dowolny błąd w rowki.ngc będzie zgłaszany jako występujący w linii 26 uto.ngc.
Szczególnie jak ma się mgliste pojęcie o działaniu subów ngcgui. Nie trza sie bać ptaszków, zaznaczyć środkowego w axisie i analizować całe auto.

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 14:53
autor: tuxcnc
Dziwne, że w ogóle mi się chciało, ale sprawdziłem i okazuje się, że miałem rację.
Oprócz użycia FLOOR zamiast FIX jest tam jeszcze kilka linii, w których są użyte nawiasy zwykłe zamiast kwadratowych, więc część wyrażeń jest traktowana jak komentarz i wywala błąd.
Ale nawet po poprawieniu wszystkiego wychodzą bzdury:
Obrazek
Próba wykonania tego programu skończyła by się połamaniem freza już na samym początku...

Czyli podsumowując, sztuczny debilizm nie pomoże ignorantom i nieukom.

Swoją drogą to też ciekawe, dlaczego autor wątku nie zapytał AI, tylko zawracał dupę żywym ludziom...

Dodane 3 minuty 40 sekundy:
kamar pisze:
06 sie 2025, 14:34
Szczególnie jak ma się mgliste pojęcie o działaniu subów ngcgui. Nie trza sie bać ptaszków, zaznaczyć środkowego w axisie i analizować całe auto.
Istnieje życie poza Axis...

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 15:35
autor: kamar
wm56 pisze:
05 sie 2025, 23:35
Wszystkie podpowiedzi jak i krytyki przyjmę z pkorą jako lekcję nauki.

Bez poświęcania się dla Ojczyzny i Narodu, w kilka minut dało się poprawić na Twoich parametrach

Kod: Zaznacz cały

o<rowki> sub

#<dl_mater> = #1 (= długość materiału [mm])  
#<odl_rowki> = #2 (= odległość między rowkami [mm])  
#<sr_freza> = #3 (= średnica frezu [mm])  
#<glebokosc> = #4 (= głębokość rowka [mm])  
#<wyjazd> = #5 (= wyjazd poza materiał [mm])  
#<obroty> = #6 (= prędkość obrotowa wrzeciona [RPM])  
#<mgla> = #7 (= mgła olejowa [1=ON, 0=OFF])  
#<marg_pocz> = #8 (= margines początkowy [mm])  
#<marg_kon> = #9 (= margines końcowy [mm])  
#<start_x> = #10 (= pozycja startowa X [mm])  
#<start_y> = #11 (= pozycja startowa Y [mm])  
#<powrot> = #12 (= powrót do XY po zakończeniu [1=TAK, 0=NIE])  
#<kier_frezowania> = #13 (= kierunek frezowania [0=lewa ➝ prawa, 1=prawa ➝ lewa])  
#<start_z> = #14 (= wysokość startowa Z [mm])  
#<tryb_rampy> = #15 (= tryb rampy [0=brak, 1=rampa X, 2=rampa Y])  
#<posuw> = #16 (= posuw [mm/min])  
#<dl_y> = #17 (= długość frezowania w osi Y [mm])  
#<warstwy> = #18 (= liczba warstw frezowania w osi Z)

M3 S[#<obroty>]
O100 if [#<mgla> EQ 1]
    M7
O100 endif

G0 X#<start_x> Y#<start_y> Z#<start_z>

#<dl_robocza> = [#<dl_mater> - #<marg_pocz> - #<marg_kon>]
#<liczba_rowkow> = FIX[#<dl_robocza> / #<odl_rowki>]
#<skok_z> = [#<glebokosc> / #<warstwy>]

O110 if [#<kier_frezowania> EQ 0]
    #<pocz_rowek> = [#<start_x> + #<marg_pocz>]
    #<i> = 0
O110 else
    #<pocz_rowek> = [#<start_x> + #<dl_mater> - #<marg_kon> - [#<odl_rowki> * [#<liczba_rowkow> - 1]]]
    #<i> = 0
O110 endif

O200 while [#<i> LT #<liczba_rowkow>]
    O300 if [#<kier_frezowania> EQ 0]
        #<x_rowek> = [#<pocz_rowek> + [#<odl_rowki> * #<i>]]
    O300 else
        #<x_rowek> = [#<pocz_rowek> - [#<odl_rowki> * #<i>]]
    O300 endif

    O310 if [#<i> EQ [#<liczba_rowkow> - 1]]
        O320 if [#<kier_frezowania> EQ 0]
            #<x_rowek> = [#<x_rowek> + #<wyjazd>]
        O320 else
            #<x_rowek> = [#<x_rowek> - #<wyjazd>]
        O320 endif
    O310 endif

    G0 X#<x_rowek> Y#<start_y> Z#<start_z>

    O400 if [#<tryb_rampy> EQ 0]
        G1 Z[-#<skok_z>] F[#<posuw>]
    O400 elseif [#<tryb_rampy> EQ 1]
        G1 X[#<x_rowek> + 2] Y#<start_y> Z[-#<skok_z>] F[#<posuw>]
    O400 elseif [#<tryb_rampy> EQ 2]
        G1 X#<x_rowek> Y[#<start_y> + 2] Z[-#<skok_z>] F[#<posuw>]
    O400 endif

    #<j> = 0
    O410 while [#<j> LT #<warstwy>]
        #<z_poziom> = [#<start_z> - [#<skok_z> * [#<j> + 1]]]
        O420 if [#<z_poziom> LT -#<glebokosc>]
            #<z_poziom> = [-#<glebokosc>]
        O420 endif

        G1 Z[#<z_poziom>] F[#<posuw>]
        G1 Y[#<start_y> + #<dl_y>] F[#<posuw>]
        G1 Y#<start_y> F[#<posuw>]
    #<j> = [#<j> + 1]
    O410 endwhile

    G1 X[#<x_rowek> + #<sr_freza>] Z[#<start_z>] F[#<posuw>]

    #<i> = [#<i> + 1]
O200 endwhile

O600 if [#<powrot> EQ 1]
    G0 X#<start_x> Y#<start_y> Z#<start_z>
O600 endif

M9
M5
o<rowki> endsub
M2

Obrazek

P.s. AI to jednak jakaś inteligencja, durniami nie rzuca :)

Re: NGCGUI wyrzuca błąd!!

: 06 sie 2025, 15:54
autor: tuxcnc
kamar pisze:
06 sie 2025, 15:35
dało się poprawić

Kod: Zaznacz cały

#<tryb_rampy> = #15 (= tryb rampy [0=brak, 1=rampa X, 2=rampa Y])
Nadal mam wątpliwości.
Nie mam teraz czasu ani ochoty sprawdzać, ale po jasną cholerę jest ta rampa w X albo Y?
No bo sama rampa to rozumiem, ale nie widzę możliwości cięcia rowków w X albo Y, więc zapewne stąd u mnie się wzięły te ruchy freza w poprzek rowków....
Obrazek