NGCGUI - toczenie, mocno rozbudowana procedura
-
- Lider FORUM (min. 2000)
- Posty w temacie: 27
- Posty: 9352
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Niestety to przekracza moje kompetencje.MlKl pisze:Zobaczymy, czy tuxcnc odblokuje ten komunikat o zbyt dużej ilości zmiennych w procedurze - za słabo znam tcltk, żeby samemu w tym grzebać.
Zrobić to by się dało, ale to będzie tworzenie niekompatybilnego potworka.
Otóż okazuje się, że ten limit nie jest wcale w ngcgui (przynajmniej nie w tym przeze mnie przerobionym).
Po prostu w LinuxCNC podprogramowi można przekazać maksymalnie 30 parametrów.
Po cholerę takie ograniczenie, niestety nie wiem.
Oczywiście dysponując kodem źródłowym LinuxCNC można sobie ten limit dowolnie zmienić, ale to już moim zdaniem zbyt wielka ingerencja w program.
Temat rzuciłem na EMC-developers, zobaczymy co z tego wyjdzie.
.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 27
- Posty: 9352
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Ale tutaj chodzi o to, żeby ewentualna zmiana trafiła do źródeł LinuxCNC, a nie o to żeby coś sobie dla siebie poprawić.
Gość napisał, że można by zwiększyć, a usunąć limit to za dużo roboty.
To w takiej sytuacji trzeba by zapronować jakąś wartość.
Może 50 albo 99 ?
Jakby wprowadzić zmianę w źródłach LinuxCNC, to i w ngcgui logiczne by było zmienić limit, ale to już wiadomo jak zrobić i wystarczyło by to zgłosić gdzie potrzeba.
Tak czy inaczej wypadało by coś Kennethowi Lermanowi odpowiedzieć.
.
Gość napisał, że można by zwiększyć, a usunąć limit to za dużo roboty.
To w takiej sytuacji trzeba by zapronować jakąś wartość.
Może 50 albo 99 ?
Jakby wprowadzić zmianę w źródłach LinuxCNC, to i w ngcgui logiczne by było zmienić limit, ale to już wiadomo jak zrobić i wystarczyło by to zgłosić gdzie potrzeba.
Tak czy inaczej wypadało by coś Kennethowi Lermanowi odpowiedzieć.
.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 143
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Mnie by pasował limit 60 pól, po 20 w kolumnie. To się akurat mieści na monitorze, bo przewijania nie przewidzieli. Z tych pól za każdym razem wykorzystuje się kilka, max kilkanaście, ale nigdy nie wiadomo, które.
Ja mu nie odpowiem, bo angielski tylko czytam.
A takich podpowiedzi byłoby jeszcze parę. Np wpis o G7 w plikach ini na tokarkę.
Ja mu nie odpowiem, bo angielski tylko czytam.
A takich podpowiedzi byłoby jeszcze parę. Np wpis o G7 w plikach ini na tokarkę.
Ostatnio zmieniony 26 lis 2012, 20:46 przez MlKl, łącznie zmieniany 1 raz.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 99
- Posty: 16285
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Wgrałem i ja . Sorry Miki, ale to nie dla mnie. Próbowałem cos konkretnego zrobic i nawet zrobilem ale wszystkie moje teoretyczne zastrzeżenia musiałbym pomnozyc przez 10. Także, jak miałbyś robić podcięcia pode mnie to daj spokój. Co mogę doradzić jak już chcesz miec procedurkę na wszystko - daj w pierszej tabelce wybór operacji np 1-walec 2-kula itp.
Obok wstaw tabelkę z opisem która do czego. (rysunek taki jak mam przy gwintach).
Znacznie lepszym dla mnie rozwiązaniem będzie lekkie rozszerzenie moich o fazkę czy podcięcie. Moze kiedyś sie zmuszę.
Obok wstaw tabelkę z opisem która do czego. (rysunek taki jak mam przy gwintach).
Znacznie lepszym dla mnie rozwiązaniem będzie lekkie rozszerzenie moich o fazkę czy podcięcie. Moze kiedyś sie zmuszę.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 143
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Toć tak właśnie jest. Kuli jako zasadniczej pozycji toto nie robi.
Masz do wyboru tylko walec i stożek, oraz hybrydę - walec z korektą stożka. Walec się robi defaultowo - wpisujesz średnicę początkową i końcową. Podobnie roztaczanie - wystarczy wpisać mniejszą średnicę początkową i roztaczasz.
Stożek się jeszcze nie włączy. Jak próbowałeś robić po swojemu, czyli po całej długości ile wyda, to faktycznie się namęczyłeś, bo bez fazek na średnicy początkowej to się robi trudno. Trzeba to składać z małych klocków, i programować fazki w powietrzu. Wiem, bo spróbowałem sam. A same fazki prościej robić z twoich procedur.
Dopiero jak będą do dyspozycji obie fazki, będzie tyle procedur, ile średnic.
Jak skończę toto dłubać, to dla ciebie toto pokastruję na poszczególne procedury, niech stracę
Masz do wyboru tylko walec i stożek, oraz hybrydę - walec z korektą stożka. Walec się robi defaultowo - wpisujesz średnicę początkową i końcową. Podobnie roztaczanie - wystarczy wpisać mniejszą średnicę początkową i roztaczasz.
Stożek się jeszcze nie włączy. Jak próbowałeś robić po swojemu, czyli po całej długości ile wyda, to faktycznie się namęczyłeś, bo bez fazek na średnicy początkowej to się robi trudno. Trzeba to składać z małych klocków, i programować fazki w powietrzu. Wiem, bo spróbowałem sam. A same fazki prościej robić z twoich procedur.
Dopiero jak będą do dyspozycji obie fazki, będzie tyle procedur, ile średnic.
Jak skończę toto dłubać, to dla ciebie toto pokastruję na poszczególne procedury, niech stracę

