NGCGUI - toczenie, mocno rozbudowana procedura

Dyskusje dotyczące działania obsługi programu LinuxCNC
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:

#211

Post napisał: MlKl » 02 gru 2012, 15:16

u mnie zmienna #<korekta> koryguje położenie punktu końcowego na osi Z w stosunku do osi X. A do wprowadzenia możliwości poprawek służy zmienna #<pomijaj_srednica>, gdzie wpisuję, ile mm operacji na średnicy pominąć.

W tym momencie zrobił się niejaki bałagan, bo kobyła zachowuje się inaczej, gdy toczy walec, niż przy toczeniu stożka. Muszę to ogarnąć, żeby zachowywała się zawsze jednakowo.

Twoje rozwiązanie korekty ułatwia poprawki. Ale nie da się wejść w środek podprocedury, np po utracie zasilania. Znaczy u mnie się da pominąć całkiem lub częściowo fazę walca. Ale stożek będę musiał cały powtarzać w takim przypadku.

Słowem - w tej chwili jak nie zaznaczysz 1 w polu stożek, to korekta stożka przesuwa cały walec skośnie o tyle mm, ile wpisałeś, zaś w polu "pomijaj średnicę" wpisujesz o ile mm mniej ze średnicy zbierać na początku operacji.

Jak zaznaczysz 1 w polu stożek, to korekta stożka jest wartością pomiędzy najszerszą częścią stożka, a średnicą materiału, a pole "pomijaj średnicę" oczekuje wartości o jaką chcesz skorygować ostatnią warstwę.

I teraz mam zagwozdkę - czy wybrać tylko jedną z tych opcji korekty, czy podwoić liczbę pól na korektę, czy zastosować jedno dodatkowe pole, zmieniające sposób korekty.



Tagi:

Awatar użytkownika

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

#212

Post napisał: tuxcnc » 02 gru 2012, 19:54

Zrób porządek z tym nazewnictwem, bo "pomijaj średnicę" to czysty idiotyzm, ale inne nazwy też są dość abstrakcyjne.

.

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:

#213

Post napisał: MlKl » 02 gru 2012, 20:09

A jak nazwać zmienną, która ma przenosić wartość opcjonalnego pominięcia x mm z zakresu wykonywanej operacji? #<pomijaj_ze_srednicy_mm" ? Zaproponuj lepsze nazwy, to pozmieniam, to akurat nie problem.

Awatar użytkownika

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

#214

Post napisał: tuxcnc » 02 gru 2012, 20:12

Problem polega na tym, że twoje nazwy nic mi nie mówią, to i nie wiem czym je zastąpić.
Jak się zabiorę za testowanie twojego dzieła, to może coś mi przyjdzie do głowy.

.

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:

#215

Post napisał: MlKl » 02 gru 2012, 20:39

#<czolo> =#1 (=0 planowanie czoła, 0 wyłącza)

Opcja planowania czoła materiału. Kończy zawsze na zerze w Z, czyli wszystkie inne operacje zaczynają się potem od zera w Z albo dalej na minus.

#<posuw_czolo> = #2 (=40 Posuw czoła)

Opcja - zero wyłącza, wtedy posuw taki sam jak roboczy.

#<stozek> =#3 (=0 1 stożek, 0 walec)

Wybór między stożkiem a walcem jako procedurą główną

#<korekta> = #4(=0 korekta stożka w mm...)

Przesuwa przy toczeniu walca punkt końcowy na osi Z od lub do osi X o wartość wpisaną w zmiennej. Przy toczeniu stożka wpisanie korekty powoduje zebranie naddatku nad stożkiem o wpisaną wartość procedurą walca.

#<kat_stozka> =#5 (=0 ... lub kąt w stopniach)

Jeszcze nie działa, w założeniu ma robić to samo, co korekta stożka, ale nie w milimetrach, tylko w stopniach.

