Znaleziono 4 wyniki

autor: szary11
30 sty 2016, 12:52
Forum: LinuxCNC (dawniej EMC2)
Temat: NGCGUI - podstawowe procedury, ciut bardziej funkcjonalne
Odpowiedzi: 19
Odsłony: 3890

senio pisze: A powiedz mi jeszcze który fragment wkleić do tego suba poniżej, żeby działało to końcowe dobieranie. Albo wklej sam do niego ten fragment i zapodaj.
Żebym ja był taki mądry :roll: , to by troche kasy zostało w kieszeni. :smile:
Pisanie subów zlecam trzymańcowi, a on nie chce przerabiać obcych.
Jak chcesz to Was skontaktuje i napisze Ci nowego pod Ciebie.
autor: szary11
28 sty 2016, 12:59
Forum: LinuxCNC (dawniej EMC2)
Temat: NGCGUI - podstawowe procedury, ciut bardziej funkcjonalne
Odpowiedzi: 19
Odsłony: 3890

kamar pisze: Sub nie mój wiec nie wiem co tam wymodzili.
Nieładnie nie przyznawać się do Artura.

senio
zrobione coś na szybko na swoim, żebyś mógł spać spokojnie.

Kod: Zaznacz cały

( ------------------------------ )           
(    Z E W N E T R Z N A        )
( ------------------------------ )
( ADAM                       )
( Time-stamp: <2015-07-12 09:12> )
( ------------------------------ )

(info: Średnica zewnętrzna )

o<zew> sub

#<nr> = #1 (=1 nr narzędzia)
#<obr> = #2 (=400 obroty)
#<odboczka> = #3 (=0 <> odboczka)
#<sr_pocz> = #4 (=50 średnica pocz.)
#<sr_koncowa> = #5 (=30 średnica koń.)
#<dobieranie> = #6 (=2 dobieranie)
#<ostatnia_warstwa> = #7 (=0.1 ostatnia warstwa)
#<poczatek> = #8 (=0 początek)
#<z_koncowe> = #9 (=-20 Z koniec)
#<wygladzanie> = #10 (=0 <> przejazd wygładzający)
#<posuw> = #11 (=0.2 posuw [mm/obr] v [m/min])
#<posuw_na_obrot> = #12 (=1 <> posuw/obrot)
#<fazka> = #13 (=0 fazka)
#<podciecie> = #14 (=0 Podcięcie / typ: 1-A, 2-B, 3-C, 4-D)
#<w_z> = #15 (=5 Z  do zmiany)
#<w_x> = #16 (=50 X  do zmiany)
#<woda> = #17 (=0 <> chłodzenie)
#<korekta> = #18 (=0 <> korekta)
#<wielkosc_korekty> = #19 (=0 wielkość korekty)
#<stala_pr_skrawania> = #20 (=1 <> stala_pr_skrawania)
#<obroty_max> = #21 (=1200 obroty max)
#<pr_skrawania> = #22 (=200 predkosc skrawania [m/min])

