LatheMacro

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

LatheMacro

#1

Post napisał: tuxcnc » 13 gru 2025, 20:28

Dzisiaj zupełnie przypadkiem trafiłem na coś, co do tej pory umykało mojej uwagi.
Zasadniczo to potrzebowałem prostego suba do gwintowania.
G76 oferuje możliwość zdefiniowania wielu parametrów, w czym łatwo się pogubić, a ja chciałem tylko podać średnicę nominalną, skok i długość (reszta ustawień domyślna).
Ponieważ tokarki nie trzymam w domu, więc zaistniała konieczność znalezienia dobrego symulatora (wbrew temu, co tu niektórzy twierdzą, symulator to nie jest LinuxCNC uruchomiony na maszynie wirtualnej, tylko taka konfiguracja w której jest symulowany (udawany) nieistniejący fizycznie sprzęt (np. enkoder wrzeciona, bez którego G76 nie ruszy z miejsca)).
Przeszukując dysk znalazłem folder linuxcnc/sample-configs/sim/gmoccapy/lathe_configs a w nim moją uwagę zwrócił plik lathe_macros.ini
Ponieważ zaciekawiło mnie co to za cholera ten macros, więc postanowiłem go uruchomić.
Gmoccapy zaczął pluć komunikatami błędu, z których wynikało, że jakieś zmienne są ponownie zadeklarowane. Cholera wie o co chodziło, ale skończyło się na tym, że wywaliłem w cholerę trefny plik gmoccapy_lathe.pref (to jest plik konfiguracji gmoccapy i jak go nie ma, to jest tworzony nowy z domyślnymi parametrami). Po tym zabiegu LinuxCNC uruchomił się.
Samo makro do gwintowania okazało się spieprzone (wszystkie przejścia na tej samej głębokości), innych póki co nie sprawdzałem.
Spojrzałem na daty plików i okazało się, że październik 2023, więc pomyślałem że może są nowe, poprawione wersje.
Ściągnąłem najnowsze źródła LinuxCNC z Githuba i zacząłem szukać.
No cóż, burdel totalny.
W configs/sim/gmoccapy/lathe_configs jest ten stary, niedziałający plik, w nc_files/macros/lathe nowszy i chyba działający, a w nc_files jeszcze jeden i zupełnie inny...
Z kolei w nc_files/macros/lathe jest starsza wersja LatheMacro.svg (odpowiadającego za wyświetlone obrazki) i nie należy go nigdzie kopiować...
Fajnie to wygląda:
Obrazek
Dodanie własnych makr jest możliwe, choć do łatwych nie należy.
Trzeba oprócz napisania suba dodać do LatheMacro.svg warstwę z własną grafiką i potem podłubać w pliku lathemacro.ui - sporo roboty i trzeba się na tym znać.

Niestety, amatorzy muzealnego oprogramowania mogą zapomnieć. To jest zabawka dla posiadaczy aktualnego LinuxCNC...

Dodane 7 minuty 27 sekundy:
Zapomniałem dodać, że w tych nowszych plikach jest coś takiego :

(MSG, Unpause To start Threading Macro)
m0

Niby wszystko w porządku, tylko pojęcia nie mam jak zrobić "unpause", bo odpowiedzialny za to klawisz w tym trybie nie jest wyświetlany....
Na razie zakomentowałem te linie, co z tym docelowo zrobić pomyślę później...

Dodane 1 godzina 53 minuty 28 sekundy:
Dzisiaj to już mi się nie chce, ale na pewno te suby trzeba będzie dopieścić.
Przykładowo gwintowanie.
Nie ma nic złego w gwintowaniu na s200, nie ma nic złego w toczeniu na g95 F0.1, ale g95 F0.1 s200 to jest masakra (20 mm/min)...



Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: LatheMacro

#2

Post napisał: tuxcnc » 14 gru 2025, 10:51

Dzisiaj pomęczyłem trochę to makro do gwintowania (threading.ngc).
Masakra jest totalna i tak na dobrą sprawę to trzeba tego suba napisać od nowa...
Zacznijmy od rzeczy pozornie mało istotnej, czyli poniższej linii:

Kod: Zaznacz cały

    #2 = [#2 * .3048] ; sf/m to m/m