#<sr_pocz> = #6 (=0 Średnica początkowa)
#<sr_koncowa> = #7 (=0 Średnica końcowa)
#<z_pocz> = #8 (=0 Punkt początkowy na osi Z)
#<z_koncowe> = #9 (=0 Punkt końcowy na osi Z)
#<przybranie_materialu> = #10 (=2 Przybranie)
#<posuw> = #11 (=80 Posuw roboczy)
#<ostatnia_warstwa> = #12 (=0 Ostatnia warstwa)
#<posuw_koncowy> = #13 (=30 Posuw kończący)

Wartości powyżej chyba nie trzeba wyjaśniać

#<szerokosc_fazki_s_k> = #14 (=0 Szerokość fazki śr.k, 0 wyłącza)
#<glebokosc_fazki_s_k> =#15 (=0 Głębokość fazki śr.k)
#<promien_fazki_s_k> =#16 (=0 Promień fazki śr.k, 0 wyłącza)
#<wkleslosc_fazki_s_k> =#17 (=0 1 wklęsłość fazki śr.k, 0 wyłącza)
#<zaglebienie_fazki_s_k> =#18 (=0 zagłębienie fazki śr.k, 0 wyłącza)

Operacje na średnicy końcowej, jest to średnica bliższa osi matriału

#<podciecie> =#19 (=0 Podcięcie A 1, B 2, C 3, D 4, 0 wyłącza)

Podcięcie na styku czopa i wału.

#<szerokosc_fazki_s_p> = #20 (=0 Szerokość fazki śr.p, 0 wyłącza)
#<glebokosc_fazki_s_p> =#21 (=0 Głębokość fazki śr.p)
#<promien_fazki_s_p> =#22 (=0 Promień fazki śr.p, 0 wyłącza)
#<wkleslosc_fazki_s_p> =#23 (=0 1 wklęsłość fazki śr.p, 0 wyłącza)
#<zaglebienie_fazki_s_p> =#24 (=0 zagłębienie fazki śr.p, 0 wyłącza)

Operacje na średnicy początkowej, jest to średnica dalsza od osi matriału

#<skos_z_p> =#25 (=0 korekta skosu na początku w osi Z)
#<skos_z_k> =#26 (=0 korekta skosu na końcu w osi Z)

Wpisana tu wartość skraca każdy kolejny przebieg w osi Z o podaną wartość. Literka "p" zawsze oznacza początek, literka "k" koniec, literka "z" oś.

#<odjazd_z_k> =#27 (=99 pozycja końcowa w osi Z, 99 wyłącza)
#<odjazd_x_k> =#28 (=99 pozycja końcowa w osi X, 99 wyłącza)

Odjazdy końcowe w obu osiach. Ustawia się, jak procedura ma zostawić nóż w innym miejscu niż robi to sama z siebie. 99 jest wartością ignorowaną.

#<pomijaj_srednica> =#29 (=0 ile milimetrów średnicy pominąć)
#<pomijaj_czolo> =#30 (=0 ile milimetrów czoła pominąć)
#<pomijaj_faza_s_k> =#31 (=0 ile milimetrów szer. fazki śr.k pominąć)
#<pomijaj_faza_s_p> =#32 (=0 ile milimetrów szer. fazki śr.p pominąć)

Pomijanie operacji. Jeżeli z wypełnionych pól wynik np, że przetaczaliśmy 10 mm ze średnicy, wpisanie 9 spowoduje, że przetoczony zostanie końcowy milimetr. Jeżeli tu wpiszemy całą wartość, podoperacja zostanie pominięta. Jeżeli tu wpiszemy całą wartość, i poprawimy wartość zadaną dla operacji, wykonane zostanie tylko to, co dodaliśmy.

#<odjazd_z> =#33 (=0.25 odjazd od materiału w osi Z)
#<odjazd_x> =#34 (=0.5 odjazd od materiału w osi X)

Odjazdy od materiału w obu osiach w trakcie wykonywania pętli

