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: 3706
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

NGCGUI - toczenie, mocno rozbudowana procedura

#1

Post napisał: MlKl » 06 lis 2012, 23:30

Dopiero stojąc przy tokarce widać, czego brakuje napisanym wcześniej procedurom. I procedury obrastają nowymi funkcjonalnościami.

I tak powstała procedura NGCGUI, która w jednej zakładce potrafi zrobić do pięciu operacji powiązanych wprawadzanymi średnicami: materiału, początkową i końcową. Średnica początkowa jest to średnica, od której zaczyna się główna procedura zakładki. Jest nią walec, albo stożek. Z tą główną procedurą w tej samej zakładce można powiązać aż cztery procedury podrzędne. Procedura inteligentnie rozpoznaje, czy wpisana średnica początkowa jest mniejsza od końcowej i uruchamia roztaczanie, jeżeli średnica początkowa jest większa od końcowej, procedura przetacza walec od zewnątrz.

Jeżeli początek na osi Z jest większy od końca, procedura toczy od prawej do lewej. Gdy początek na osi Z jest mniejszy od końca, procedura toczy od lewej do prawej, czyli od uchwytu do początku matriału. Odjazdy od materiału zmieniają się automatycznie.

Wprowadzenie korekty stożka powoduje odpowiednie przesunięcie punktu końcowego na osi Z w stosunku do osi materiału. W trakcie pisania jest opcja, podmieniająca walec na stożek w głównej procedurze. W ostatniej wersji pliku toczenie.ngc stożek już działa, ale jeszcze nie powiązałem z nim osadzanych na nim fazek.


Procedura na każdej ze średnic potrafi wykonać fazkę skośną, półkulistą i pólkulistą wklęsłą. Fazki te są w rzeczywistosci pełnymi implementacjami półkuli i stożka, i można poprzez wpisanie jednakowej średnicy początkowej i końcowej wyłączyć procedurę główną(walec), wykonując stożek czy półkulę jako samodzielną operację.

Dodatkowo w pierwszej wywoływanej zakładce możemy zaprogramować planowanie czoła materiału (zawsze od dowolnie wpisanej wartości w plusie do zera w osi Z) i przetoczenie włożonego w uchwyt surowego wałka do największej średnicy toczonego detalu na całej jego długości.

Co to wszystko daje? Nawet najbardziej skomplikowany detal można zaprogramować łatwo, i w minimalnej liczbie zakładek. Łatwo poprawiać, efekt widać od razu na podglądzie.

Wadą jest opanowanie liczącego kilkadziesiąt pól formularza. Niestety - ilość opcji, jakie można ustawić przy toczeniu jest duża. Nigdy się ich wszystkich na raz nie używa, ale jak nie można jakiejś zmienić z formularza, to gdy zajdzie potrzeba zmiany, trzeba ryć w kodzie, zamiast spokojnie toczyć detal.

Obrazek

Obrazek

Kod poniższy nie jest najnowszy. Ze względu na konieczność używania rekompilowanego do użycia w procedurach 60 zamiast 30 zmiennych LinuxCNC, i adekwatnie do tego zmienionego pliku ngcgui.tcl, w tym wpisie co jakiś czas umieszczam okastrowaną do 30 pól formularza wersję pliku toczenie.ngc.

Pełną wersję wraz z plikami do podmiany znajdziecie w ostatnich wpisach tego wątku, podobnie jak informacje, co należy zmienić w źródłach LinuxCNC przed rekompilacją, żeby chciał obsługiwać podprocedury z 60 zmiennymi zamiast 30.

Kod: Zaznacz cały

; Author: Z. Maciej "Miki" Bajkowski
; 
; logiczny operator "lub" (OR) 
; alternatywa wykluczająca (XOR) prawdziwe, gdy nieparzysta liczba argumentów jest prawdziwa
; logiczny operator "i" (AND) 
; równe (EQ) 
; nierówne (NE) 
; większe od (GT) 
; większe lub równe (GE) 
; mniejsze (LT) 
; mniejsze lub równe (LE) 
; 
; ATAN[Y]/[X] Four quadrant inverse tangent
; ABS[arg] wartość absolutna
; ACOS[arg] Inverse cosine
; ASIN[arg] Inverse sine
; COS[arg] cosinus
; EXP[arg] e raised to the given power
; FIX[arg] zaokrąglenie w dół
; FUP[arg] zaokrąglenie w górę
; ROUND[arg] zaokrąglenie
; LN[arg] logarytm
; SIN[arg] sinus
; SQRT[arg] Square Root
; TAN[arg] Tangens
; EXISTS[arg] szuka zmiennej 