Co to za jednostka "m/m" ???
Ktoś może powiedzieć że czepiam się komentarza, ale takie kwiatki źle wróżą, bo można podejrzewać, że pisał to kretyn.
No i niestety, dalej jest jeszcze gorzej.
Przede wszystkim to jest podprogram i jako taki powinien zostawiać maszynę w takim stanie jak ją zastał.
Oczywiście nie da się uniknąć użycia kodów modalnych, ale należy ograniczać to do konieczności i najlepiej odwoływać je przed wyjściem z podprogramu.
Tutaj natomiast (wyciąłem kilka linii dla jasności wywodu) mamy taki kwiatek:

Kod: Zaznacz cały

O107 IF [#<_imperial>]
    (MSG, IMPERIAL ON)
    #1 = [#1 * 25.4] ; start X
    #2 = [#2 * .3048] ; sf/m to m/m
    #4 = [#4 * 25.4] ; pitch
    #5 = [#5 * 25.4] ; z finish
O107  ENDIF

G7 ; Lathe Diameter Mode
G18 ; XZ Plane
G21 ; Metric Units
G90 ; Absolute Distance
G96 D200 S#2 ; Constant Surface Speed Mode
g95 F0.1 ; Feed-Per-Rev Mode
Najpierw autor sprawdza, czy maszyna nie jest przestawiona na cale (G20), jeżeli jest, to zakłada, że operator wpisał wartości w calach (skąd taka pewność?), potem przelicza z domniemanych cali na milimetry, żeby na koniec ustawić maszynę na milimetry i zostawić ją w tym stanie.
W skrócie, dwukrotne wywołanie procedury z tymi samymi parametrami może dać zupełnie inny wynik...
Trzeba ten fragment wypieprzyć w cholerę, albo jeśli ktoś woli, przepisać to tak, żeby wyświetlało że maszyna jest w calach a procedura w milimetrach i na tym kończyło wykonanie podprogramu.
Idźmy dalej...
G7 G18 G21 G90 można wybaczyć, o ile są to domyślne ustawienia maszyny, zgodne z RS274NGC_STARTUP_CODE w pliku ini.
Natomiast wywołać G95 i tak zostawić, to jest zbrodnia.
Załóżmy, że po nacięciu gwintu operator wchodzi w MDI i z przyzwyczajenia pisze g1z-10 f100...
Ja wam gwarantuję, że różnicę pomiędzy 100 mm/min a 100 mm/obr zauważy od razu...
Co do linii G96 D200 S#2, to intensywnie próbuję dojść co poeta miał na myśli. Nie podoba mi się to w ogóle, ale póki co nie wykluczam, że może to mieć jakiś głębszy sens...


DarekLipi
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 4
Posty: 11
Rejestracja: 12 kwie 2017, 16:24
Lokalizacja: Sandomierz

Re: LatheMacro

#3

Post napisał: DarekLipi » 16 gru 2025, 15:16

Ja też dzisiaj próbowałem uruchomić te macra z folderu githuba od Andypugh.

Zadziałało tylko na wyświetlaniu trybu axis, bo na innych trybach w ogóle nie pokazuje się ten panel.

U mnie efekt był inny, bo mam invers na kierunku osi x i z w step config i się to macro całkiem rozjechało.
Coś gwintuje ale w odwrotnych kierunkach i lewym skokiem i dobiera odwrotnie przy przejsciach xD

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: LatheMacro

#4

Post napisał: tuxcnc » 16 gru 2025, 23:18

DarekLipi pisze:
16 gru 2025, 15:16
mam invers na kierunku osi x i z w step config (...)
Coś gwintuje ale w odwrotnych kierunkach i lewym skokiem i dobiera odwrotnie przy przejsciach xD
Jeśli masz osie zamienione miejscami, to Ci wszystko będzie robić w lustrzanym odbiciu...


DarekLipi
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 4
Posty: 11
Rejestracja: 12 kwie 2017, 16:24
Lokalizacja: Sandomierz

Re: LatheMacro

#5

Post napisał: DarekLipi » 17 gru 2025, 15:16

Próbowałem obrócić obroty na cewkach silników, ale nie zadziałało., zamienić cewki a z b tez nie zmieniło obrotów.

Dlatego padło na invers kierunku w stepcfg, żeby spełnić warunek z- support idzie na uchwyt oraz x na + do operatora.

Bazowanie krancowki home mam tez przy uchwycie i x na max+ do operatora.

Zwykle g33 działa poprawnie.

Czyli to macro do zmodyfikowania

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: LatheMacro

#6

Post napisał: tuxcnc » 17 gru 2025, 19:14

DarekLipi pisze:
17 gru 2025, 15:16
Próbowałem obrócić obroty na cewkach silników, ale nie zadziałało., zamienić cewki a z b tez nie zmieniło obrotów.

Dlatego padło na invers kierunku w stepcfg, żeby spełnić warunek z- support idzie na uchwyt oraz x na + do operatora.

Bazowanie krancowki home mam tez przy uchwycie i x na max+ do operatora.

Zwykle g33 działa poprawnie.

Czyli to macro do zmodyfikowania
Straszne herezje piszesz.
Odwrócenie kierunku jednego uzwojenia w silniku krokowym zawsze skutkuje odwróceniem kierunku obrotów, bo to jest fizyka, a fizyka jest jedna i innej nie ma.
Tak samo nie jest możliwe, żeby G33 działało prawidłowo, a G76 nie działało prawidłowo, bo G76 to cykl oparty na G33, więc albo działają oba kody, albo nie działa żaden.
Co do opisów twojej maszyny, to się wypowiadać nie będę, bo podałeś zbyt mało informacji, żeby było wiadomo o czym mówisz.
Wracając do przedmiotowego makra, to faktycznie jest spieprzone i trzeba je poprawić, ale nie z powodów które podajesz.
U Ciebie ono nie działa bo albo masz źle skonfigurowaną maszynę, albo używasz go w niewłaściwy sposób.


DarekLipi
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 4
Posty: 11
Rejestracja: 12 kwie 2017, 16:24
Lokalizacja: Sandomierz

Re: LatheMacro

#7

Post napisał: DarekLipi » 19 gru 2025, 16:11

masz rację da się odwrócić na cewkach, źle to robiłem...

g33 działa poprawnie, a g76 nie działało z powodu zbyt niskiej akceleracji na osi z i wychodził mi gwint o skoku 1 mm przy różnych ustawieniach i kombinacjach.
Podciągnąłem parametry osi z i już jest git.

Macro dalej robi jakieś fikołki, ani rowkowanie, ani gwinty, nie chce to ze mną współpracować.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: LatheMacro

#8

Post napisał: tuxcnc » 19 gru 2025, 16:48

DarekLipi pisze:
19 gru 2025, 16:11
Macro dalej robi jakieś fikołki, ani rowkowanie, ani gwinty, nie chce to ze mną współpracować.
No bo tam są paskudne błędy.
Napisałem kod po swojemu i na podglądzie jest w porządku, ale ja nie publikuję kodu którego nie sprawdziłem, więc musisz trochę poczekać.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 6
Posty: 9874
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: LatheMacro

#9

Post napisał: tuxcnc » 20 gru 2025, 18:56

Niestety...
Byłem dzisiaj w warsztacie i jest lipa.
Karta "Cycles" uruchamia się, ale po kilkudziesięciu sekundach znika...
Komunikat błędu niewiele mówi:

Kod: Zaznacz cały

Fatal Python error: none_dealloc: deallocating None: bug likely caused by a refcount error in a C extension
W symulatorze takich kwiatków nie mam.
Nie bardzo wiem gdzie szukać przyczyny, a co ważniejsze, nie wiem czy warto szukać, bo zamierzam wymienić komputer sterujący tokarką.
W każdym razie, o testach na rzeczywistej maszynie na razie nie ma mowy.


DarekLipi
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 4
Posty: 11
Rejestracja: 12 kwie 2017, 16:24
Lokalizacja: Sandomierz

Re: LatheMacro

#10

Post napisał: DarekLipi » 09 sty 2026, 20:06

Elegancko by było gdyby udało się te graficzne skrypty zaadaptować.
Niestety nadal nie doszedłem dlaczego nie chce to współpracować.

Normalne suby ngc gui od np @Kamar działają, nie ma problemu;)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”