kamar pisze:MlKl pisze:[. Średnica materiału wychodzi z sumy średnicy początkowej (mojej) i korekty stożka. wsze.
Nie rozumiem co do mnie rozmawiasz ale kombinuj.

rednica materiału nie wynika tyko jest założona w uchwyt a korekta to najważniejsza funkcja w tej zabawie.
Już działa - zapętlenie było moją winą, wsadziłem toto w środek własnej pętli, zamiast wywalić za nią. Z korektą sobie zawalczę potem - tu znowu się gryzą zmienne, u mnie #<korekta> to przesunięcie stożka, a średnicy zewnętrznej materiału nie wpisuję, wychodzi sama ze zsumowania średnicy początkowej i korekty.
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
#<czolo> =#1 (=0 planowanie czoła, 0 wyłącza)
#<posuw_czolo> = #2 (=40 Posuw czoła)
#<stozek> =#3 (=0 1 stożek, 0 walec)
#<korekta> = #4(=0 korekta stożka w mm...)
#<kat_stozka> =#5 (=0 ... lub kąt 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)
#<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)
#<podciecie> =#19 (=0 Podcięcie A 1, B 2, C 3, D 4, 0 wyłącza)
#<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)
#<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)
#<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)
#<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ąć)
#<odjazd_z> =#33 (=0.25 odjazd od materiału w osi Z)
#<odjazd_x> =#34 (=0.5 odjazd od materiału w osi X)
#<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.)
#<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)
#<rpm> = #44 (=720 obroty)
#<max_rpm> = #45 (=1500 obroty maksymalne)
; stałe wpisane na sztywno
#<ilosc_nozy_w_tabeli>=9
; G7: diameter mode
; G96: constant surface speed
; Włączamy procedurę
G#<g5x> G43 G7 G96 S#<rpm> D#<max_rpm>
M#<m> M#<woda> ; start wrzeciona i uruchomienie chłodziwa
o1000 if[#<sr_pocz> ge #<sr_koncowa>] (toczenie od zewnątrz walca lub stożka)
#<odjazd_x>=[#<odjazd_x>*2+#<przybranie_materialu>]
#<roznica_srednic>=[#<sr_pocz>-#<sr_koncowa>]
;#<sr_pocz> = [#<sr_pocz>-#<pomijaj_srednica>] (pomijania używamy,gdy poprawiamy detal i cześć procedury już jest wykonana)
#<akt_start_x>=[#<sr_pocz>-#<pomijaj_srednica>]
#<z_k_stozka>=0
#<dl_stozka>=[abs[#<z_koncowe>]+abs[#<z_pocz>]]
#<akt_pozycja>=0
o5 if[#<dl_stozka> ne 0]
#<korekta_polozenia_fazki> = [#<szerokosc_fazki_s_k>*#<korekta>/#<dl_stozka>]
o5 else
#<korekta_polozenia_fazki>=0
o5 endif
o10 if[#<z_pocz> le #<z_koncowe>] (Zmiana kierunku odjazdu w osi Z gdy toczymy od lewej do prawej i poprawka wklęsłości fazki)
#<odjazd_z> = -[#<odjazd_z>]
o12 if[#<wkleslosc_fazki_s_k>eq 1]
#<wkleslosc_fazki_s_k>=0
o12 else
#<wkleslosc_fazki_s_k>=1
o12 endif
o10 endif
o15 if[#<posuw_koncowy> le 0]
#<posuw_koncowy>=#<posuw>
o15 endif
(Dojazd na pozycję roboczą)
g0 z[#<z_pocz>+#<odjazd_z>]
g0 x[#<sr_pocz> +#<odjazd_x>+#<korekta>]
(Planowanie czoła, od dowolnej wartości w plusie na Z do zera. Wykonywane opcjonalnie, zero wyłącza)
o40 if[#<czolo>gt 0]
#<akt_pozycja>=[#<z_pocz>+#<czolo>-#<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 0]
#<akt_pozycja> = [#<akt_pozycja> - #<przybranie_materialu>]
o52 if [#<akt_pozycja> lt 0]
#<akt_pozycja> = 0
o52 endif
g0 z#<akt_pozycja>
g1 x0 f[#<posuw_czolo>]
g0 z[#<akt_pozycja> + #<odjazd_z>]
g0 x[#<sr_pocz>+#<korekta>+#<odjazd_x>]
o50 endwhile
o40 endif
(Koniec planowania czoła, zaczynamy procedurę główną - walec, walec z korektą stożka, lub stożek)
o8000 if[#<stozek> eq 0]
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
g0 X[#<akt_start_x>]
G1 Z#<z_pocz> F#<posuw1>
G1 Z#<z_koncowe> x[#<akt_start_x>+#<korekta>] F#<posuw1>
G1 X[[#<akt_start_x>+#<korekta>]+#<odjazd_x>] Z[#<z_koncowe>-#<skos_z_k>] F#<posuw1>
g0 X[#<akt_start_x>+#<korekta>+#<odjazd_x>]
Z[#<z_pocz>+#<skos_z_p>+#<odjazd_z>] X[#<akt_start_x>+#<odjazd_x>]
o100 endwhile (koniec procedury głównej toczenie walca)
o8000 else (wykonuje się po zaznaczeniu stożka)
o20 if [#<kat_stozka> gt 0 and #<dl_stozka> gt 0]
(msg, Podajemy albo kąt albo długość stożka)
M30
o20 endif
#<korekta_konca_stozka>=#<korekta>
#<sr_materialu>=[#<sr_pocz>+#<korekta>]
#<sr_koncowa_1>=#<sr_pocz>
#<sr_pocz>=#<sr_koncowa>
#<sr_koncowa>=#<sr_koncowa_1>
#<korekta>=0
( jeżeli podany kąt)
o10000 if [#<kat_stozka> gt 0]
(---------- rosnacy z kątem ----------)
o11000 if [#<sr_pocz> lt #<sr_koncowa>]
#<krok> = 0
#<dl_stozka> = [[[#<sr_koncowa> - #<sr_pocz>] / 2] / tan[#<kat_stozka>]]
o11100 if [#<korekta> eq 0]
( jezeli srednica koncowa mniejsza niz material to zbieram naddatek)
o10100 if [#<sr_koncowa> lt #<sr_materialu>]
#<x_akt_start> = #<sr_materialu>
#<x_akt_koniec> = #<sr_koncowa>
o10200 while [#<x_akt_start> gt #<x_akt_koniec>]
#<x_akt_start> = [#<x_akt_start> - #<przybranie_materialu>]
o10300 if [#<x_akt_start> lt #<x_akt_koniec>]
#<x_akt_start> = #<x_akt_koniec>
o10300 endif
g0 z[#<z_pocz> + 1]
g0 x#<x_akt_start>
g1 z[#<z_pocz>] F#<posuw>
g1 z[#<z_pocz> - #<dl_stozka>] F#<posuw>
g1 x[#<x_akt_start> + #<przybranie_materialu>]
g0 z[#<z_pocz> + 1]
o10200 endwhile
o10100 endif
#<akt_start> = #<sr_koncowa>
g0 z[#<z_pocz> + 1]
o12000 while [#<akt_start> gt #<sr_pocz>]
#<akt_start> = [#<akt_start> - #<przybranie_materialu>]
#<krok> = [#<krok> + 1]
o13000 if [#<akt_start> lt #<sr_pocz>]
#<akt_start> = #<sr_koncowa>
o13000 endif
g0 x#<akt_start>
o14000 if [#<sr_koncowa> gt #<sr_materialu>]
#<sr_koncowa> = #<sr_materialu>
o14000 endif
g1 z#<z_pocz> F#<posuw>
( g1 x#<sr_koncowa> z[-1 * [[#<z_pocz> + [#<krok> * #<przybranie_materialu> / 2]] / tan[#<kat_stozka>]]] f#<posuw>)
g1 x#<sr_koncowa> z[#<z_pocz> - [[#<sr_koncowa> - #<akt_start>] / [2 * tan[#<kat_stozka>]]]] F#<posuw>
g0 z[#<z_pocz> + 1]
o12000 endwhile
o11100 else
(---------- korekta ----------)
g0 z[#<z_pocz> + 1] F#<posuw>
g0 x[#<sr_pocz> - #<korekta>]
g1 z[#<z_pocz>]
g1 x[#<sr_koncowa> - #<korekta>] z[#<z_pocz> - #<dl_stozka>] f#<posuw>
g0 z[#<z_pocz> + 1]
o11100 endif
o11000 endif
(---------- malejacy z kątem ----------)
o20000 if [#<sr_pocz> gt #<sr_koncowa>]
#<dl_stozka> = [[[#<sr_pocz> - #<sr_koncowa>] / 2] / tan[#<kat_stozka>]]
o21110 if [#<korekta> eq 0]
( jezeli srednica koncowa mniejsza niz material to zbieram naddatek)
o20100 if [#<sr_koncowa> lt #<sr_materialu>]
#<x_akt_start> = #<sr_materialu>
#<x_akt_koniec> = #<sr_pocz>
o20200 while [#<x_akt_start> gt #<x_akt_koniec>]
#<x_akt_start> = [#<x_akt_start> - #<przybranie_materialu>]
o20300 if [#<x_akt_start> lt #<x_akt_koniec>]
#<x_akt_start> = #<x_akt_koniec>
o20300 endif
g0 z[#<z_pocz> + 1]
g0 x#<x_akt_start>
g1 z[#<z_pocz> - #<dl_stozka>] F#<posuw>
g1 x[#<x_akt_start> + #<przybranie_materialu>]
g0 z[#<z_pocz> + 1]
o20200 endwhile
o20100 endif
#<akt_koniec> = #<sr_pocz>
o25000 while [#<akt_koniec> gt #<sr_koncowa>]
#<akt_koniec> = [#<akt_koniec> - #<przybranie_materialu>]
o21000 if [#<akt_koniec> lt #<sr_koncowa>]
#<akt_koniec> = #<sr_koncowa>
o21000 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>
o25000 endwhile
o21110 else
(---------- korekta ----------)
g0 z[#<z_pocz> + 1] F#<posuw>
g0 x[#<sr_pocz> - #<korekta>]
g1 z[#<z_pocz>]
g1 x[#<sr_koncowa> - #<korekta>] z[#<z_pocz> - #<dl_stozka>] f#<posuw>
g0 x[#<sr_pocz> + 1]
g0 z[#<z_pocz> + 1]
o21110 endif
o20000 endif
(--------------------)
o10000 else (kat == 0)
(--------------------)
(---------- rosnacy z długością ----------)
o20000 if [#<sr_pocz> lt #<sr_koncowa>]
#<krok> = 0
( jezeli srednica koncowa mniejsza niz material to zbieram naddatek)
o22220 if [#<korekta> eq 0]
o21100 if [#<sr_koncowa> lt #<sr_materialu>]
#<x_akt_start> = #<sr_materialu>
#<x_akt_koniec> = #<sr_koncowa>
o21200 while [#<x_akt_start> gt #<x_akt_koniec>]
#<x_akt_start> = [#<x_akt_start> - #<przybranie_materialu>]
o21300 if [#<x_akt_start> lt #<x_akt_koniec>]
#<x_akt_start> = #<x_akt_koniec>
o21300 endif
g0 z[#<z_pocz> + 1]
g0 x#<x_akt_start>
g1 z[#<z_pocz> - #<dl_stozka>] F#<posuw>
g1 x[#<x_akt_start> + #<przybranie_materialu>]
g0 z[#<z_pocz> + 1]
o21200 endwhile
o21100 endif
#<z_krok> = [[#<dl_stozka> * #<przybranie_materialu>] / [#<sr_koncowa> - #<sr_pocz>]]
#<x_akt_start> = #<sr_koncowa>
#<z_akt_koniec> = #<z_pocz>
o26000 while [#<x_akt_start> gt #<sr_pocz>]
#<x_akt_start> = [#<x_akt_start> - #<przybranie_materialu>]
#<krok> = [#<krok> + 1]
o26100 if [#<x_akt_start> lt #<sr_pocz>]
#<x_akt_start> = #<sr_pocz>
o26100 endif
#<z_akt_koniec> = [#<z_akt_koniec> - #<z_krok>]
o26200 if [#<z_akt_koniec> lt [#<z_pocz> - #<dl_stozka>]]
#<z_akt_koniec> = [#<z_pocz> - #<dl_stozka>]
o26200 endif
g0 z[#<z_pocz> + 1]
g0 x#<x_akt_start>
g1 z#<z_pocz> f#<posuw>
( o312 if[#<sr_koncowa> ge #<sr_materialu>])
g1 x#<sr_koncowa> z#<z_akt_koniec> f#<posuw>
( o312 else)
( g1 x#<sr_materialu> z#<z_akt_koniec> f#<posuw>)
( o312 endif)
g0 z#<z_pocz>
o26000 endwhile
o22220 else
(---------- korekta ----------)
g0 z[#<z_pocz> + 1] F#<posuw>
g0 x[#<sr_pocz> - #<korekta>]
g1 z[#<z_pocz>]
g1 x[#<sr_koncowa> - #<korekta>] z[#<z_pocz> - #<dl_stozka>] f#<posuw>
g0 z[#<z_pocz> + 1]
o22220 endif
o20000 endif
(---------- malejacy z długością ----------)
o30000 if [#<sr_pocz> gt #<sr_koncowa>]
o33330 if [#<korekta> eq 0]
( jezeli srednica koncowa mniejsza niz material to zbieram naddatek)
o30100 if [#<sr_pocz> lt #<sr_materialu>]
#<x_akt_start> = #<sr_materialu>
#<x_akt_koniec> = #<sr_pocz>
o30200 while [#<x_akt_start> gt #<x_akt_koniec>]
#<x_akt_start> = [#<x_akt_start> - #<przybranie_materialu>]
o30300 if [#<x_akt_start> lt #<x_akt_koniec>]
#<x_akt_start> = #<x_akt_koniec>
o30300 endif
g0 z[#<z_pocz> + 1]
g0 x#<x_akt_start>
g1 z[#<z_pocz> - #<dl_stozka>] F#<posuw>
g1 x[#<x_akt_start> + #<przybranie_materialu>]
g0 z[#<z_pocz> + 1]
o30200 endwhile
o30100 endif
#<akt_koniec> = #<sr_pocz>
o40000 while [#<akt_koniec> gt #<sr_koncowa>]
#<akt_koniec> = [#<akt_koniec> - #<przybranie_materialu>]
o41000 if [#<akt_koniec> lt #<sr_koncowa>]
#<akt_koniec> = #<sr_koncowa>
o41000 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>
o40000 endwhile
o33330 else
(---------- korekta ----------)
g0 z[#<z_pocz> + 1] F#<posuw>
g0 x[#<sr_pocz> - #<korekta>]
g1 z[#<z_pocz>]
g1 x[#<sr_koncowa> - #<korekta>] z[#<z_pocz> - #<dl_stozka>] f#<posuw>
g0 x[#<sr_pocz> + 1]
g0 z[#<z_pocz> + 1]
o33330 endif
o30000 endif
o10000 endif
#<sr_koncowa_1>=#<sr_pocz>
#<sr_pocz>=[#<sr_koncowa>+#<korekta_konca_stozka>]
#<sr_koncowa>=#<sr_koncowa_1>
;*****************************************(koniec stożka)
o8000 endif
(toczenie fazki na średnicy końcowej od zewnątrz)
o133 if[#<z_pocz> le #<z_koncowe>] (Ustawienie połączenia fazki ze stożkiem)
#<sr_koncowa>=[#<sr_koncowa>+#<korekta_polozenia_fazki>*3]
o133 else
#<sr_koncowa>=[#<sr_koncowa>+#<korekta_polozenia_fazki>]
o133 endif
o110 if [#<szerokosc_fazki_s_k> gt 0]
#<szerokosc_fazki_1> = #<pomijaj_faza_s_k>
#<glebokosc_fazki_1> = [#<glebokosc_fazki_s_k>*#<pomijaj_faza_s_k>/#<szerokosc_fazki_s_k>]
o111 while [#<szerokosc_fazki_1> lt #<szerokosc_fazki_s_k>]
#<szerokosc_fazki_1>=[#<szerokosc_fazki_1>+#<przybranie_materialu>]
#<glebokosc_fazki_1>=[#<glebokosc_fazki_1>+[#<glebokosc_fazki_s_k>*#<przybranie_materialu>/#<szerokosc_fazki_s_k>]]
o112 if [#<szerokosc_fazki_1> gt #<szerokosc_fazki_s_k>]
#<szerokosc_fazki_1> = #<szerokosc_fazki_s_k>
o112 endif
o113 if [#<glebokosc_fazki_1> gt #<glebokosc_fazki_s_k>]
#<glebokosc_fazki_1> = #<glebokosc_fazki_s_k>
o113 endif
o1300 if[#<z_pocz> ge #<z_koncowe>] (toczenie fazki od prawej do lewej)
G0 x[[#<sr_koncowa>]-#<glebokosc_fazki_1>*2]
g0 Z[#<z_pocz>+#<odjazd_z>]
G1 z[#<z_pocz>] F#<posuw>
o114 if [#<promien_fazki_s_k> lt 0.00001]
g1 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] F#<posuw>
o114 endif
o115 if [#<promien_fazki_s_k> gt 0]
o116 if [#<wkleslosc_fazki_s_k> gt 0]
g2 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o116 endif
o117 if [#<wkleslosc_fazki_s_k> lt 0.000001]
g3 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o117 endif
o115 endif
g0 x[[#<sr_koncowa>]+#<odjazd_x>]
g0 Z[#<z_pocz>+#<odjazd_z>]
o1300 else (toczenie fazki od lewej do prawej)
G0 x[[#<sr_koncowa>]-#<glebokosc_fazki_1>*2]
g0 Z[#<z_pocz>+#<odjazd_z>]
G1 z[#<z_pocz>] F#<posuw>
o124 if [#<promien_fazki_s_k> lt 0.00001]
g1 x[#<sr_koncowa>] z[#<z_pocz>+[#<szerokosc_fazki_1>]] F#<posuw>
o124 endif
o125 if [#<promien_fazki_s_k> gt 0]
o126 if [#<wkleslosc_fazki_s_k> gt 0]
g2 x[#<sr_koncowa>] z[#<z_pocz>+[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o126 endif
o127 if [#<wkleslosc_fazki_s_k> lt 0.000001]
g3 x[#<sr_koncowa>] z[#<z_pocz>+[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o127 endif
o125 endif
g0 x[[#<sr_koncowa>]+#<odjazd_x>]
Z[#<z_pocz>+#<odjazd_z>]
o1300 endif
o111 endwhile
o110 endif ( koniec fazki na średnicy końcowej )
(toczenie fazki na średnicy początkowej od zewnątrz)
#<sr_pocz>=[#<sr_pocz>+#<korekta>]
o5110 if [#<szerokosc_fazki_s_p> gt 0]
#<szerokosc_fazki_2> = #<pomijaj_faza_s_p>
#<glebokosc_fazki_2> = [#<glebokosc_fazki_s_p>*#<pomijaj_faza_s_p>/#<szerokosc_fazki_s_p>]
o5111 while [#<szerokosc_fazki_2> lt #<szerokosc_fazki_s_p>]
#<szerokosc_fazki_2>=[#<szerokosc_fazki_2>+#<przybranie_materialu>]
#<glebokosc_fazki_2>=[#<glebokosc_fazki_2>+[#<glebokosc_fazki_s_p>*#<przybranie_materialu>/#<szerokosc_fazki_s_p>]]
o5112 if [#<szerokosc_fazki_2> gt #<szerokosc_fazki_s_p>]
#<szerokosc_fazki_2> = #<szerokosc_fazki_s_p>
o5112 endif
o5113 if [#<glebokosc_fazki_2> gt #<glebokosc_fazki_s_p>]
#<glebokosc_fazki_2> = #<glebokosc_fazki_s_p>
o5113 endif
o5300 if[#<z_pocz> ge #<z_koncowe>] (toczenie fazki na średnicy początkowej od prawej do lewej)
G0 x[[#<sr_pocz>]-#<glebokosc_fazki_2>*2]
g0 Z[#<z_koncowe>+#<odjazd_z>]
G1 z[#<z_koncowe>] F#<posuw>
o5114 if [#<promien_fazki_s_p> lt 0.00001]
g1 x[#<sr_pocz>] z[#<z_koncowe>-[#<szerokosc_fazki_2>]] F#<posuw>
o5114 endif
o5115 if [#<promien_fazki_s_p> gt 0]
o5116 if [#<wkleslosc_fazki_s_p> gt 0]
g2 x[#<sr_pocz>] z[#<z_koncowe>-[#<szerokosc_fazki_2>]] r[#<promien_fazki_s_p>] F#<posuw>
o5116 endif
o5117 if [#<wkleslosc_fazki_s_p> lt 0.000001]
g3 x[#<sr_pocz>] z[#<z_koncowe>-[#<szerokosc_fazki_2>]] r[#<promien_fazki_s_p>] F#<posuw>
o5117 endif
o5115 endif
g0 x[[#<sr_pocz>]+#<odjazd_x>]
g0 Z[#<z_koncowe>+#<odjazd_z>]
o5300 else (toczenie fazki na średnicy początkowej od lewej do prawej)
G0 x[[#<sr_pocz>]-#<glebokosc_fazki_2>*2]
g0 Z[#<z_koncowe>+#<odjazd_z>]
G1 z[#<z_koncowe>] F#<posuw>
o5124 if [#<promien_fazki_s_p> lt 0.00001]
g1 x[#<sr_pocz>] z[#<z_koncowe>+[#<szerokosc_fazki_2>]] F#<posuw>
o5124 endif
o5125 if [#<promien_fazki_s_p> gt 0]
o5126 if [#<wkleslosc_fazki_s_p> gt 0]
g3 x[#<sr_pocz>] z[#<z_koncowe>+[#<szerokosc_fazki_2>]] r[#<promien_fazki_s_p>] F#<posuw>
o5126 endif
o5127 if [#<wkleslosc_fazki_s_p> lt 0.000001]
g2 x[#<sr_pocz>] z[#<z_koncowe>+[#<szerokosc_fazki_2>]] r[#<promien_fazki_s_p>] F#<posuw>
o5127 endif
o5125 endif
g0 x[[#<sr_pocz>]+#<odjazd_x>]
Z[#<z_koncowe>+#<odjazd_z>]
o5300 endif
o5111 endwhile
o5110 endif ( koniec fazki na średnicy początkowej )
(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
o1000 else (Procedura główna - roztaczanie walca lub stożek od wewnątrz)
#<sr_pocz> = [#<sr_pocz>+#<pomijaj_srednica>] (pomijania używamy,gdy poprawiamy detal i cześć procedury już jest wykonana)
o1500 if[[#<noz_wstepny> ne 0]]
o<loadtool> call [#<noz_wstepny>]
o1500 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 na średnicy końcowej roztaczanie)
#<odjazd_x>=[#<odjazd_x>*2+#<przybranie_materialu>]
#<roznica_srednic>=[#<sr_pocz>-#<sr_koncowa>]
#<sr_pocz> = [#<sr_pocz>+#<pomijaj_srednica>] (pomijania używamy,gdy poprawiamy detal i cześć procedury już jest wykonana)
#<akt_start_x>=#<sr_pocz>
#<z_k_stozka>=0
#<dl_stozka>=[abs[#<z_koncowe>]+abs[#<z_pocz>]]
#<korekta_polozenia_fazki> = [#<szerokosc_fazki_s_k>*#<korekta>/[#<dl_stozka>]]
o170 if[#<wkleslosc_fazki_s_k>eq 1]
#<wkleslosc_fazki_s_k>=0
o170 else
#<wkleslosc_fazki_s_k>=1
o170 endif
o189 if[#<z_pocz> le #<z_koncowe>]
#<sr_koncowa>=[#<sr_koncowa>+#<korekta_polozenia_fazki>*3]
o189 else
#<sr_koncowa>=[#<sr_koncowa>+#<korekta_polozenia_fazki>]
o189 endif
o188 if[#<sr_koncowa> lt #<sr_pocz>]
o188 endif
o180 if [#<szerokosc_fazki_s_k> gt 0]
#<szerokosc_fazki_1> = #<pomijaj_faza_s_k>
#<glebokosc_fazki_1> = [#<glebokosc_fazki_s_k>*#<pomijaj_faza_s_k>/#<szerokosc_fazki_s_k>]
o181 while [#<szerokosc_fazki_1> lt #<szerokosc_fazki_s_k>]
#<szerokosc_fazki_1>=[#<szerokosc_fazki_1>+#<przybranie_materialu>]
#<glebokosc_fazki_1>=[#<glebokosc_fazki_1>+[#<glebokosc_fazki_s_k>*#<przybranie_materialu>/#<szerokosc_fazki_s_k>]]
o182 if [#<szerokosc_fazki_1> gt #<szerokosc_fazki_s_k>]
#<szerokosc_fazki_1> = #<szerokosc_fazki_s_k>
o182 endif
o183 if [#<glebokosc_fazki_1> gt #<glebokosc_fazki_s_k>]
#<glebokosc_fazki_1> = #<glebokosc_fazki_s_k>
o183 endif
o1380 if[#<z_pocz> ge #<z_koncowe>]
G0 x[[#<sr_koncowa>]+#<glebokosc_fazki_1>*2] ( wjazd do fazki na fi #<sr_koncowa> +- zmienia)
g0 Z[#<z_pocz>+#<odjazd_z>]
G1 z[#<z_pocz>] F#<posuw>
o184 if [#<promien_fazki_s_k> lt 0.00001]
g1 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] F#<posuw> ( toczenie fazki na fi #<sr_pocz>)
o184 endif
o185 if [#<promien_fazki_s_k> gt 0]
o186 if [#<wkleslosc_fazki_s_k> gt 0]
g2 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o186 endif
o187 if [#<wkleslosc_fazki_s_k> lt 0.000001]
g3 x[#<sr_koncowa>] z[#<z_pocz>-[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o187 endif
o185 endif
g0 x[[#<sr_koncowa>]-#<odjazd_x>]
g0 Z[#<z_pocz>+#<odjazd_z>]
o1380 else
G0 x[[#<sr_koncowa>]-#<glebokosc_fazki_1>*2]
g0 Z[#<z_pocz>+#<odjazd_z>]
G1 z[#<z_pocz>] F#<posuw>
o194 if [#<promien_fazki_s_k> eq 0]
g1 x[#<sr_koncowa>] z[#<z_pocz>+[#<szerokosc_fazki_1>]] F#<posuw>
o194 endif
o195 if [#<promien_fazki_s_k> gt 0]
o196 if [#<wkleslosc_fazki_s_k> gt 0]
g2 x[#<sr_koncowa>] z[#<z_pocz>+[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o196 endif
o197 if [#<wkleslosc_fazki_s_k> eq 0]
g3 x[#<sr_koncowa>] z[#<z_pocz>+[#<szerokosc_fazki_1>]] r[#<promien_fazki_s_k>] F#<posuw>
o197 endif
o195 endif
g0 x[[#<sr_koncowa>]-#<odjazd_x>]
Z[#<z_pocz>+#<odjazd_z>]
o1380 endif
o181 endwhile ( koniec pętli )
o180 endif ( koniec fazki na średnicy końcowej )
(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
o1000 endif (koniec procedury głównej bez inwersji)
g54
M5 M9 ; stop wrzeciona, chłodziwo stop
o<toczenie> endsub