(info: Toczenie wałka od zewnątrz od prawej do lewej, planowanie czoła, fazowanie  krawędzi, półkule, stożki, roztaczanie otworów) 
o<toczenie> sub

#<stozek> =#1 (=0 1 włącza procedurę stożka) 
#<korekta> = #2(=0 korekta stożka w mm...) 
#<kat_stozka> =#3 (=0 ... lub kąt w stopniach) 
#<sr_pocz> =  #4 (=0 Średnica początkowa) 
#<sr_koncowa> =  #5 (=0 Średnica końcowa) 
#<przybranie_materialu> =  #6 (=0.3 Przybranie) 
#<posuw> =  #7 (=150 Posuw roboczy) 
#<z_koncowe> =  #8 (=-10 Punkt końcowy na osi Z) 
#<z_pocz> =  #9 (=0 Punkt początkowy na osi Z) 
#<ostatnia_warstwa> =  #10 (=0 Ostatnia warstwa) 
#<posuw_koncowy> =  #11 (=0 Posuw kończący) 
#<czolo> =#12 (=0 planowanie czoła, 0 wyłącza) 
#<posuw_czolo> =  #13 (=0 Posuw czoła) 
#<szerokosc_fazki> = #14 (=0 Szerokość fazki, zero wyłącza) 
#<glebokosc_fazki> =#15 (=0 Głębokość fazki) 
#<promien_fazki> =#16 (=0 Promień fazki, zero wyłącza) 
#<wkleslosc_fazki> =#17 (=0 Wklęsłość fazki, zero wyłącza) 
#<odjazd_z> =#18 (=1 odjazd od materiału w osi Z) 
#<odjazd_x> =#19 (=1 odjazd od materiału w osi X) 
#<skos_z_p> =#20 (=0 korekta skosu na początku w osi Z) 
#<skos_z_k> =#21 (=0 korekta skosu na końcu w osi Z) 
#<odjazd_z_k> =#22 (=99 pozycja końcowa w osi Z, 99 wyłącza) 
#<odjazd_x_k> =#23 (=99 pozycja końcowa w osi X, 99 wyłącza) 
#<pomijaj> =#24 (=0 ile milimetrów średnicy pominąć) 
#<pomijaj_czolo> =#25 (=0 ile milimetrów czoła pominąć) 
#<pomijaj_faza> =#26 (=0 ile milimetrów szer. fazki pominąć) 
#<noz_wstepny>=#27 (=0 Nóż wstępny) 
#<noz_czolo>=#28 (=0 Nóż do czoła) 
#<noz_koncowy>=#29(=0 Nóż kończący) 
#<woda> = #30(=8 Chłodziwo 8, 9 wyłączone) 

