NGCGUI - toczenie, mocno rozbudowana procedura

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

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

#161

Post napisał: kamar » 26 lis 2012, 10:56

Za gwintem powinno być zbliżone do A, są na to normy ale chyba nie warto.



Tagi:

Awatar użytkownika

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

#162

Post napisał: tuxcnc » 26 lis 2012, 19:24

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ć.
Niestety to przekracza moje kompetencje.
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.

.

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#163

Post napisał: MlKl » 26 lis 2012, 20:24

Kenneth Lerman odpowiedział, że jak pisał program, to mu się wydawało wystarczająco. Mówi, że to kwestia jednej stałej w pliku include, ino nie mówi w którym. Zmienne globalne mi nic nie pomogą, wszystkie parametry muszę wprowadzić lokalnie w jednej procedurze.

Awatar użytkownika

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

#164

Post napisał: tuxcnc » 26 lis 2012, 20:40

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

.

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#165

Post napisał: MlKl » 26 lis 2012, 20:45

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ę.
Ostatnio zmieniony 26 lis 2012, 20:46 przez MlKl, łącznie zmieniany 1 raz.


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

#166

Post napisał: kamar » 26 lis 2012, 20:46

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

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#167

Post napisał: MlKl » 26 lis 2012, 21:02

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

Awatar użytkownika

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

#168

Post napisał: tuxcnc » 26 lis 2012, 21:40

MlKl pisze:Mnie by pasował limit 60 pól
Całe wywołanie podprogramu musi być w jednej linii.
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ć.

.

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#169

Post napisał: MlKl » 26 lis 2012, 21:54

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)

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
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 ]
Obrazek

Na razie mnie nie lubi... :(

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#170

Post napisał: MlKl » 27 lis 2012, 23:10

I nie dziwne, bo ja głupia ci..a, nie pomyślałem, że trzeba program po zmianie w źródle zrekompilować :P

Już się ściąga najnowszy z gita.

[ Dodano: 2012-11-28, 00:45 ]
Obrazek

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

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”