Kobyła pełnej krwi z wmontowanym stożkiem i korektą. W wersji kamara korekta po prostu wyłącza wszystko, poza końcowym przebiegiem, który wykonuje z przesunięciem zadanym w polu korekta. W kobyle jest to pole "Ile mm średnicy pominąć". Idea takiej korekty jest dobra, ale nie da się powrócić do toczenia w połowie operacji stosując korektę. Niestety, wszystkiego na raz mieć nie można. Chyba, że znowu podwoję liczbę pól na korektę, albo dodam pole zmieniające system korekty...
Implementacja stożka w tej chwili wygląda tak:
Stożek wykonywany jest pomiędzy średnicami na długości określonej przez początek i koniec na Z.
Korekta stożka nie ingeruje w sam stożek, tylko zdejmuje materiał od jego podstawy do średnicy surowego wałka, którą program wylicza sumując średnicę podstawy stożka (średnicę początkową) z wartością, wpisaną w polu korekta.
Słowem - jak wkładamy w uchwyt wałek fi 100, a chcemy wytoczyć stożek od fi 40 do fi 50, to korekta wyniesie 50. Program za średnicę początkową uznaje wartość 50, a nie 40. Jest to nieintuicyjne, więc ulegnie niedługo zmianie.
Niemniej - do używania tego jako zamiennika procedury stożek kamara wystarczy pamiętać, że wprowadzamy w polu korekta różnicę średnicy materiału i podstawy stożka, zamiast średnicy surowego wałka w kamarowym skrypcie.
I kolejny pomysł - nie będę więcej wsadzał całego kodu podprocedury.
Kod: Zaznacz cały
o8000 else (wykonuje się po zaznaczeniu stożka)
#<sr_materialu>=[#<sr_pocz>+#<korekta>]
o<stozek> call [#<sr_materialu>][#<sr_koncowa>][#<sr_pocz>][#<z_pocz>][#<dl_stozka>][#<kat_stozka>][#<przybranie_materialu>][#<posuw>][#<pomijaj_srednica>][#<woda>]
#<sr_pocz>=[#<sr_pocz>+#<korekta>]
o8000 endif
To mi osadza kod kamara w kobyle. Czyli to jest właściwy trop. Muszę wydzielić z kobyły poszczególne operacje do osobnych plików .ngc, a kobyła ma je tylko integrować, wywołując z odpowiednimi parametrami. Wtedy można ich używać po kamarowemu ze wszelkimi ograniczeniami, albo wywołać przez kobyłę z regulacją dodatkowych parametrów i integracją z innymi.
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)
#<sr_materialu>=[#<sr_pocz>+#<korekta>]
o<stozek> call [#<sr_materialu>][#<sr_koncowa>][#<sr_pocz>][#<z_pocz>][#<dl_stozka>][#<kat_stozka>][#<przybranie_materialu>][#<posuw>][#<pomijaj_srednica>][#<woda>]
#<sr_pocz>=[#<sr_pocz>+#<korekta>]
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>+#<pomijaj_srednica>]
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>+#<pomijaj_srednica>] F#<posuw1>
G0 X[#<Current-Diameter>+#<pomijaj_srednica>-#<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