NGCGUI - toczenie, mocno rozbudowana procedura

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#91

Post napisał: MlKl » 23 lis 2012, 21:10

W każdym razie kamar ma rację - taką obróbkę można zaprogramować przez NGCGUI w kilka minut używając wielokrotnie procedury do kanałków.



Tagi:


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 99
Posty: 16283
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#92

Post napisał: kamar » 24 lis 2012, 06:04

MlKl pisze:
Impuls - nie przejmuj się - masz prawo być z siebie dumny. )
Pewnie, że bądż dumny, przecie mogłes kręcić korbkami :) Zawsze jakiś postęp :)
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 
Obrazek[/code]

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 
Wykonuje całosć od razu a nie zerować zeta ręcznie po kazdym przejściu :)[/code]


IMPULS3
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 18
Posty: 7619
Rejestracja: 25 gru 2010, 21:55
Lokalizacja: LUBELSKIE

#93

Post napisał: IMPULS3 » 24 lis 2012, 07:45

Przeanalizuję to wieczorem, :smile:
kamar pisze:Wykonuje całosć od razu a nie zerować zeta ręcznie po kazdym przejściu
E tam, po prostu skopiowalem to co wyżej i w kolejnych kopiach pozmienialem tylko wymiary dla zetki na coraz to glębsze, wiec jak wlączylem program to przyszedlem jak skończyl. :razz:


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 99
Posty: 16283
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#94

Post napisał: kamar » 24 lis 2012, 08:32

IMPULS3 pisze: E tam, po prostu skopiowalem to co wyżej i w kolejnych kopiach pozmienialem tylko wymiary dla zetki na coraz to glębsze, wiec jak wlączylem program to przyszedlem jak skończyl. :razz:
To dobrze że to coś zwykłego po 4mm a nie hardox po 0.2 :)

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#95

Post napisał: MlKl » 24 lis 2012, 11:57

kamar pisze: Oczywistym mamkamentem jest brak mozliwosci zapisania tego układu ale to już inna bajka.
Zapisać i wykonać potem wielokrotnie można bez problemu, nie da się tylko zapisanego kodu wciągnąć z powrotem do NGCGUI.

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]
Kilka zakładek to po prostu kilka takich wywołań:

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] 
LinuxCNC zapisuje to sobie wraz ze ściągawkami, i można w razie czego ręcznie poprawić parametry:

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)
Oczywiście - to tylko połowa satysfakcji, bo najlepiej by było, żeby LinuxCNC potrafił rozpoznać, że dostaje kod z NGCGUI, i wywołać po wczytaniu zestawu odpowiednio wypełnione tabelki w programie.


hecza
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 19
Posty: 403
Rejestracja: 06 mar 2012, 13:25
Lokalizacja: Częstochowa

#96

Post napisał: hecza » 24 lis 2012, 15:17

MlKl pisze:nie da się tylko zapisanego kodu wciągnąć z powrotem do NGCGUI.
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.
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

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#97

Post napisał: MlKl » 24 lis 2012, 15:23

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.


kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 99
Posty: 16283
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#98

Post napisał: kamar » 24 lis 2012, 16:09

MlKl pisze:W zapisanym pliku.
Gdzie ten plik zapisuje ?

Awatar użytkownika

Autor tematu
MlKl
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 143
Posty: 3705
Rejestracja: 15 sie 2010, 13:44
Lokalizacja: Błonie
Kontakt:

#99

Post napisał: MlKl » 24 lis 2012, 16:30

Sam nie zapisuje, trzeba kliknąć Ctrl-S, albo wybrać z menu Plik "Zapisz G-code jako"

[ Dodano: 2012-11-24, 16:32 ]
Inaczej - on to zapisuje do auto.ngc za każdym przeładowaniem, i ostatni zawsze można odzyskać, nawet po zaniku zasilania w trakcie obróbki.


hecza
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 19
Posty: 403
Rejestracja: 06 mar 2012, 13:25
Lokalizacja: Częstochowa

#100

Post napisał: hecza » 24 lis 2012, 17:02

Nie o to mi chodziło.
Gdy będziemy chcieli otworzyć stary plik z &#8222;magazynu&#8221; LinuxCNC musi wiedzieć nie tylko, że to jest plik dla NGCGUI &#8211; mało nawet data utworzenia &#8211; 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 &#8211; chyba, że podstawowe zostaną umieszczone w programie na stałe, nie do edycji.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”