Ja o takim oszczędzaniu to mówię - zapałka na cztery, flaszka na razIMPULS3 pisze:Wielkie dzięki,a jakos brak czasu aby się nią zająć.

Moje wszystkie trzy przerobione , w tym jedna bezpośrednio.
Wróć do „Pomysłowo skonfigurowany Emc.”
Kod: Zaznacz cały
( ------------------------------ )
( K O L O S T O Z K O W E )
( ------------------------------ )
( Kamar )
( Time-stamp: <2013-01-14 09:56> )
( ------------------------------ )
( USTAWIENIA )
( ------------------------------ )
o<kolo_stozkowe> sub
#<obr> = #1 (=1500 obroty)
#<liczba_zebow> = #2 (=30 liczba zębów)
#<dlugosc> = #3 (=20 dlugość zęba)
#<wyjazd> = #4 (=40 wyjazd)
#<glebokosc> = #5 (=2.25 wysokość zęba)
#<kat_korekty> = #6 (=1 kąt korekty)
#<predkosc> = #7 (=60 prędkosć)
#<woda> = #8 (=0 <> chłodzenie)
#<w_z> = #9 (wyjazd Z)
#<w_x> = #10 (wyjazd X)
#<w_y> = #11 (wyjazd Y)
m3 s#<obr>
o1 if [#<woda> eq 1]
m8
o1 endif
(licze kat korekty na koncu)
#<a2> = [[#<wyjazd> * #<kat_korekty>] / #<dlugosc>]
#<zab> = 0
g0 y-1
g0 x#<wyjazd>
g0 a0
g0 z0
o100 while [#<zab> LT #<liczba_zebow>]
#<zab> = [#<zab> + 1]
#<kat> = [360 / #<liczba_zebow> * #<zab>]
g0 a#<kat>
g0 y#<glebokosc>
g1 x0 f#<predkosc>
g0 y-1
g0 x#<wyjazd>
o200 if[#<a2> gt 0]
g0 a[#<kat> + #<a2>]
g0 y#<glebokosc>
g1 x0 a#<kat> f#<predkosc>
g0 y-1
g0 x#<wyjazd>
g0 y#<glebokosc>
g0 a[#<kat> - #<a2>]
g1 x0 a#<kat> f#<predkosc>
g0 y-1
g0 x#<wyjazd>
o200 endif
o100 endwhile
g0 z#<w_z>
g0 x#<w_x>
g0 y#<w_y>
o<kolo_stozkowe> endsub
Kod: Zaznacz cały
( ------------------------------ )
( Z E W N E T R Z N A )
( ------------------------------ )
( Kamar )
( Time-stamp: <2013-11-14 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)
#<poczatek> = #7 (=0 początek)
#<koniec> = #8 (=-20 koniec)
#<posuw> = #9 (=50 posuw)
#<fazka> = #10 (=0 fazka)
#<w_z> = #11 (=5 Z do zmiany)
#<w_x> = #12 (=20 X do zmiany)
#<woda> = #13 (=1 <> chłodzenie)
#<korekta> = #14 (=0 <> korekta)
o20 if [#<w_z> lt #<poczatek> or #<w_x> lt #<sr_koncowa>]
(msg, KOLIZJA ! zły wyjazd)
M30
o20 endif
M6 T#<nr> G43
o2 if [#<odboczka> eq 1]
#<obr> = [#<obr> * 8]
o2 endif
g61 g80
m3 s#<obr>
o1 if [#<woda> eq 1]
M8
o1 endif
g0 z[#<poczatek> + 1]
g0 x[#<sr_pocz> + 1]
o1000 if [#<korekta> eq 0]
o10 while [#<sr_pocz> gt #<sr_koncowa>]
#<sr_pocz>=[#<sr_pocz> - #<dobieranie>]
o402 if [#<sr_pocz> lt #<sr_koncowa>]
#<sr_pocz> = #<sr_koncowa>
o402 endif
g0 x#<sr_pocz>
g1 z#<koniec> f#<posuw>
g1 x[#<sr_pocz> + #<dobieranie>]
g0 z[#<poczatek> + 1]
o10 endwhile
o1000 else
g0 x#<sr_koncowa> z[#<poczatek>+1]
g1 z#<koniec> f#<posuw>
g1 x[#<sr_koncowa> + #<dobieranie>]
g0 z[#<poczatek> + 1]
o1000 endif
o100 if [#<fazka> gt 0]
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]
o100 endif
g0 x#<w_x>
g0 z#<w_z>
o<zew> endsub
Kolega nie przesadza, toż to proste jak drut (skoro ja potrafięsyntetyczny pisze:kamar bije kolega na głowę takim skrypciorami,
Kod: Zaznacz cały
( ------------------------------ )
( B A R Y L K I )
( ------------------------------ )
( Kamar )
( Time-stamp: <2012-01-19 15:10> )
(info: Toczenie baryłek )
o<barylki> sub
#<srednica> = #1 (=50 średnica)
#<dlugosc_barylki> = #2 (=29 długość baryłki)
#<promien> = #3 (=100 promień)
#<odstep> = #4 (=0 odstep)
#<liczba_barylek> = #5 (=1 liczba baryłek)
( ------------------------------ )
( ------------------------------ )
g18
M3 S1 m8
g0 z0.1
x#<srednica>
#<nr_barylki> = 0
o100 while [#<nr_barylki> lt #<liczba_barylek>]
#<poczatek_aktualnej> = [[-1 * #<dlugosc_barylki> * #<nr_barylki>] - [#<odstep> * #<nr_barylki>]]
g3 x#<srednica> z[#<poczatek_aktualnej> - #<dlugosc_barylki>] r#<promien> f40
g1 z[#<poczatek_aktualnej> - #<dlugosc_barylki> - #<odstep>]
#<nr_barylki> = [#<nr_barylki> + 1]
o100 endwhile
g0 x[#<srednica> +20] m5
z0
o<barylki> endsub
Kod: Zaznacz cały
( ------------------------------ )
( KIESZEŃ PROSTOKĄTNA )
( ------------------------------ )
( Kamar )
( Time-stamp: <2012-02-19 14:26> )
( ------------------------------ )
(info: Frezowanie kieszeni prostokątnej )
o<kieszen> sub
#<frez> = #1 (=8 frez)
#<x_pocz> = #2 (=20 X początkowy)
#<x_kon> = #3 (=10 X końcowy )
#<y_pocz> = #4 (=10 Y początkowy)
#<y_kon> = #5 (=190 Y końcowy )
#<glebokosc> = #6 (=-10 głębokość )
#<glebokosc_poczatkowa> = #7 (=0 głębokość poczatkowa )
#<skok> = #8 (=2 skok)
#<predkosc_bok> = #9 (=60 prędkość bok)
#<predkosc_dol> = #10 (=40 prędkość dół)
#<pokrycie> = #11 (=1 zachodzenie w mm )
( ------------------------------ )
( ------------------------------ )
#<przyrost>=[#<frez>-#<pokrycie>]
#<x_fak>=[#<x_kon>-[#<frez>/2]]
g17 g21 g61
/g0 x[#<x_pocz>+[#<frez>/2]] y[#<y_pocz>+[#<frez>/2]]
/g0 z2
m3 s1
m8
#<akt_glebokosc> = #<glebokosc_poczatkowa> ( aktualna glebokosc )
#<x_akt>=[#<x_pocz>+[#<frez>/2]]
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
g0 x#<x_akt> y[#<y_kon>-[#<frez>/2]]
g0 z[#<akt_glebokosc> + #<skok>]
G1 Z#<akt_glebokosc> F#<predkosc_dol> ( dobieranie poczatkowe )
y[#<y_pocz>+[#<frez>/2]] f#<predkosc_bok>
o120 while [#<x_akt> lt #<x_fak>]
#<x_akt>=[#<x_akt>+[#<frez>-#<pokrycie>]]
( jezeli nizej limitu to jade max )
o111 if [#<x_akt> gT #<x_fak>]
#<x_akt> = #<x_fak>
o111 endif
#<dodaj>=[#<x_akt>+#<przyrost>]
x#<x_akt>
G1 y[#<y_kon>-[#<frez>/2]] f#<predkosc_bok>
o112 if [ #<dodaj> gT #<x_fak>]
#<dodaj> = #<x_fak>
o112 endif
x#<dodaj>
#<x_akt>=[#<x_akt>+#<przyrost>]
y[#<y_pocz>+[#<frez>/2]] f#<predkosc_bok>
o120 endwhile
g0 z10
#<x_akt>=[#<x_pocz>+[#<frez>/2]]
g0 x#<x_akt> y[#<y_kon>-[#<frez>/2]]
o100 endwhile
g0 z10
#<akt_glebokosc> = #<glebokosc_poczatkowa> ( aktualna glebokosc )
o130 while [#<akt_glebokosc> GT #<glebokosc>]
#<akt_glebokosc> = [#<akt_glebokosc> - #<skok>] ( ustalenie glebokosci )
( jezeli nizej limitu to jade max )
o131 if [#<akt_glebokosc> lT #<glebokosc>]
#<akt_glebokosc> = #<glebokosc>
o131 endif
g0 z[#<akt_glebokosc> +1]
G1 Z#<akt_glebokosc> F#<predkosc_dol> ( dobieranie poczatkowe )
g1 y[#<y_pocz>+[#<frez>/2]]
x[#<x_kon>-[#<frez>/2]]
y[#<y_kon>-[#<frez>/2]]
x[#<x_pocz>+[#<frez>/2]]
o130 endwhile
g0 z10
o<kieszen> endsub
Niby proste ale w teoriiMlKl pisze: byłoby stworzenie kilku wariantów pliku .ini z pogrupowaniem odpowiednio dobranych przycisków - a procedurę własną i tak z każdej konfiguracji można poskładać dowolnie.
Dla mnie NGCGUI to raczej narzędzie umożliwiające obsługę maszyny bez głębszej znajomości pisania g-kodów ( pętli, subów, calli itp) I raczej nie ma co tego komplikować. Średnio kumaty tokarz czy frezer ma przycisk do określonej procedurki , podaje parametry i wykonuje.MlKl pisze: Albo przepisać to, co jest, żeby można się poruszać było w tył w trakcie edycji i móc obejrzeć w dowolnym momencie wizualizację i znowu wrócić do edycji. .