Nie skomentujęIMPULS3 pisze: że jakoś nie mogę się ciagle dorobić funkcji gwintowania..

Wróć do „LinuxCNC moje początki”
Kod: Zaznacz cały
( ------------------------------ )
( G W I N T S T O Ż E K )
( ------------------------------ )
( Kamar )
( Time-stamp: <2017-10-06 09:41> )
( ------------------------------ )
(info: Gwint na stożku)
o<gwint_stozek_G33> sub
#<nr> = #1 (=1 numer narzędzia)
#<obr> = #2 (=200 obroty)
#<x_pocz> = #3 (=60 średnica początkowa X)
#<x_biez> = #4 (=60 średnica aktualna X)
#<zwykly> = #5 (=1 <> gwint normalny)
#<x_konc> = #6 (=30 średnica końcowa X)
#<z_pocz> = #7 (=0 początek gwintu Z)
#<skok> = #8 (=5 skok gwintu [P])
#<dobieranie> = #9 (=0.1 dobieranie)
#<dlugosc> = #10 (=100 długość gwintu [Z])
#<rodzaj> = #11 (=0 <> zewnętrzny )
#<glebokosc> = #12 (=5 głębokość gwintu)
#<wyjazd> = #13 (=2 wyjazd z gwintu)
#<woda> = #14 (=1 <> chłodzenie)
g18 g61 g7
m3 s#<obr>
o100 if [#<woda> eq 1]
m8
o100 endif
o200 if[#<zwykly> EQ 1]
#<x_konc> = #<x_pocz>
o200 endif
o500 if[#<rodzaj> EQ 0]
(wewnetrzny)
#<akt_glebokosc> = [#<x_biez> - #<x_pocz>]
G0 X#<x_pocz> Z[#<z_pocz> + 5]
o1000 while [#<akt_glebokosc> LT #<glebokosc>]
#<akt_glebokosc> = [#<akt_glebokosc> + #<dobieranie>]
o1010 if [#<akt_glebokosc> GT #<glebokosc>]
#<akt_glebokosc> = #<glebokosc>
o1010 endif
#<x_akt> = [#<x_pocz> + #<akt_glebokosc>]
(debug, #<x_akt>)
G0 X[#<x_pocz> + #<akt_glebokosc>] Z#<z_pocz>
G33 K#<skok> X[#<x_konc> + #<akt_glebokosc>] Z[#<z_pocz> - #<dlugosc>]
G0 X[#<x_konc> - #<wyjazd>]
G0 X[#<x_pocz> - #<wyjazd>] Z#<z_pocz>
o1000 endwhile
o500 else
(zewnetrzny)
#<akt_glebokosc> = [#<x_pocz> - #<x_biez>]
G0 X#<x_pocz> Z[#<z_pocz> + 5]
o2000 while [#<akt_glebokosc> LT #<glebokosc>]
#<akt_glebokosc> = [#<akt_glebokosc> + #<dobieranie>]
o2010 if [#<akt_glebokosc> GT #<glebokosc>]
#<akt_glebokosc> = #<glebokosc>
o2010 endif
#<x_akt> = [#<x_pocz> - #<akt_glebokosc>]
(debug, #<x_akt>)
G0 X[#<x_pocz> - #<akt_glebokosc>] Z#<z_pocz>
G33 K#<skok> X[#<x_konc> - #<akt_glebokosc>] Z[#<z_pocz> - #<dlugosc>]
G0 X[#<x_konc> + #<wyjazd>]
G0 X[#<x_pocz> + #<wyjazd>] Z#<z_pocz>
o2000 endwhile
o500 endif
m30
o<gwint_stozek_G33> endsub
Kod: Zaznacz cały
( ------------------------------ )
( Faza wewnętrzna - PORĘBA )
( ------------------------------ )
( Kamar )
( Time-stamp: <2013-11-14 09:16> )
( ------------------------------ )
(info: Faza wewnętrzna )
o<faza_wew> sub
#<nr> = #1 (=1 numer narzędzia)
#<obr> = #2 (=400 obroty)
#<odboczka> = #3 (=0 <> odboczka)
#<sr_pocz> = #4 ( Średnica pocz. materiału)
#<sr_stozka> = #5 ( Średnica pocz. stożka)
#<sr_konc> =#6 ( Średnica koń. stożka)
#<kat> = #7 (=30 kąt...)
#<dlugosc> = #8 (=0 ... albo długość stożka)
#<z_poczatkowy> = #9 (=0 Z początkowy)
#<dobieranie> = #10 (=2 Dobieranie)
#<posuw> = #11 (=60 Posuw)
#<w_z> = #12 ( Z do zmiany)
#<w_x> = #13 ( X do zmiany)
#<woda> = #14 (=1 <> chłodzenie)
M6 T#<nr> G43
g7
g61
m3 s#<obr>
o1 if [#<woda> eq 1]
M8
o1 endif
#<akt_z> = #<z_poczatkowy>
#<akt_x> = #<sr_pocz>
o5 if [#<kat> eq 0]
( #<kroki> = FUP[[#<sr_stozka> - #<sr_pocz>] / #<dobieranie> / 2])
( #<dobieranie_z> = [#<dlugosc> / #<kroki>])
(#<dobieranie_z> = [[[#<dlugosc> - #<z_poczatkowy>] * #<dobieranie_z>] / [#<sr_stozka> - #<sr_pocz>]])
#<dobieranie_z> = [[#<dlugosc> - #<z_poczatkowy>] * [#<dobieranie> / [#<sr_stozka> - #<sr_pocz>]]]
o5 else
#<dobieranie_z> = #<dobieranie>
o5 endif
o100 while [#<akt_x> lt #<sr_stozka>]
#<akt_x> = [#<akt_x> + #<dobieranie>]
o110 if [#<akt_x> gt #<sr_stozka>]
#<akt_x> = #<sr_stozka>
o110 endif
#<akt_z> = [#<akt_z> - #<dobieranie_z>]
g0 z[#<z_poczatkowy> + 0.5]
g0 x#<akt_x>
g1 z#<z_poczatkowy> f#<posuw>
o10 if [#<kat> eq 0]
g1 x#<sr_konc> z#<dlugosc> f#<posuw>
o10 else
( #<akt_z> = [#<z_poczatkowy> + #<dobieranie_z>])
( g1 x#<sr_pocz> z[[#<akt_z>/tan[#<kat>]] / 2] f#<posuw>)
g1 X#<sr_konc> Z[#<z_poczatkowy> - [[#<akt_x> - #<sr_konc>] / [2 * tan[#<kat>]]]] F#<posuw>
o10 endif
o100 endwhile
g0 z#<w_z>
g0 x#<w_x>
o<faza_wew> endsub
Kod: Zaznacz cały
( ------------------------------ )
( Ścieżka z palca )
( ------------------------------ )
( Kamar )
( Time-stamp: <31-07-2014> )
( ------------------------------ )
o<sciezka> sub
#<tool> = #1 (=1 gniazdo)
#<nr> = #2 (=1 numer narzędzia)
#<obr> = #3 (=400 obroty)
#<odboczka> = #4 (=0 <> odboczka)
#<posuw> = #5 (= 0.2 posuw)
#<w_z> = #6 ( Z do zmiany)
#<w_x> = #7 ( X do zmiany)
#<woda> = #8 (=1 <> chłodzenie)
#<stala_predkosc> = #9 (=0 <> stała prędkość skrawania)
#<obroty_max> = #10 (=250 obroty max)
#<predkosc_skrawania> = #11 (=200 prędkość skrawania)
/o9 if [#<posuw> gt 1 ]
/ (msg, Za duży posuw!)
/ m2
/o9 endif
o13 if [#<stala_predkosc> eq 1]
g96 d#<obroty_max> s#<predkosc_skrawania>
o13 endif
/o<zmiana> call [#<tool>] [#<nr>]
/g0 f#<posuw>
/o2 if [#<odboczka> eq 1]
/ #<obr> = [#<obr> * 8]
/o2 endif
m3 s#<obr>
( poczatek ścieżki narzedzia )
g0 z-3
x0
g3 z-8 x18 r10 f0.2
( Koniec ścieżki narzedzia )
g0 z#<w_z>
g0 x#<w_x>
o<sciezka> endsub