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
podcięcia skopiowane od Mikiego, chciałem od Kamara, ale u niego dużo krzaków w subie na stronie