; stałe wpisane na sztywno
#<ilosc_nozy_w_tabeli>=9
#<dl_stozka>=[abs[#<z_koncowe>]+abs[#<z_pocz>]] 
#<korekta_polozenia_fazki> = [#<szerokosc_fazki>*#<korekta>/[#<dl_stozka>-#<czolo>]] 
o15 if[#<posuw_koncowy> le 0] 
	#<posuw_koncowy>=#<posuw> 
o15 endif

; G7:  diameter mode
; G96: constant surface speed
; Włączamy procedurę 



G43 G7 G96  S720 D1500

M3 M#<woda> ; start wrzeciona i uruchomienie chłodziwa

o2000 if[#<sr_pocz> ge #<sr_koncowa>] 


#<roznica_srednic>=[#<sr_pocz>-#<sr_koncowa>] 
#<sr_pocz> = [#<sr_pocz>-#<pomijaj>] (pomijania używamy,gdy poprawiamy detal i cześć procedury już jest wykonana) 
#<akt_start_x>=#<sr_pocz> 
#<z_k_stozka>=0

#<akt_pozycja>=0


(Dojazd na pozycję roboczą) 

g0 z[#<z_pocz>+#<odjazd_z>] 
g0 x[#<sr_pocz> +#<odjazd_x>] 


(Planowanie czoła) 
o40 if[#<czolo>gt 0] 
#<akt_pozycja>=[#<z_pocz>-#<pomijaj_czolo>] 

o43 if[[#<noz_czolo> gt 0]and[#<noz_czolo> lt #<ilosc_nozy_w_tabeli> ]] 
         o<loadtool> call [#<noz_czolo>] 
         g0  Z[#<z_pocz>+#<odjazd_z>] X[#<sr_pocz>+#<odjazd_x>] 
o43 endif

o45 if[#<posuw_czolo> eq 0] 
         #<posuw_czolo>=#<posuw> 
o45 endif

o50 while [#<akt_pozycja> gt -[#<czolo>]] 
  #<akt_pozycja> = [#<akt_pozycja> - #<przybranie_materialu>] 
  o52 if [#<akt_pozycja> lt -[#<czolo>]] 
    #<akt_pozycja> = -[#<czolo>] 
  o52 endif

  g0 z#<akt_pozycja> 

  g1 x0 f[#<posuw_czolo>] 
  g0 z[#<akt_pozycja> + #<odjazd_z>] 
  g0 x[#<sr_pocz> +#<odjazd_x>] 

o50 endwhile
o40 endif
(Koniec planowania czoła) 

 #<z_pocz>= [#<z_pocz>+#<akt_pozycja>] (Przesuwamy start na osi Z o grubość splanowanego czoła) 



o100 while [#<akt_start_x> gt #<sr_koncowa>] 

o101 if [#<akt_start_x>-#<przybranie_materialu> gt #<sr_koncowa>] 
         #<akt_start_x>=[#<akt_start_x>-#<przybranie_materialu>] 
         #<z_koncowe> = [#<z_koncowe>+#<skos_z_k>] 
         #<z_pocz>=[#<z_pocz>-[#<skos_z_p>]] 
         #<posuw1>=#<posuw> 
   o25 if[[#<noz_wstepny> ne 0]] 
         o<loadtool> call [#<noz_wstepny>] 
         g0  Z[#<z_pocz>+#<skos_z_p>+#<odjazd_z>] X[#<akt_start_x>+#<odjazd_x>] 
  o25 endif
o101 else
         #<akt_start_x>=#<sr_koncowa> 
         #<posuw1>=#<posuw_koncowy> 
         #<z_koncowe> = [#<z_koncowe>+#<skos_z_k>] 
         #<z_pocz>=[#<z_pocz>-[#<skos_z_p>]] 

o103 if[[#<noz_koncowy> gt 0]and[#<noz_koncowy> lt #<ilosc_nozy_w_tabeli> ]] 
         o<loadtool> call [#<noz_koncowy>] 
         g0  Z[#<z_pocz>+#<skos_z_p>+#<odjazd_z>] X[#<akt_start_x>+#<odjazd_x>] 
o103 endif

o101 endif

o107 if[#<stozek> eq 1] 

o80 if [#<sr_pocz> lt #<sr_koncowa>] 

         #<akt_startt> = #<sr_koncowa> 
o85 while [#<akt_startt> gt #<sr_pocz>] 
         #<akt_startt> = [#<akt_startt> - #<przybranie_materialu>] 

  o88 if [#<akt_startt> lt #<sr_pocz>] 
        #<akt_startt> = #<sr_pocz> 
  o88 endif
   
  g0 z#<z_pocz> 
    g0 x[#<akt_startt>] 
 ; g1 x[#<sr_koncowa>] z[#<z_pocz> - [-1*[[#<sr_koncowa> - #<akt_startt>] * #<dl_stozka>] / [#<sr_koncowa> - #<sr_pocz>]]] f#<posuw> 

g1  z[#<z_koncowe>] f#<posuw> 
o85 endwhile

o80 endif


o90 if [#<sr_pocz> gt #<sr_koncowa>] 

#<akt_koniec> = #<sr_pocz> 
o95 while [#<akt_koniec> gt #<sr_koncowa>] 
  #<akt_koniec> = [#<akt_koniec> - #<przybranie_materialu>] 

  o96 if [#<akt_koniec> lt #<sr_koncowa>] 
    #<akt_koniec> = #<sr_koncowa> 
  o96 endif
   
   g0 x[#<sr_pocz> + 1] 
    g0 z[#<z_pocz> - [-1 * [[#<sr_koncowa> - #<akt_koniec>] * #<dl_stozka>] / [#<sr_pocz> - #<sr_koncowa>]]] 
    g0 x#<sr_pocz> 
  g1 x[#<akt_koniec>] z[#<z_pocz> - #<dl_stozka>] f#<posuw> 
o95 endwhile

o90 endif
o107 else

      g1 X[#<akt_start_x>] Z#<z_pocz>  F#<posuw1> 
     
       G1 Z#<z_koncowe> x[#<akt_start_x>+#<korekta>]   F#<posuw1> 
       G1 F#<posuw1> X[[#<akt_start_x>+#<korekta>]+#<odjazd_x>] Z[#<z_koncowe>-#<skos_z_k>] 
       g0 X[#<akt_start_x>+#<korekta>+#<odjazd_x>] 
          Z[#<z_pocz>+#<skos_z_p>+#<odjazd_z>] X[#<akt_start_x>+#<odjazd_x>] 
o107 endif


#<z_k_stozka>=-[#<z_k_stozka>+1] 
o100 endwhile

(toczenie fazki) 

o110 if [#<szerokosc_fazki> gt 0] 
#<szerokosc_fazki_1> = #<pomijaj_faza> 
#<glebokosc_fazki_1> = [#<glebokosc_fazki>*#<pomijaj_faza>/#<szerokosc_fazki>] 
g0 Z[#<z_pocz>+#<odjazd_z>] 

o200 if[#<stozek>eq 1] 
#<sr_koncowa>=[#<sr_koncowa>+#<roznica_srednic>] 
o200 endif


#<sr_koncowa>=[#<sr_koncowa>+#<korekta_polozenia_fazki>] 

o111 while [#<szerokosc_fazki_1> lt #<szerokosc_fazki>] 
#<szerokosc_fazki_1>=[#<szerokosc_fazki_1>+#<przybranie_materialu>/2] 
#<glebokosc_fazki_1>=[#<glebokosc_fazki_1>+[#<glebokosc_fazki>*#<przybranie_materialu>/#<szerokosc_fazki>/2]] 
 o112 if [#<szerokosc_fazki_1> gt #<szerokosc_fazki>] 
    #<szerokosc_fazki_1> = #<szerokosc_fazki> 
  o112 endif     
  o113 if [#<glebokosc_fazki_1> gt #<glebokosc_fazki>] 
    #<glebokosc_fazki_1> = #<glebokosc_fazki> 
  o113 endif   
x[[#<sr_koncowa>]-#<glebokosc_fazki_1>*2]             ( wjazd do fazki na fi #<sr_koncowa>) 
g1 z[#<z_pocz>] F#<posuw> 

o114 if [#<promien_fazki> lt 0.00001] 
g1 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]]  F#<posuw>   ( toczenie fazki na fi #<sr_pocz>) 
o114 endif
o115 if [#<promien_fazki> gt 0] 
o116 if [#<wkleslosc_fazki> gt 0] 
g2 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki>]   F#<posuw> 
o116 endif
o117 if [#<wkleslosc_fazki> lt 0.000001] 
g3 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki>]   F#<posuw> 
o117 endif


o115 endif
g0 x[[#<sr_koncowa>]+#<odjazd_x>] 
Z[#<z_pocz>+#<odjazd_z>] 
o111 endwhile ( koniec pętli ) 
o110 endif 

(opcjonalny odjazd od materiału w obu osiach) 

o120 if[#<odjazd_x_k> ne 99] 
g0 x#<odjazd_x_k> 
o120 endif

o130 if[#<odjazd_z_k> ne 99] 
 Z#<odjazd_z_k> 
o130 endif

o2000 else
#<sr_pocz> = [#<sr_pocz>+#<pomijaj>] (pomijania używamy,gdy poprawiamy detal i cześć procedury już jest wykonana) 
 o2500 if[[#<noz_wstepny> ne 0]] 
         o<loadtool> call [#<noz_wstepny>] 
         
  o2500 endif
G0 X#<sr_pocz> 
Z[#<z_pocz>+#<odjazd_z>] 
#<Current-Diameter> = #<sr_pocz> 

o500 while [#<Current-Diameter> lt #<sr_koncowa>] 

o501 if [[#<Current-Diameter> + #<przybranie_materialu>]lt #<sr_koncowa>] 
         #<Current-Diameter> = [#<Current-Diameter> + #<przybranie_materialu>] 
#<posuw1>=#<posuw> 
#<z_koncowe> = [#<z_koncowe>+#<skos_z_k>] 
o501 else
         #<Current-Diameter> = #<sr_koncowa> 
o1030 if[[#<noz_koncowy> gt 0]and[#<noz_koncowy> lt #<ilosc_nozy_w_tabeli> ]] 
         o<loadtool> call [#<noz_koncowy>] 
o1030 endif
#<posuw1>=#<posuw_koncowy> 
#<z_koncowe> = [#<z_koncowe>+#<skos_z_k>] 
o501 endif

       X#<Current-Diameter> 
       G1 Z[#<z_koncowe>]  X[#<Current-Diameter>-#<korekta>] F#<posuw1> 
       G0 X[#<Current-Diameter>-#<korekta>-#<odjazd_x>] 
      Z[#<z_pocz>+#<odjazd_z>]  X[#<Current-Diameter>-#<odjazd_x>] 
o500 endwhile


G0 X[#<Current-Diameter>-#<odjazd_x>] 
Z[#<z_pocz>+#<odjazd_z>] 

(toczenie fazki) 

o1100 if [#<szerokosc_fazki> gt 0] 
#<szerokosc_fazki_1> = #<pomijaj_faza> 
#<glebokosc_fazki_1> = -[#<glebokosc_fazki>*#<pomijaj_faza>/#<szerokosc_fazki>] 
g0 Z[#<z_pocz>+#<odjazd_z>] 

o2010 if[#<stozek>eq 1] 
#<sr_koncowa>=[#<sr_koncowa>+#<roznica_srednic>] 
o2010 endif


#<sr_koncowa>=[#<sr_koncowa>-#<korekta_polozenia_fazki>*2] 

o1110 while [#<szerokosc_fazki_1> lt #<szerokosc_fazki>] 
#<szerokosc_fazki_1>=[#<szerokosc_fazki_1>+#<przybranie_materialu>/2] 
#<glebokosc_fazki_1>=[#<glebokosc_fazki_1>+[#<glebokosc_fazki>*#<przybranie_materialu>/#<szerokosc_fazki>/2]] 
 o1120 if [#<szerokosc_fazki_1> gt #<szerokosc_fazki>] 
    #<szerokosc_fazki_1> = #<szerokosc_fazki> 
  o1120 endif     
  o1130 if [#<glebokosc_fazki_1> gt #<glebokosc_fazki>] 
    #<glebokosc_fazki_1> = -#<glebokosc_fazki> 
  o1130 endif   
x[[#<sr_koncowa>]+#<glebokosc_fazki_1>*2]             ( wjazd do fazki na fi #<sr_koncowa>) 
g1 z[#<z_pocz>] F#<posuw> 

o1140 if [#<promien_fazki> eq 0] 
g1 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]]  F#<posuw>   ( toczenie fazki na fi #<sr_pocz>) 
o1140 endif
o1150 if [#<promien_fazki> gt 0] 
o1160 if [#<wkleslosc_fazki> gt 0] 
g3 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki>]   F#<posuw> 
o1160 endif
o1170 if [#<wkleslosc_fazki> eq 0] 
g2 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki>]   F#<posuw> 
o1170 endif


o1150 endif
g0 x[[#<sr_koncowa>]-#<odjazd_x>] 
Z[#<z_pocz>+#<odjazd_z>] 
o1110 endwhile ( koniec pętli ) 
o1100 endif 

(opcjonalny odjazd od materiału w obu osiach) 

o1300 if[#<odjazd_z_k> ne 99] 
 Z#<odjazd_z_k> 
o1300 endif
o1200 if[#<odjazd_x_k> ne 99] 
g0 x#<odjazd_x_k> 
o1200 endif
o2000 endif




M5 M9               ; stop wrzeciona, chłodziwo stop

o<toczenie> endsub
Co ta procedura potrafi? Sporo więcej, niż pierwowzór J. Thorntona. Wywołana z domyślnymi parametrami robi dokładnie to samo - przetacza powierzchnię wałka z danej średnicy na mniejszą na zadanej długości.

Obrazek

Pierwsza pozycja - na razie nie działa, podobnie trzecia.

Druga pozycja - korekta stożka, podawana jako różnica w stosunku do średnicy początkowej w milimetrach. Skutkuje tym, co już udało ci się kiedyś wykonać. Wpisanie wartości ujemnej robi stożek odwrotny, czyli zwężający się w stronę uchwytu.

Do dziesiątej pozycji chyba tłumaczyć nie trzeba.

Jedenasta pozycja to szybkość posuwu w ostatnim, wykańczającym przebiegu. Pozostawienie zera nie zmienia prędkości ustawionej dla posuwu roboczego.

Pozycja 12 - planowanie czoła. Wpisujesz wartość w mm, jeżeli je planujesz splanować. Nie wpisane pomija procedurę, po wpisaniu wszystko przesuwa się o wartość splanowania automatycznie. Słowem - nie przeliczasz nic, program robi wszystko, jakby zero w Z było tam, gdzie skończyłeś planować czoło. Uwaga - splanowanie trzeba uwzględniać we wszystkich kolejnych podprocedurach. Nie sprawdzałem jeszcze, czy da się je wpisywać i pomijać w każdej kolejnej tabelce - mogą być jeszcze problemy z powiązanymi półkulami.

Ale można w pierwszej tabelce wystartować z Z o wartości planowania, i się wszystko potem będzie zgadzać.

Pozycja 13 - posuw czoła. Zostawiasz zero - idzie posuwem roboczym.

Pozycja 14 do 18 wykonanie fazki na zadaną głębokość i szerokość na średnicy końcowej. Wpisanie promienia robi fazkę półkulistą wypukłą, wpisanie jedynki w pozycji wklęsłość zmienia fazkę wypukłą we wklęsłą.

Wpisanie jednakowej wartości w pola średnica początkowa i średnica końcowa wyłącza pierwszą część procedury, czyli działa tylko fazka na zadanej średnicy, wtedy to jest stożek albo półkula.

Wpisanie średnicy początkowej mniejszej niż końcowa wywołuje procedurę roztaczania, i powiązanej z nią fazki wewnętrznej.

Pozycje 18 i 19 to odjazdy od materiału w poszczególnych przebiegach. Dość często potrzebuję to regulować z różnych powodów.

Pozycje 20 i 21 to korekta długości poszczególnych przejazdów w osi Z. Każdy kolejny przejazd jest skracany (albo wydłużany, choć to chyba nie znajdzie zastosowania) o podaną wartość. Kąt jest powiązany z wybraną wartością przybrania - jak przybranie ustawisz na większe, to i zwiększyć trzeba korektę.

Reszty chyba tłumaczyć nie muszę.


Kolejność pól sobie możesz zmienić bez trudu. Ja je ustawiłem tak, jak mi wygodnie. Komuś innemu może odpowiadać inna kolejność.

[ Dodano: 2012-11-25, 16:27 ]
Ta procedura nie ma robić cudów. Ona ma robić G1 G2 i G3 tam gdzie ja chcę, i tak jak ja chcę, z posuwem, jaki ustawię, nożem który wybiorę etc.

I to właśnie robi.

[ Dodano: 2012-11-25, 16:43 ]
Obrazek

Okazuje się, że i z lewa na prawo procedurka też toczy bez problemu. Czyli nie trzeba będzie ośmiu zakładek :) Wystarczą cztery.

Obrazek
Obrazek

Trochę dziwoląg - lekki stożek z korektą dojazdu noża, tnącego skosem w kierunku uchwytu - jak się zada dojazdy na stałą odległość, kończy się nieprzyjemnym zgrzytem, gdy na końcu nóż zaczyna brać bardzo szeroki wiór. Dodatkowo wklęsła fazka na końcu.

Obrazek

Tu wcinamy się w wałek gdzieś na jego długości trójkątnym nożem. Operacja przebiega cicho, miło i przyjemnie.

Obrazek

Tu staczmy wałek, i robimy półkolistą sporą fazkę.

Obrazek

Półkulę też można z tej procedury zrobić.

Dodatkowo możemy zdecydować, o ile odjeżdżać od materiału w osi - niezależnie dla każdej z osi, oraz zadeklarować, gdzie ma pojechać nóż po skończonej procedurze.

Filmik, pokazujący, jak pracować w NGCGUI tą procedurą zmultiplikowaną, czyli z kilkoma zakładkami wykonującymi poszczególne etapy obróbki.

[youtube][/youtube]ObrazekObrazek
Ostatnio zmieniony 08 gru 2012, 06:01 przez MlKl, łącznie zmieniany 10 razy.



Tagi:


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

#2

Post napisał: kamar » 07 lis 2012, 17:45

Oj programiści , programisci :) Koniecznie muszą skomplikować to co jest proste i ma być proste :)
Jedna rozbudowana procedura byłaby piękna gdyby świat był idealny a noże się nie ucierały :)
Wykonałeś tą piękną procedurkę od a do z ,a ponieważ jechałaś skóruwę i wykończenie tym samym nożem, okazuje sie że jeszcze brak do wymiaru dychę. I co korygujesz i puszczasz całą od początku czy szukasz prostej coby poprawić ?
MlKl pisze:Trochę dziwoląg - lekki stożek z korektą dojazdu noża, tnącego skosem w kierunku uchwytu - jak się zada dojazdy na stałą odległość, kończy się nieprzyjemnym zgrzytem, gdy na końcu nóż zaczyna brać bardzo szeroki wiór. Dodatkowo wklęsła fazka na końcu. .
A nie prościej po dojechaniu do zadanego zeta wyjechać po x o przybranie i dopiero wracać.
Czoło masz równe i bez niespodzianek.

Awatar użytkownika

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

#3

Post napisał: MlKl » 07 lis 2012, 18:37

To się wzięło z życia - każdy dodatek do tej procedury wyszedł "w praniu" - był potrzebny, więc się dopisało.

Procedura jest prosta - defaultowo melduje się jako zwyczajne toczenie walca. Dopiero wypełnienie odpowiednich okienek uruchamia dodatki. Pewnie można se fazkę wpisywać w osobnym okienku - podawać średnicę wałka itp. Ale dlaczego tego nie zrobić w jednym okienku? Ja sobie życie ułatwiam, a nie utrudniam.

Fakt - nie mam problemu z ogarnięciem formularza z kilkudziesięcioma pozycjami.

Na pewno w toto wmontuję jeszcze stożek - żeby po wpisaniu korekty stożka w milimetrach, albo kąta, podstawiała się procedura stożka, a nie walca.

Akurat jeszcze nie musiałem pomijać początku procedury celem poprawienia, ale faktycznie muszę dopisać. Czasem się przyda.

A problem ze zgrzytającym nożem wynikł przy przetaczaniu lufy z fi 15 na fi 11 na długości 400 mm bez żadnej podtrzymki. Najlepiej szło nożem, który tnie wystawioną dupką - i jak dojeżdza do miejsca, w którym kończy, to wtedy bierze na raz całą warstwę przetoczoną od początku, jak się mu nie dopisze korekty, żeby za każym przebiegiem kończył ciut wcześniej.

Obrazek

Nóż, o którym mówię jest trzeci od lewej.


IMPULS3
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 18
Posty: 7549
Rejestracja: 25 gru 2010, 21:55
Lokalizacja: LUBELSKIE

#4

Post napisał: IMPULS3 » 07 lis 2012, 21:39

MlKl pisze:A problem ze zgrzytającym nożem wynikł przy przetaczaniu lufy z fi 15 na fi 11 na długości 400 mm bez żadnej podtrzymki. Najlepiej szło nożem, który tnie wystawioną dupką - i jak dojeżdza do miejsca, w którym kończy, to wtedy bierze na raz całą warstwę przetoczoną od początku, jak się mu nie dopisze korekty, żeby za każym przebiegiem kończył ciut wcześniej.
To normalne, :smile: czasami też pomaga jak się toczy od uchwytu a nie do uchwytu, nie ma wtedy takich drgań.

Awatar użytkownika

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

#5

Post napisał: MlKl » 07 lis 2012, 22:54

Normalne na manualu, jak jeżdzi na posuwach do zderzaka, na CNC barabanić nie musi. U mnie to ważne, bo jak barabani, to cały blok się trzęsie.

Ustawiam sobie skos na końcu, i toczę po cichutku, a efekt dokładnie ten sam - skos by tak czy siak wyszedł, i trzeba go innym nożem dokończyć.

Oczywiście sztywna tokarka z silnikiem 10 kW pewnie nawet nie poczuje że coś takiego nastąpiło, moja ma tylko 1,1 kW i takich eksperymentów nie lubi.

Obrazek

O tutaj widać dokładnie, w jakich przypadkach to jest potrzebne. Tych operacji nie da się zrobić kulturalnie bez ustawienia coraz krótszego odcinka za każdym przebiegiem.

A jak jest możliwość, to dlaczego nie skorzystać i cieszyć się ciszą i dobrą powierzchnią toczonych przedmiotów?

Awatar użytkownika

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

#6

Post napisał: MlKl » 19 lis 2012, 01:26

Procedurka powoli się rozrasta. Kamar narzekał, że jadę jednym nożem - proszę, można se ustawić nóż osobno do zgrubnego toczenia, osobno do czoła, i do wykończenia. Osobno się ustawia też prędkości posuwu dla tych operacji. Dodałem też pomijanie części głównej procedury - przydatne przy poprawkach.

Stożki na razie tylko zamarkowane, ale też się będą z tej procedurki toczyć niedługo :)
Ostatnio zmieniony 20 lis 2012, 01:18 przez MlKl, łącznie zmieniany 1 raz.


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

#7

Post napisał: kamar » 19 lis 2012, 05:38

MlKl pisze:. Kamar narzekał, że jadę jednym nożem - proszę, można se ustawić nóż osobno do zgrubnego toczenia, osobno do czoła, i do wykończenia. Osobno się ustawia też prędkości posuwu dla tych operacji. Dodałem też pomijanie części głównej procedury - przydatne przy poprawkach.
Raczej nie chodziło o nóż a o wygodę pracy z takimi rozbudowanymi subami.
Jak znajdziesz jeszcze dwóch takich, co im sie chce wypełniać takie ankiety to odszczekam :)

Awatar użytkownika

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

#8

Post napisał: MlKl » 19 lis 2012, 06:54

Toć tu nie ma żadnego obowiązku wypełniania - procedura sobie startuje dokładnie tak samo, jak ten pierwszy o<walec> - całą resztę wypełnia się jedynie w razie potrzeby. Każdy z tych dodatków powstał w wyniku kłopotów z obróbką spowodowanych ograniczeniami możliwości konfiguracji parametrów. I każdy jest opcjonalny - dopóki nie zażyczysz sobie zmiany noża, czy prędkości posuwu, procedura to pomija bez żadnego pytania o zdanie użytkownika.

Pierwsze, co wywalałem z oryginalnych procedur, to było obligatoryjne żądanie włożenia konkretnego narzędzia przed kontynuacją pracy.

Nikt przecież nie każe powywalać tamtych prostych procedur - o ile są nadal potrzebne do czegoś i się przydają.


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

#9

Post napisał: kamar » 19 lis 2012, 11:29

MlKl pisze: o ile są nadal potrzebne do czegoś i się przydają.
Miki, przy standardowych robotach tokarskich ( tu wytocz, tam przetocz, tu zabiel) wykorzystuje się trzy podstawowe suby (zew, wew, czoło) rzadko nawet łączone.
Wepchnięte w jeden rozbudowany sub zmuszają do ciągłej kontroli czy chwilę wczesniej nie robiłam np. czola i parametry nie zostały. A jak przegapisz to będzie mało zabawnie :)
Ale j.w. będę głośniej szczekał :)

Awatar użytkownika

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

#10

Post napisał: MlKl » 19 lis 2012, 12:41

Dla mnie mało zabawnie jest, jak chcę coś zrobić, a maszyna nie robi tego, co ja sobie życzę, tylko dlatego, że zabrakło parametru do ustawienia w tabelce.

Może u ciebie toczenie to tylko proste operacje - ja jednak mam takie stosunkowo rzadko. A jak toczę serię z pręta, to lubię, jak po naciśnięciu R do maszyny podchodzę dopiero, żeby pręt wysunąć z uchwytu pod następną sztukę.

Widziałem, że do toczenia wgłębień w kole zębatym pisaliście specjalnego suba - i on działa od czoła tak, jak moja korekta skosu w zetce.

Ja też nie powywalam tych prostych subów. Ale tego akurat codziennie używam, i sobie go chwalę. Jak nie znajdę naśladowców, płakał nie będę.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”