NGCGUI - toczenie, mocno rozbudowana procedura
-
- Lider FORUM (min. 2000)
- Posty w temacie: 99
- Posty: 16283
- Rejestracja: 18 wrz 2010, 06:17
- Lokalizacja: Kozienice
- Kontakt:
Pewnie, że bądż dumny, przecie mogłes kręcić korbkamiMlKl pisze:
Impuls - nie przejmuj się - masz prawo być z siebie dumny. )


Jasne że konkretny przykład jest do pisania z palca. Ale nie tak. Od pętli nie uciekniesz a to zadna filozofia. Masz najprostrzy przykład do analizy.
Kod: Zaznacz cały
g80 g61
G0 x0 y0 z5
#1=0 ( deklaracja zmiennej)
g0 z0
o10 while [#1 gt -19] (początek pętli okreslenie głębokości )
#1=[#1-1] ( wartość przybrania)
g1 z#1 f30
x100 (wszystko między początkim a koncem petli bedzie wykonywane 19 razy)
y100
x0
y0
o10 endwhile (koniec pętli)
g0 z15
m30

Twój kod wzadzony na beszczela w pętle :
Kod: Zaznacz cały
g80 g61
G0 x0 y0 z5
#1=0 ( deklaracja zmiennej)
g0 z0
o10 while [#1 gt -20] (początek pętli okreslenie głębokości )
#1=[#1-4] ( wartość przybrania)
g1 f30
x0 y0 z0
z#1 (frez fi 8 )
x45
y-30
x71
y0
g0
z5
y-30
z#1
g1 f30
x87
y0
g0
z5
y-30
z#1
g1 f30
x103
y0
g0
z5
y-30
z#1
g1 f30
x129
y0
x185 (pierwszy bok-połowa)
g0 z50
y75
z0
g1 f30
z#1
x129
y105
x103
y75
g0
z5
y105
z#1
g1 f30
x87
y75
g0
z5
y105
z#1
g1 f30
x71
y75
g0
z5
y105
z#1
g1 f30
x45
y75
x0
g0
z50
y0 x0
o10 endwhile (koniec pętli)
g0 z15
m30

-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 143
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
Zapisać i wykonać potem wielokrotnie można bez problemu, nie da się tylko zapisanego kodu wciągnąć z powrotem do NGCGUI.kamar pisze: Oczywistym mamkamentem jest brak mozliwosci zapisania tego układu ale to już inna bajka.
Efektem działania zakładki w NGCGUI jest coś takiego:
Kod: Zaznacz cały
o<toczenie> call [0][0][0][20][15][0.3][150][-10][0][0][0][0][0][0][0][0][0][1][1][0][0][99][99][0][0][0][0][0][0][8]
Kod: Zaznacz cały
o<toczenie> call [0][0][0][20][15][0.3][150][-10][0][0][0][0][0][0][0][0][0][1][1][0][0][99][99][0][0][0][0][0][0][8]
o<toczenie> call [0][0][0][15][10][0.3][150][-5][0][0][0][0][0][0][0][0][0][1][1][0][0][99][99][0][0][0][0][0][0][8]
Kod: Zaznacz cały
(ngcgui: FEATURE 121124:11.35.47)
(ngcgui: files: </home/miki/linuxcnc/nc_files/ngcgui_lib/lathe/lathe_std.ngc ../../../nc_files/ngcgui_lib/lathe/toczenie.ngc >)
(ngcgui: feature line added) #<_feature:> = 0
(ngcgui: preamble file: /home/miki/linuxcnc/nc_files/ngcgui_lib/lathe/lathe_std.ngc)
g18 (xz plane)
g21 (mm)
g40 (cancel cutter radius compensation)
g49 (cancel tool lengthoffset)
g90 (absolute distance mode)
g94 (units/min feedrate)
g54 (Coordinate system 1 default)
g7
(ngcgui: call subroutine file: ../../../nc_files/ngcgui_lib/lathe/toczenie.ngc)
(ngcgui: positional parameters:)
( #1 = stozek = 0)
( #2 = korekta = 0)
( #3 = kat_stozka = 0)
( #4 = sr_pocz = 20)
( #5 = sr_koncowa = 15)
( #6 = przybranie_materialu = 0.3)
( #7 = posuw = 150)
( #8 = z_koncowe = -10)
( #9 = z_pocz = 0)
( #10 = ostatnia_warstwa = 0)
( #11 = posuw_koncowy = 0)
( #12 = czolo = 0)
( #13 = posuw_czolo = 0)
( #14 = szerokosc_fazki = 0)
( #15 = glebokosc_fazki = 0)
( #16 = promien_fazki = 0)
( #17 = wkleslosc_fazki = 0)
( #18 = odjazd_z = 1)
( #19 = odjazd_x = 1)
( #20 = skos_z_p = 0)
( #21 = skos_z_k = 0)
( #22 = odjazd_z_k = 99)
( #23 = odjazd_x_k = 99)
( #24 = pomijaj = 0)
( #25 = pomijaj_czolo = 0)
( #26 = pomijaj_faza = 0)
( #27 = noz_wstepny = 0)
( #28 = noz_czolo = 0)
( #29 = noz_koncowy = 0)
( #30 = woda = 8)
o<toczenie> call [0][0][0][20][15][0.3][150][-10][0][0][0][0][0][0][0][0][0][1][1][0][0][99][99][0][0][0][0][0][0][8]
(ngcgui: FEATURE 121124:11.35.47)
(ngcgui: files: </home/miki/linuxcnc/nc_files/ngcgui_lib/lathe/lathe_std.ngc ../../../nc_files/ngcgui_lib/lathe/toczenie.ngc >)
(ngcgui: feature line added) #<_feature:> = 1
(ngcgui: preamble file: /home/miki/linuxcnc/nc_files/ngcgui_lib/lathe/lathe_std.ngc)
g18 (xz plane)
g21 (mm)
g40 (cancel cutter radius compensation)
g49 (cancel tool lengthoffset)
g90 (absolute distance mode)
g94 (units/min feedrate)
g54 (Coordinate system 1 default)
g7
(ngcgui: call subroutine file: ../../../nc_files/ngcgui_lib/lathe/toczenie.ngc)
(ngcgui: positional parameters:)
( #1 = stozek = 0)
( #2 = korekta = 0)
( #3 = kat_stozka = 0)
( #4 = sr_pocz = 15)
( #5 = sr_koncowa = 10)
( #6 = przybranie_materialu = 0.3)
( #7 = posuw = 150)
( #8 = z_koncowe = -5)
( #9 = z_pocz = 0)
( #10 = ostatnia_warstwa = 0)
( #11 = posuw_koncowy = 0)
( #12 = czolo = 0)
( #13 = posuw_czolo = 0)
( #14 = szerokosc_fazki = 0)
( #15 = glebokosc_fazki = 0)
( #16 = promien_fazki = 0)
( #17 = wkleslosc_fazki = 0)
( #18 = odjazd_z = 1)
( #19 = odjazd_x = 1)
( #20 = skos_z_p = 0)
( #21 = skos_z_k = 0)
( #22 = odjazd_z_k = 99)
( #23 = odjazd_x_k = 99)
( #24 = pomijaj = 0)
( #25 = pomijaj_czolo = 0)
( #26 = pomijaj_faza = 0)
( #27 = noz_wstepny = 0)
( #28 = noz_czolo = 0)
( #29 = noz_koncowy = 0)
( #30 = woda = 8)
o<toczenie> call [0][0][0][15][10][0.3][150][-5][0][0][0][0][0][0][0][0][0][1][1][0][0][99][99][0][0][0][0][0][0][8]
(ngcgui: m2 line added) m2 (g54 activated)
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 19
- Posty: 403
- Rejestracja: 06 mar 2012, 13:25
- Lokalizacja: Częstochowa
Skoro w pliku jest już tyle informacji, to NGCGUI powinno jeszcze dodawać coś w rodzaju podpisu (jaka procedurka i jaka jej wersja została użyta do danego kodu), by uniemożliwić przypadkowe otwarcie, gdy jest podobnie, ale nie identycznie co do procedurek i ich wewnętrznego mechanizmu działania.MlKl pisze:nie da się tylko zapisanego kodu wciągnąć z powrotem do NGCGUI.
Ten co dodał NGCGUI do LinuxCNC zrobił kawał porządnej roboty, ale nie przewidział, że od razu będzie chciała fruwać.
Myślę, że kiedyś taka funkcjonalność będzie dodana, jeśli się ładnie poprosi tego co to potrafi, a nie koniecznie zna bóle praktyków obróbki.
Pozdrawiam
-
Autor tematu - Lider FORUM (min. 2000)
- Posty w temacie: 143
- Posty: 3705
- Rejestracja: 15 sie 2010, 13:44
- Lokalizacja: Błonie
- Kontakt:
W zapisanym pliku jest dość informacji, by LinuxCNC potrafił rozpoznać procedurę z NGCGUI i uzyte pliki. Programistom pozostało dopisać w kodzie warunek, że jak we wciąganym pliku jest info o NGCGUI, to należy utworzyć odpowiednie zakładki, i nakarmić je danymi z pliku. I to wszystko.
Ułatwiłoby to powtarzanie podobnych operacji wieloprocedurowych, czy edycję danych dla zapanmiętanej procedury.
Ułatwiłoby to powtarzanie podobnych operacji wieloprocedurowych, czy edycję danych dla zapanmiętanej procedury.
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 19
- Posty: 403
- Rejestracja: 06 mar 2012, 13:25
- Lokalizacja: Częstochowa
Nie o to mi chodziło.
Gdy będziemy chcieli otworzyć stary plik z „magazynu” LinuxCNC musi wiedzieć nie tylko, że to jest plik dla NGCGUI – mało nawet data utworzenia – musi wiedzieć jakie procedurki go utworzyły.
Sam kolega wie, że każda kolejna wersja tak samo się nazywającej procedurki o takim samym zestawieniu tabelki, jeśli coś się zmieni w jej kodzie działa inaczej.
Potrzebny jest identyfikator dla procedurki – chyba, że podstawowe zostaną umieszczone w programie na stałe, nie do edycji.
Gdy będziemy chcieli otworzyć stary plik z „magazynu” LinuxCNC musi wiedzieć nie tylko, że to jest plik dla NGCGUI – mało nawet data utworzenia – musi wiedzieć jakie procedurki go utworzyły.
Sam kolega wie, że każda kolejna wersja tak samo się nazywającej procedurki o takim samym zestawieniu tabelki, jeśli coś się zmieni w jej kodzie działa inaczej.
Potrzebny jest identyfikator dla procedurki – chyba, że podstawowe zostaną umieszczone w programie na stałe, nie do edycji.