Myślałem nad takim subem i to jest do zrobienia, ale potrzeba kawałek programisty. Znasz takiego ?

https://www.practicalmachinist.com/vb/c ... le-376081/
Kod: Zaznacz cały
( ------------------------------ )
( PRZEJAZD I PLANOWANIE )
( ------------------------------ )
( KW )
( Time-stamp: <2022-03-25 17:09> )
( ------------------------------ )
(info: Przejazd)
o<przejazd> sub
#<X0> = #1 (=0 X początkowy)
#<X1> = #2 (=10 X końcowy)
#<Y0> = #3 (=0 Y początkowy)
#<Y1> = #4 (=10 Y końcowy)
#<glebokosc> = #5 (=0.05 głębokość)
#<glebokosc_poczatkowa> = #6 (=0 głębokość początkowa )
#<skok> = #7 (=0.01 skok)
#<predkosc_bok> = #8 (=1000 prędkość bok)
#<predkosc_dol> = #9 (=1000 prędkość dół)
#<kopanie_szybkie> = #10 (=0 <> szybki wjazd)
#<szlifowanie_dwustronne> = #11 (=1 szlifowanie w dwie strony)
#<woda> = #12 (=1 <> chłodzenie)
#<frez> = #13 (=20 sciernica)
#<planowanie> = #14 (=1 planowanie powierzchni)
#<nachodzenie> = #15 (=15 zachodzenie sciernicy w mm)
#<kierunek> = #16 (=1 <> kierunek)
( ------------------------------ )
( ------------------------------ )
g17 g21 g61
g0 z5
g0 x#<X0> y#<Y0>
m3 s1
o1 if [#<woda> eq 1]
m8
o1 endif
#<przyrost> = [#<frez> - #<nachodzenie>]
#<x_pocz> = #<X0>
#<x_kon> = #<X1>
#<y_pocz> = #<Y0>
#<y_kon> = #<Y1>
#<glebokosc> = [#<glebokosc> * -1] ( koncowy Z )
#<akt_glebokosc> = #<glebokosc_poczatkowa> ( aktualna glebokosc )
o100 while [#<akt_glebokosc> GT #<glebokosc>]
#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>] ( ustalenie glebokosci )
( jezeli nizej limitu to jade max )
o110 if [#<akt_glebokosc> LT #<glebokosc>]
#<akt_glebokosc> = #<glebokosc>
o110 endif
o115 if [#<kopanie_szybkie>]
G0 z[#<glebokosc>]
o115 else
G0 z[#<akt_glebokosc> + #<skok> + 1]
G1 z[#<akt_glebokosc>] f[#<predkosc_dol>]
o115 endif
o116 if[#<planowanie>]
o118 if[#<szlifowanie_dwustronne>] (szlifowanie od y zera do y koncowego i spowrotem)
#<kierunek_szlifu> = #<kierunek>
o140 if[#<kierunek_szlifu>]
#<y_pocz> = #<Y0>
G1 y#<y_pocz> F#<predkosc_bok>
G1 x#<x_kon> F#<predkosc_bok>
G1 x#<x_pocz> F#<predkosc_bok>
o150 while [#<y_pocz> LT #<Y1>]
#<y_pocz> = [#<y_pocz> + #<przyrost>]
o160 if [#<y_pocz> GT #<Y1>]
#<y_pocz> = #<Y1>>
o160 endif
(frezowanie)
G1 y#<y_pocz> F#<predkosc_bok>
G1 x#<x_kon> F#<predkosc_bok>
(powrot)
G1 x#<x_pocz> F#<predkosc_bok>
o150 endwhile
G0 x#<X0> y#<Y0>
#<kierunek> = 0
o140 else
#<y_kon> = #<Y1>
G1 y#<y_kon> F#<predkosc_bok>
G1 x#<x_kon> F#<predkosc_bok>
G1 x#<x_pocz> F#<predkosc_bok>
o151 while [#<y_kon> GT #<Y0>]
#<y_kon> = [#<y_kon> - #<przyrost>]
o161 if [#<y_kon> LT #<y_pocz>]
#<y_kon> = #<y_pocz>
o161 endif
(szlifowanie)
G1 y#<y_kon> F#<predkosc_bok>
G1 x#<x_kon> F#<predkosc_bok>
(powrot)
G1 x#<x_pocz> F#<predkosc_bok>
o151 endwhile
G0 x#<X0> y#<Y1>
#<kierunek> = 1
o140 endif
o118 else (szlifowanie od y zera do y koncowego)
#<y_pocz> = #<Y0>
G1 x#<x_kon> F#<predkosc_bok>
G1 x#<x_pocz> F#<predkosc_bok>
o121 while [#<y_pocz> LT #<y_kon>]
#<y_pocz> = [#<y_pocz> + #<przyrost>]
o122 if [#<y_pocz> GT #<y_kon>]
#<y_pocz> = #<y_kon>
o122 endif
(szlifowanie)
G1 y#<y_pocz>
G1 x#<x_kon> F#<predkosc_bok>
(powrot)
G1 x#<x_pocz> F#<predkosc_bok>
o121 endwhile
G0 x#<X0> y#<Y0>
o118 endif
o116 else
G1 x#<X1> y#<Y1> F#<predkosc_bok> ( przejazd )
(sprawdzam czy to szlifowanie w dwie strony)
o120 if[#<szlifowanie_dwustronne>]
G1 x#<X0> y#<Y0> F#<predkosc_bok> ( przejazd w druga strone)
o120 else
(sprawdzam czy to koncowa glebokosc czy wracac)
o130 if[#<akt_glebokosc> GT #<glebokosc>]
G0 z[#<glebokosc_poczatkowa> + 2]
G0 x#<X0> y#<Y0>
o130 endif
o116 endif
o100 endwhile
o<przejazd> endsub
Pewnie już dawno nieaktualne ( jakoś mi umknęło
Kod: Zaznacz cały
( ------------------------------ )
( szlifowanie )
( ------------------------------ )
( Kamar )
( Time-stamp: <2018-04-06 14:00> )
( ------------------------------ )
(info: Przejazd)
o<szlif> sub
#<X0> = #1 (=0 przejazd początek)
#<X1> = #2 (=-100 - / - koniec )
#<Y0> = #3 (=0 Y początkowy)
#<Y1> = #4 (=-40 Y końcowy)
#<Z0> = #5 ( Z początkowy)
#<Z1> = #6 (=10 Z końcowy)
#<dob_Y> = #7 (=5 dobieranie Y)
#<dob_Z> = #8 (=0.01 dobieranie Z)
#<predkosc> = #9 (=9000 prędkość stołu)
#<zabielanie> = #10 (=1 <> zabielanie)
#<x_diament> = #11 (=20 X diamentu)
#<y_diament> = #12 (=20 Y diamentu)
#<ofset> = #13 (=0.05 offset diamentu)
#<koniec> = #14 (=1 wyiskrzanie)
#<w_z> = #15 (=25 wyjazd Z)
#<w_x> = #16 (=0 wyjazd X)
#<w_y> = #17 (=0 wyjazd Y)
( ------------------------------ )
( ------------------------------ )
o20 if [#<w_z> lt #<Z0> ]
(msg, KOLIZJA ! zły wyjazd)
M30
m6 t1
g43
o20 endif
G0 G17 G40 G49 G80 G90
g21 g61
g0 z[#<Z0> + 2]
g0 x#<X0> y#<Y0>
m3 s100
#<bylo_zabielanie> = 0
#<wysokosc_zabielania> = 0.01
(najpierw Z)
#<akt_glebokosc> = #<Z0> (aktualny Z)
G0 X#<X0>
o300 while [#<akt_glebokosc> GT #<Z1>]
#<akt_glebokosc> = [#<akt_glebokosc> - #<dob_Z>] ( ustalenie glebokosci )
( jezeli nizej limitu to jade max )
o310 if [#<akt_glebokosc> LT #<Z1>]
#<akt_glebokosc> = #<Z1>
o310 endif
( zabielanie )
o1000 if [#<zabielanie> EQ 1 AND #<bylo_zabielanie> EQ 0 AND [#<akt_glebokosc> - #<Z1>] LT #<wysokosc_zabielania>]
#<bylo_zabielanie> = 1
G0 Z[#<akt_glebokosc> + 2]
G0 X#<x_diament> Y#<y_diament>
G0 Z#<ofset>
G1 Z[#<ofset>-0.05] f400
G1 Y[#<y_diament> +30] f400
g1 y#<y_diament>
g92 z#<ofset>
g92.1
G0 Z[#<akt_glebokosc>+2]
G0 X#<X0> Y#<Y0>
G1 Z#<akt_glebokosc>
o1000 endif
G0 z[#<akt_glebokosc>]
(... przejazd po Y)
#<akt_Y> = #<Y0> ( aktualny Y )
o320 if [#<Y0> LT #<Y1>]
(Y w górę)
o330 while [#<akt_Y> LT #<Y1>]
#<akt_Y> = [#<akt_Y> + #<dob_Y>] ( ustalenie Y )
( jezeli wyżej limitu to jade max )
o335 if [#<akt_Y> GT #<Y1>]
#<akt_Y> = #<Y1>
o335 endif
G0 Y#<akt_Y>
G1 x#<X1> F#<predkosc> ( przejazd )
G0 X#<X0>
o330 endwhile
o320 else
(Y w dół)
#<akt_Y> = [#<akt_Y> + #<dob_Y>]
o340 while [#<akt_Y> GT #<Y1>]
#<akt_Y> = [#<akt_Y> - #<dob_Y>] ( ustalenie Y )
( jezeli nizej limitu to jade max )
o345 if [#<akt_Y> LT #<Y1>]
#<akt_Y> = #<Y1>
o345 endif
G0 Y[#<akt_Y>]
G1 x#<X1> F#<predkosc> ( przejazd )
G0 X#<X0>
o340 endwhile
o320 endif
o300 endwhile
g0 z#<w_z>
g0 x#<w_x>
g0 y#<w_y>
o<szlif> endsub
Kod: Zaznacz cały
o<ciecie_z_faza> sub
#<sr_pocz> = #1 (=60 Średnica początkowa)
#<sr_koncowa> = #2 (=30 srednica koncowa)
#<z_pocz> = #3 (=0 Z początkowe)
#<szerokosc_fazy> = #4 (=2 Szerokość fazy)
#<posuw> = #5 (=21 Posuw)
#<pozycja koncowa Z> = #6 (=0 pozycja koncowa Z)
#<pauza> = #7 (=0 pauza)
#<narzedzie> =#8 (=1 narzedzie)
g61
#8=1
g0 x[#1+3]
z#3
g1 f90 x#1
g1 f#5 x[#1-#4*2]
g0 x[#1+0.3]
z[#4+#3] (szerokosc fazy)
g1 x#1
x[#1-#4*2] z#3 (glebokosc fazy)
g0 x[#1+0.3]
z-[#4-#3] (szerokosc fazy)
g1 x#1
z#3 x[#1-#4*2] (glebokosc fazy)
x#2 (glebokosc ciecia)
g4 p#7
g1 f900 x#1
g0 x[#1+10]
z#6 (przesuniecie osi z)
o<ciecie_z_faza> endsub
ty to zaraz z grubej rury przeglądam sobie takie różności i pytam ?kamar pisze:A robienie tak tego czegoś to szczyt głupoty.