#<noz_wstepny>=#35 (=0 Nóż wstępny)
#<noz_czolo>=#36 (=0 Nóż do czoła)
#<noz_koncowy>=#37(=0 Nóż kończący)
#<noz_fazki_s_k>=#38 (=0 Nóż fazki na śr. końcowej)
#<noz_fazki_s_p>=#39 (=0 Nóż fazki na śr. pocz.)

Wybór noży dla poszczególnych operacji

#<woda> = #40(=8 Chłodziwo 8, 9 wyłączone)
#<g5x> = #41(=54 Układ odniesienia G5x)
#<m> = #42(=3 kierunek obrotów, 4 w lewo)
#<inwersja> = #43(=0 1 inwersja, zero wyłącza)

Opcja jeszcze nie zaimplementowana, być może nie zostanie wcale użyta. W założeniu ma zmieniać wszystko na położenie odwrotne - czyli imak za osią wrzeciona, lewe obroty wrzeciona, wszystkie odległości przeliczane są na minus w osi X. Wartości w tabelkach wpisuje się normalnie - bez minusów. Trzeba pamiętać, że offsety ustawiać trzeba wtedy z minusem.

#<rpm> = #44 (=720 obroty)
#<max_rpm> = #45 (=1500 obroty maksymalne)


hecza
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 19
Posty: 403
Rejestracja: 06 mar 2012, 13:25
Lokalizacja: Częstochowa

#216

Post napisał: hecza » 02 gru 2012, 21:35

Może przydało by się ograniczenie planowania, by nie kończyło się zawsze na X=0 i możliwość użycia szybkości skrawania, a nie tylko sztywne RPM.

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:

#217

Post napisał: MlKl » 05 gru 2012, 11:00

Jest rpm i maxrpm - czyli da się używać stałej szybkości obróbki.

Czoło specjalnie kończy na zero w obu osiach. Ono ma być przezroczyste dla innych procedur.

Czyli zakładam, że jak bym materiału nie włożył, daję planowanie czoła, i wszystko co za czołem zaczyna się od zera.

Jak robię serię, to sobie w w procedurze na końcu wpisuję dojazd G0 z0.3 x3. Jak mi spada poprzedni odcięty detal dosuwam materiał do noża. X3 jest po to, żeby ominąć ewentualny "cycek" po odcinaniu.

W procedurze ustawiam planowanie czoła na 0.3, i mam detal w detal jednakowe bez zastanawiania się.

A do zabaw z planowaniem jest osobna procedura czoło. Nigdy nie mówiłem, że ta wielka musi robić wszystko. Czy, że trzeba nią zrobić wszystko.

Tymczasem dzięki procedurze kamara na stożek moja rozrosła się o średnicę materiału i długość gotowego detalu, co w praktyce oznacza, że całą przygotówkę materiału możemy zrobić już w pierwszej zakładce. Jak widać na załączonych obrazkach, wypełnienie pól "Średnica materiału" i "Długość gotowego detalu" powoduje automatyczne wywołanie procedury toczenia walca od średnicy materiału do średnicy początkowej głównej procedury.

Co ciekawsze - osiągam to przez rekurencyjne wywołanie tej samej procedury, która wykonuje sama siebie z podanymi parametrami.

Obrazek

Obrazek


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

#218

Post napisał: kamar » 06 gru 2012, 16:48

MlKl pisze:A jak nazwać zmienną, która ma przenosić wartość opcjonalnego pominięcia x mm z zakresu wykonywanej operacji? #<pomijaj_ze_srednicy_mm" ? Zaproponuj lepsze nazwy, to pozmieniam, to akurat nie problem.
A po cholere Ci ta zmienna ? Przerwałeś operację przed końcem to podajesz średnicę materiału jaki został i jedziesz dalej.

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:

#219

Post napisał: MlKl » 06 gru 2012, 17:44