-
- Lider FORUM (min. 2000)
- Posty w temacie: 27
- Posty: 9352
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Całe wywołanie podprogramu musi być w jednej linii.MlKl pisze:Mnie by pasował limit 60 pól
W linii może być maksymalnie 256 znaków.
Zarezerwujmy 16 znaków na o<nazwa> call.
Zostaje do dyspozycji 240 znaków.
Minimalny argument ma trzy znaki, dwa nawiasy i jedną cyfrę.
Przy sześdziesięciu zmiennych dostajemy średnio cztery znaki na zmienną, czyli dwie cyfry.
Jeśli jakiś parametr przyjmuje wartość jednocyfrową, to zwalnia raptem jedno miejsce dla dłuższych danych.
Czyli na przykład 50 zmiennych jednocyfrowych i 10 zmiennych siedmiocyfrowych.
Przecinek liczy się jako cyfra.
Zastanawiam się czy to nie za mało.
Przekroczenie 256 znaków w linii zakończy się komunikatem "Command too long", a przeciętny użytkownik za cholerę nie zakuma o co chodzi.
Cóż, okazuje się że ngcgui ma dość ograniczone możliwości.
Oczywiście można zaproponować zwiększenie limitu zmiennych, ale jakoś z sensem, żeby błąd przekroczenia 256 znaków w linii występował sporadycznie, a nie na okrągło.
Samą możliwością wystąpienia błedu nie ma sensu się za bardzo przejmować, bo i przy limicie 30 zmiennych można się nie zmieścić.
.
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 143
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Spokojnie się zmieścimy - większość zmiennych jest jednocyfrowa. Dłuższe są tylko 4 potencjalnie jeszcze 4 jeżeli robimy duże fazki. I żadna z nich raczej nie wyjdzie siedmiocyfrowa - tokarka z zakresem miliona milimetrów do bloku mi raczej nie wejdzie 
Tu chodzi o ustawianie wielu parametrów, ale każdego jedną cyferką. Przy tym 60 to już zapas na zaś.
Ale przyjmijmy 50 - to na pewno bezpieczna wartość, da się to w dwóch kolumnach po 25.
[ Dodano: 2012-11-27, 18:05 ]
Przełamałem się i używając Gógle tłumoka gadam tam z autorami programu. Co prawda pewnie turlają się tak jak ja się turlam, czytając nigeryjskie historie o spadku, który na mnie czeka, jak wpłacę drobny tysiąc dolców na konto piszącego...
[ Dodano: 2012-11-27, 20:03 ]
/ src / emc / rs274ngc / interp_internal.hh line224 ( u mnie linia 240)
Zmieniłem INTERP_SUB_PARAMS na 50 z 30
i MAX_NAMED_PARAMETERS z 50 na 60.
Zobaczymy, jak na to zareaguje NGCGUI
[ Dodano: 2012-11-27, 20:51 ]

Na razie mnie nie lubi...

Tu chodzi o ustawianie wielu parametrów, ale każdego jedną cyferką. Przy tym 60 to już zapas na zaś.
Ale przyjmijmy 50 - to na pewno bezpieczna wartość, da się to w dwóch kolumnach po 25.
[ Dodano: 2012-11-27, 18:05 ]
Przełamałem się i używając Gógle tłumoka gadam tam z autorami programu. Co prawda pewnie turlają się tak jak ja się turlam, czytając nigeryjskie historie o spadku, który na mnie czeka, jak wpłacę drobny tysiąc dolców na konto piszącego...
[ Dodano: 2012-11-27, 20:03 ]
/ src / emc / rs274ngc / interp_internal.hh line224 ( u mnie linia 240)
Kod: Zaznacz cały
// Subroutine parameters
#define INTERP_SUB_PARAMS 50
#define INTERP_SUB_ROUTINE_LEVELS 10
#define INTERP_FIRST_SUBROUTINE_PARAM 1
// max number of local variables saved (?)
#define MAX_NAMED_PARAMETERS 60
i MAX_NAMED_PARAMETERS z 50 na 60.
Zobaczymy, jak na to zareaguje NGCGUI
[ Dodano: 2012-11-27, 20:51 ]

Na razie mnie nie lubi...

-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 143
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
I nie dziwne, bo ja głupia ci..a, nie pomyślałem, że trzeba program po zmianie w źródle zrekompilować 
Już się ściąga najnowszy z gita.
[ Dodano: 2012-11-28, 00:45 ]

To działa
Teraz znowu mam na tydzień, czy dwa roboty, żeby toto zmusić do używania jak należy zmiennych, które wprowadziłem.
Niestety - to zabawa dla twardzieli, bo trzeba wprowadzać zmiany w źródłach i kompilować LinuxCNC od nowa.
Ale jak to napisał tuxcnc - pod Linuxem wszystko się da, wystarczy chcieć

Już się ściąga najnowszy z gita.
[ Dodano: 2012-11-28, 00:45 ]

To działa

Niestety - to zabawa dla twardzieli, bo trzeba wprowadzać zmiany w źródłach i kompilować LinuxCNC od nowa.
Ale jak to napisał tuxcnc - pod Linuxem wszystko się da, wystarczy chcieć
