NGCGUI wyrzuca błąd!!

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
wm56
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 164
Rejestracja: 07 gru 2006, 23:04
Lokalizacja: Skawina

NGCGUI wyrzuca błąd!!

#1

Post napisał: wm56 » 05 sie 2025, 23:35

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 25 razy



Awatar użytkownika

ClickerItalianbrainrot
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 1
Posty: 1
Rejestracja: 09 lip 2025, 05:24

Re: NGCGUI wyrzuca błąd!!

#2

Post napisał: ClickerItalianbrainrot » 06 sie 2025, 04:09

Świetny pomysł na automatyzację! Sprawdź koniecznie Italian Brainrot Clicker obliczanie odstępów i warstw Z – reszta brzmi bardzo dobrze.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 34
Posty: 9836
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: NGCGUI wyrzuca błąd!!

#3

Post napisał: tuxcnc » 06 sie 2025, 05:11

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...


drzasiek90
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 19
Posty: 2487
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: NGCGUI wyrzuca błąd!!

#4

Post napisał: drzasiek90 » 06 sie 2025, 07:28

Pokaż ten wygenerowany przez twojego suba plik auto.ngc


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 28
Posty: 16735
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Re: NGCGUI wyrzuca błąd!!

#5

Post napisał: kamar » 06 sie 2025, 08:49

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

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 34
Posty: 9836
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: NGCGUI wyrzuca błąd!!

#6

Post napisał: tuxcnc » 06 sie 2025, 13:25

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.


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 28
Posty: 16735
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Re: NGCGUI wyrzuca błąd!!

#7

Post napisał: kamar » 06 sie 2025, 14:34

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.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 34
Posty: 9836
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: NGCGUI wyrzuca błąd!!

#8

Post napisał: tuxcnc » 06 sie 2025, 14:53

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...


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 28
Posty: 16735
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

Re: NGCGUI wyrzuca błąd!!

#9

Post napisał: kamar » 06 sie 2025, 15:35

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 :)

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 34
Posty: 9836
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: NGCGUI wyrzuca błąd!!

#10

Post napisał: tuxcnc » 06 sie 2025, 15:54

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

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”