Bo mam w jednej zakładce zaprogramowane kilka powiązanych operacji. I chcę móc skorygować tylko niektóre z nich, albo jedną. A potem wykonywać kolejne detale bez odtwarzania, co tam było pierwotnie wpisane.

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:

#220

Post napisał: MlKl » 07 gru 2012, 23:03

W innym wątku na forum ktos pyta o zaprogramowanie toczenia takiego detalu:

Obrazek

https://www.cnc.info.pl/topics90/poczat ... 622,10.htm

Jak zrobię te podcięcia według norm, detal da się zaprogramować do wykonania z jednego mocowania w czterech zakładkach o<toczenie>, jednej o<gwint> i jednej o<seger> która odetnie gotowy detal. Czas programowania całego detalu - ok 10 minut.

A potem klawisz "R", i czekamy, aż spadnie gotowa sztuka.

Oczywiście, jak to ma być seria, bo dla pierwszej sztuki, czy dla pojedynczego detalu trzeba wstępnie zaprogramowac z naddatkami, pomierzyć po wykonaniu, poprawić, i dopiero odciąć.

Ale cały czas się pracuje w trybie WYSIWYG, ilość zakładek jest na tyle mała, że idzie ogarnąć, w której co trzeba poprawiać w razie czego.

Obrazek

Obrazek

[youtube][/youtube]

[ Dodano: 2012-12-08, 05:45 ]
Jak widać, do zaprogramowania detalu, toczonego z dwóch stron, o pięciu różnych średnicach, z wykonaniem pięciu fazek, potrzeba zaledwie cztery zakładki NGCGUI.

Łącznie wypełniłem w nich około 30 pól, w tym były również zmiany narzędzi i poprawki odjazdów od materiału po poszczególnych etapach, żeby przejść do następnego etapu obróbki bez kolizji z materiałem.

Procedura jeszcze nie potrafi robić podcięć, jeszcze nie wiąże fazek ze stożkiem, korektę odległości (skosa) na osi Z muszę poprawić, żeby wpisywać kąt wjazdu w materiał, a nie skrócenie dobiegu noża na poszczególnych przejazdach.

Do zlikwidowania są zbędne ruchy przestawcze na przejściach pomiędzy operacjami w ramach jednej podprocedury.

Do napisania jest inwersja, czyli odwrócenie całej zakładki na pracę w wartościach ujemnych osi X, dla noży osadzanych w imaku za osią wrzeciona.

Wygląda na to, że jeszcze minimum miesiąc będę przy tym dłubał, zanim uznam, że zakładka o<toczenie> nadaje się do rzeczywistej pracy. Przy tym sam pracuję codziennie, używając właśnie niej do projektowania i wykonywania detali do tuningu wiatrówek.

Moim celem jest stworzenie uniwersalnego graficznego interfejsu do obsługi tokarki CNC, opartego na NGCGUI, który umożliwi komuś bez najmniejszego pojęcia o G-code zaprogramowanie dowolnego kształtu w możliwie jak najmniejszej ilości kroków, i bez konieczności żmudnego dopasowywania do siebie drobnych szczegółów detalu.

W załącznikach aktualne pliki toczenie.ngc i ngcgui.tcl - trzeba im zmienić nazwy i umieścić w odpowiednich katalogach na swoim dysku, toczenie.ngc w nc_files, ngcgui.tcl w /usr/lib/tcltk/linuxcnc. Do prac w /usr trzeba używać menadżera plików wywołanego z uprawnieniami roota Dla standardowej instalacji z Gnome będzie to polecenie w konsoli:

Kod: Zaznacz cały

sudo nautilus
Obrazek
Załączniki
toczenie.png
toczenie.png (30.51 KiB) Przejrzano 1171 razy
toczenie.ngc.txt
(24.03 KiB) Pobrany 269 razy
ngcgui.tcl.txt
(145.61 KiB) Pobrany 340 razy
Ostatnio zmieniony 10 gru 2012, 03:51 przez MlKl, łącznie zmieniany 1 raz.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”