o20 if [#<w_z> lt #<poczatek> or #<w_x> lt #<sr_koncowa>]
(msg, KOLIZJA ! zły wyjazd)
M30
o20 endif

o30 if [#<sr_koncowa> gt #<sr_pocz>]
(msg, chyba Ci się średnice popierniczyły)
M30
o30 endif


o2 if [#<odboczka> eq 1]
  #<obr> = [#<obr> * 8]
o2 endif

o7 if [#<odboczka> eq 1]
  #<pr_skrawania> = [#<pr_skrawania> * 8]
  #<obroty_max> = [#<obroty_max> * 8]
o7 endif

g61 g80

m3 s#<obr>
o1 if [#<woda> eq 1]
   M8
o1 endif


o8 if [#<posuw_na_obrot> eq 1]
	G95 
o8 endif

g0 z[#<poczatek> + 1]
g0 x[#<sr_pocz> + 1]

(skrocenie ostatniego przejazdu przy podcieciach typu A i C)
#<korekta_podciecie>=0

o1000 if [#<korekta> eq 0]

#<aktualne_dobranie> = #<sr_pocz>

o10 while [#<aktualne_dobranie> gt #<sr_koncowa>]
  #<aktualne_dobranie>=[#<aktualne_dobranie> - #<dobieranie>]
  
  (po spelnieniu petli o402 musimy zrobic ostani przejzad i przeskoczyc petle o402)
  

  (jesli ostatnie dobranie wychodzi mniejsze niz zadana grubosc ostatniej warstwy wtedy skroc poprzednie dobranie)
  
  o402 if [#<aktualne_dobranie> eq [#<sr_koncowa> + #<ostatnia_warstwa> - #<dobieranie>]]
    #<aktualne_dobranie> = #<sr_koncowa>
    
    o109 if[#<podciecie> eq 1 or #<podciecie> eq 3]
            #<korekta_podciecie>=0.5
    o109 endif
    
  o402 elseif [#<aktualne_dobranie> lt [#<sr_koncowa>+#<ostatnia_warstwa>] ]
	#<aktualne_dobranie> = [#<sr_koncowa> + #<ostatnia_warstwa>]
  o402 endif
  
	
  
  o3 if [#<stala_pr_skrawania> eq 1]
		G96 s#<pr_skrawania> D#<obroty_max>
		o3 endif
		
  g0 x#<aktualne_dobranie>
  g1 z[#<z_koncowe> + #<korekta_podciecie>] f#<posuw>
  g1 x[#<aktualne_dobranie> + #<dobieranie>]
  g0 z[#<poczatek> + 1]
  
  g97
  
	o10 endwhile

	o50 if [#<wygladzanie> eq 1]
		 o55 repeat [1]
			 g0 x#<aktualne_dobranie>
			 g1 z[#<z_koncowe> + #<korekta_podciecie>] f#<posuw>
			g1 x[#<aktualne_dobranie> + #<dobieranie>]
			g0 z[#<poczatek> + 1]
		o55 endrepeat
	o50 endif

o1000 else

		o4 if [#<stala_pr_skrawania> eq 1]
		G96 s#<pr_skrawania> D#<obroty_max>
		o4 endif

  g0 x[#<sr_koncowa>-#<wielkosc_korekty>] z[#<poczatek>+1]
  g1 z#<z_koncowe> f#<posuw>
  g1 x[#<sr_koncowa> + 1]
  g0 z[#<poczatek> + 1]
  
  	o51 if [#<wygladzanie> eq 1]
		 o56 repeat [1]
			  g0 x[#<sr_koncowa>-#<wielkosc_korekty>] z[#<poczatek>+1]
			g1 z#<z_koncowe> f#<posuw>
			g1 x[#<sr_koncowa> + 1]
			g0 z[#<poczatek> + 1]
		o56 endrepeat
	o51 endif
  
  
	g97
o1000 endif

(PROCEDURA PODCIĘCIA)

o1500 if[#<podciecie> gt 0 and #<podciecie> lt 5] (wykonywanie podcięcia na końcu czopu)


     o1510 if[#<podciecie> eq 1] (wybieramy podcięcie typu A)

           o1520 if[#<sr_koncowa> gt 0 and #<sr_koncowa> le 3]
        #<b>  = 1
        #<a>  = 0.1
        #<z>  = 0.1
        #<b1> = 0.8
        #<c>  = 0.5
        #<r1> = 0.25

           o1520 elseif[#<sr_koncowa> gt 3 and #<sr_koncowa> le 10]
        #<b>=2
        #<a>  = 0.2
        #<z>  = 0.1
        #<b1> = 1.5
        #<c>  = 1
        #<r1> = 0.4

           o1520 elseif[#<sr_koncowa> gt 10 and #<sr_koncowa> le 18]
        #<b>  = 2
        #<a>  = 0.2
        #<z>  = 0.1
        #<b1> = 1.5
        #<c>  = 1
        #<r1> = 0.4

           o1520 elseif[#<sr_koncowa> gt 18 and #<sr_koncowa> le 30]
        #<b>  = 2
        #<a>  = 0.2
        #<z>  = 0.1
        #<b1> = 1.5
        #<c>  = 1
        #<r1> = 0.4

           o1520 elseif[#<sr_koncowa> gt 30 and #<sr_koncowa> le 80]
        #<b>  = 4
        #<a>  = 0.3
        #<z>  = 0.1
        #<b1> = 3.3
        #<c>  = 1.5
        #<r1> = 0.6

           o1520 else
        #<b>  = 6
        #<a> = 0.4
        #<z>  = 0.1
        #<b1> = 5
        #<c>  = 2.3
        #<r1> = 1


           o1520 endif
          g0 z[#<z_koncowe>+#<b>]
          g1 x#<sr_koncowa> F#<posuw>
          g2 z[#<z_koncowe>+[#<b>-[#<b>-#<b1>]]] x[#<sr_koncowa>-#<a>*2] r[#<r1>*2] F#<posuw>
          g1 z[#<z_koncowe>+#<r1>] F#<posuw>
          g2 z[#<z_koncowe>] x[#<sr_koncowa>+#<a>*2] r[#<r1>*2] F#<posuw>
		  g1 x#<sr_pocz> F#<posuw>
          
     o1510 elseif[#<podciecie> eq 2] (wybieramy podcięcie typu B)

          o1530 if[#<sr_koncowa> gt 0 and #<sr_koncowa> le 3]
        #<b>  = 1
        #<a>  = 0.1
        #<z>  = 0.1
        #<b1> = 0.8
        #<c>  = 0.5
        #<r1> = 0.25

           o1530 elseif[#<sr_koncowa> gt 3 and #<sr_koncowa> le 10]
        #<b>=2
        #<a>  = 0.2
        #<z>  = 0.1
        #<b1> = 1.5
        #<c>  = 1
        #<r1> = 0.4

           o1530 elseif[#<sr_koncowa> gt 10 and #<sr_koncowa> le 18]
        #<b>  = 2
        #<a>  = 0.2
        #<z>  = 0.1
        #<b1> = 1.5
        #<c>  = 1
        #<r1> = 0.4

           o1530 elseif[#<sr_koncowa> gt 18 and #<sr_koncowa> le 30]
        #<b>  = 2
        #<a>  = 0.2
        #<z>  = 0.1
        #<b1> = 1.5
        #<c>  = 1
        #<r1> = 0.4

           o1530 elseif[#<sr_koncowa> gt 30 and #<sr_koncowa> le 80]
        #<b>  = 4
        #<a>  = 0.3
        #<z>  = 0.1
        #<b1> = 3.3
        #<c>  = 1.5
        #<r1> = 0.6

           o1530 else
        #<b>  = 6
        #<a> = 0.4
        #<z>  = 0.1
        #<b1> = 5
        #<c>  = 2.3
        #<r1> = 1


           o1530 endif
          g0 z[#<z_koncowe>+#<b>]
          g1 x#<sr_koncowa> F#<posuw>
          g2 z[#<z_koncowe>+[#<b>-[#<b>-#<b1>]]] x[#<sr_koncowa>-#<a>*2] r[#<r1>*2] F#<posuw>
          g1 z[#<z_koncowe>+[#<r1>/2]] F#<posuw>
          g2 z[#<z_koncowe>-#<r1>/2] x[#<sr_koncowa>+#<a>*2] r[#<r1>] F#<posuw>
          g1 z[#<z_koncowe>] x[#<sr_koncowa>+#<a>*2+#<c>] F#<posuw>
          g1 x#<sr_pocz> F#<posuw>

     o1510 elseif[#<podciecie> eq 3] (wybieramy podcięcie typu C)

		
           o1540 if[#<sr_koncowa> gt 0 and #<sr_koncowa> le 10]
        (msg, Uwaga, podcięcia typu C nie wykonuje się poniżej 10 mm średnicy!)
       
         
           o1540 elseif[#<sr_koncowa> gt 10 and #<sr_koncowa> le 18]
        #<r>  = 1
        #<a1>  = 0.2
        #<z>  = 0.1
        #<b2> = 1.6
        #<b3>  = 1.4
       

           o1540 elseif[#<sr_koncowa> gt 18 and #<sr_koncowa> le 30]
        #<r>  = 1.6
        #<a1>  = 0.3
        #<z>  = 0.1
        #<b2> = 2.5
        #<b3>  = 2.2
       

           o1540 elseif[#<sr_koncowa> gt 30 and #<sr_koncowa> le 80]
        #<r>  = 2.5
        #<a1>  = 0.3
        #<z>  = 0.1
        #<b2> = 3.7
        #<b3>  = 3.4
       
           o1540 else
        #<r>  = 2.5
        #<a1> = 0.3
        #<z>  = 0.1
        #<b2> = 3.7
        #<b3>  = 3.4
   
           o1540 endif
        o1570 if[#<sr_koncowa> gt 10]
              g0 z[#<z_koncowe>+#<b2>]
              g1 x#<sr_koncowa> F#<posuw>
              g2 z[#<z_koncowe>] x[#<sr_koncowa>+#<a1>*2] r[#<r>] F#<posuw>
              g1 x#<sr_pocz> F#<posuw>
             o1570 endif 

     o1510 elseif[#<podciecie> eq 4] (wybieramy podcięcie typu D)
	
		o1550 if[#<sr_koncowa> gt 0 and #<sr_koncowa> le 10]
        (msg, Uwaga, podcięcia typu D nie wykonuje się poniżej 10 mm średnicy!)
           
                 
           o1550 elseif[#<sr_koncowa> gt 10 and #<sr_koncowa> le 18]
        #<r>  = 1
        #<a1>  = 0.2
        #<z>  = 0.1
        #<b2> = 1.6
        #<b3>  = 1.4
       

           o1550 elseif[#<sr_koncowa> gt 18 and #<sr_koncowa> le 30]
        #<r>  = 1.6
        #<a1>  = 0.3
        #<z>  = 0.1
        #<b2> = 2.5
        #<b3>  = 2.2
       

           o1550 elseif[#<sr_koncowa> gt 30 and #<sr_koncowa> le 80]
        #<r>  = 2.5
        #<a1>  = 0.3
        #<z>  = 0.1
        #<b2> = 3.7
        #<b3>  = 3.4
       
           o1550 else
        #<r>  = 2.5
        #<a1> = 0.3
        #<z>  = 0.1
        #<b2> = 3.7
        #<b3>  = 3.4
   
           o1550 endif

        o1580 if[#<sr_koncowa> gt 10]
              g0 z[#<z_koncowe>+#<b3>]
              g1 x#<sr_koncowa> F#<posuw>
              g2 z[#<z_koncowe>-#<a1>] x[#<sr_koncowa>+#<a1>*2] r[#<r>] F#<posuw>
              g2 z[#<z_koncowe>] x[#<sr_koncowa>+#<b2>*2] r[#<r>] F#<posuw>
              g1 x#<sr_pocz> F#<posuw>
        o1580 endif 
	
     o1510 else

     o1510 endif


o1500 endif (koniec procedury podcięcia) 



o100 if [#<fazka> gt 0]

		o5 if [#<stala_pr_skrawania> eq 1]
		G96 s#<pr_skrawania> D#<obroty_max>
		o5 endif

    g0 z[#<poczatek> + 1]
    g0 x[#<sr_koncowa> - [#<fazka> * 2]]
        g1 z#<poczatek> F#<posuw>
    g1 z[#<poczatek> - #<fazka>] x#<sr_koncowa> f#<posuw>
      g1 z[#<poczatek> - #<fazka> -0.5]
      
g0  x[#<sr_koncowa>+1 ]
g0 z[#<poczatek> + 1]

		g97

o100 endif


g0 x#<w_x>
g0 z#<w_z>


o<zew> endsub
troche duży bo chłopak pododawał podcięcia, ale coś jaszcze nie tak , rysuje podcięcie prawidłowo (promienie) a jedzie wektorem
ale Twoja potrzeba działa :wink:

podcięcia skopiowane od Mikiego, chciałem od Kamara, ale u niego dużo krzaków w subie na stronie
autor: szary11
27 sty 2016, 22:03
Forum: LinuxCNC (dawniej EMC2)
Temat: NGCGUI - podstawowe procedury, ciut bardziej funkcjonalne
Odpowiedzi: 19
Odsłony: 3890

Re: NGCGUI - podstawowe procedury, ciut bardziej funkcjonaln

kamar pisze:
A jaki to proble z byle subem ?
Masz zjechać ze 100 do 40 z wykańczającym po np. 6mm ze średnicy. Wpisujesz początkową 100.2 i masz ostatnie przejście 0.2
chyba nie dorośliśmy jeszcze do tak skutecznie prostych rozwiązań :idea: i na siłę komplikujemy
autor: szary11
26 sty 2016, 21:52
Forum: LinuxCNC (dawniej EMC2)
Temat: NGCGUI - podstawowe procedury, ciut bardziej funkcjonalne
Odpowiedzi: 19
Odsłony: 3890

Re: NGCGUI - podstawowe procedury, ciut bardziej funkcjonaln

senio pisze:Odgrzebię kotleta. Pierwszy sub toczenie zewnętrzne jest dla mnie idealny. Gdyby jeszcze działała funkcja

Kod: Zaznacz cały

#<Final_Cut> =  #4 (=0.1 Ostatnia warstwa) 
było by full. Nie wiem czy Miki zagląda na to forum jeszcze ale może ktoś kumaty na to zerknie i poprawi żeby to działało. Nie jednemu ten sub przypasuje.
Miki chciał zrobić tą opcję, ale nigdzie w subie jej nie dodał, zobacz sam <Final_Cut> występuje tylko raz w linijce w której wpisujesz wartość. Nigdzie więcej w obliczeniach nie uwzględnił tego parametru.
Dużo zmian nie ma sensu
Trzeba Ci jakiś dziwny to pisz, może mam :?:

Wróć do „NGCGUI - podstawowe procedury, ciut bardziej funkcjonalne”