Frezowanie kieszeni (wybieranie materiału)

Dyskusje dotyczące programowania G-Code
Awatar użytkownika

Autor tematu
sokon
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 248
Rejestracja: 01 gru 2011, 22:35
Lokalizacja: Warszawa

Frezowanie kieszeni (wybieranie materiału)

#1

Post napisał: sokon » 19 lut 2012, 02:42

Witam szanownych kolegów,

jako, że cały czas znajduję pomoc na forum to i z tym problemem przyleciałem tutaj ;-).

Mam takie pytanko, czy jest jakaś funkcja gCode dzięki której mogę wyfrezować określony obszar bez potrzeby pisania każdej ścieżki?

Nie bardzo wiem jak to ująć w słowa więc przejdę od razu do przykładu.

Mam materiał o wymiarach 200mm x 200mm x 20mm i chcę w nim wyfrezować kieszeń/otwór (sam nie wiem jak to nazwać) frezem o średnicy 1mm (i wiem, że to potrwa to dla celów dydaktycznych) o wymiarach 180mm x 180mm x 10mm, tak aby każda krawędź tej kieszenie była oddalona o 10mm od każdej krawędzi materiału, czyli na środku.

Czy muszę pisać każdą ścieżkę przejazdu osobno czy jest jakaś funkcja w której podaję wymiary kieszeni, jej punkt początkowy i głębokość - co w rezultacie skraca gCode o dobre kilkaset linijek :-)



Tagi:

Awatar użytkownika

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

#2

Post napisał: MlKl » 19 lut 2012, 03:01

W samym G-code nie ma, natomiast takie rzeczy robi się przy pomocy macro. W Machu pisane w VB, w LinuxCNC bezpośrednio w pliku z g-codem. LinuxCNC posiada wbudowany interpreter (język) obsługujący warunki i pętle oraz podprogramy.


mar-tools
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 1
Posty: 58
Rejestracja: 17 kwie 2011, 17:23
Lokalizacja: Turek
Kontakt:

#3

Post napisał: mar-tools » 19 lut 2012, 12:57

Jakie sterowanie?

Awatar użytkownika

Autor tematu
sokon
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 248
Rejestracja: 01 gru 2011, 22:35
Lokalizacja: Warszawa

#4

Post napisał: sokon » 19 lut 2012, 14:24

MlKl
Dzięki za info, zainteresuję się zatem makrami :-)

mar-tools
Jeżeli chodzi Ci o program do EMC2.
Solidworks, SprutCam, HSMWorks,
Avia FNK40N, Heidenhain 310
Cincinnati Sabre 750, Acramatic 2100,
Elektrodrążarka wgłębna BP-95,
LinuxCNC, CamBam
Instagram @ndbjmachineworks
Formy wtryskowe - projektowanie i produkcja

Awatar użytkownika

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

#5

Post napisał: MlKl » 19 lut 2012, 19:38



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

#6

Post napisał: kamar » 19 lut 2012, 19:39

Właśnie dziś pisałem dla siebie, dla NGCGUI jet na Linuxie.

Kod: Zaznacz cały

( ------------------------------ ) 
(         KIESZEŃ PROSTOKĄTNA    ) 
( ------------------------------ ) 
( Kamar                          ) 
( Time-stamp: <2012-01-24 14:26> ) 
( ------------------------------ ) 

(info: Frezowanie kieszeni prostokątnej ) 

/o<kieszen> sub

#<frez> = 8 (#1 =8 frez) 
#<x_pocz> = 10 (#2 =20 X początkowy) 
#<x_kon> = 190 (#3  =10 X końcowy ) 
#<y_pocz> = 10 (#4 =10 Y początkowy) 
#<y_kon> = 190 (#5 =190  Y końcowy ) 
#<glebokosc> = -10 (#6  =-10 głębokość  ) 
#<glebokosc_poczatkowa> = 0 ( #7 =0 głębokość poczatkowa ) 
#<skok> =2 ( #8 =2 skok) 
#<predkosc_bok> = 3000 ( #9 =60 prędkość bok) 
#<predkosc_dol> = 1000 (#10 =40 prędkość dół) 
#<pokrycie> = 1 (#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> 
     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
m30
/o<kieszen> endsub
Obrazek

Awatar użytkownika

Autor tematu
sokon
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 248
Rejestracja: 01 gru 2011, 22:35
Lokalizacja: Warszawa

#7

Post napisał: sokon » 20 lut 2012, 00:42

Czy w wersji 2.4.6 można NGCGUI skonfigurować ?
Pytam bo znalazłem to:
http://linuxcnc.org/docs/2.5/html/gui/ngcgui.html

i jakoś mi nie idzie.
Solidworks, SprutCam, HSMWorks,
Avia FNK40N, Heidenhain 310
Cincinnati Sabre 750, Acramatic 2100,
Elektrodrążarka wgłębna BP-95,
LinuxCNC, CamBam
Instagram @ndbjmachineworks
Formy wtryskowe - projektowanie i produkcja

Awatar użytkownika

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

#8

Post napisał: MlKl » 20 lut 2012, 11:32

prościej wstawić w sources źródła do wersji 2.5 i zainstalować ją przez apta.

w /etc/apt/sources.list zamienić

Kod: Zaznacz cały

deb http://www.linuxcnc.org/emc2 lucid base emc2.4
deb-src http://www.linuxcnc.org/emc2 lucid base emc2.4
na

Kod: Zaznacz cały

deb http://buildbot.linuxcnc.org/ lucid v2.5_branch-rt
deb-src http://buildbot.linuxcnc.org/ lucid v2.5_branch-rt

potem w konsoli:

sudo apt-get update
sudo apt-get upgrade

Awatar użytkownika

Autor tematu
sokon
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 248
Rejestracja: 01 gru 2011, 22:35
Lokalizacja: Warszawa

#9

Post napisał: sokon » 20 lut 2012, 20:26

W sumie racja można i tak :-).

Dodane, zaktualizowane, stare usunięte, nowe zainstalowane :-), NGCGUI działa, jeszcze tylko muszę ścieżki trochę jakoś pod siebie dostosować albo podlinkować katalogi, ale to jeszcze sobie przemyśle co lepsze, potem tylko kompa z warsztatu zabrać do domu i to samo zrobić na docelowym sprzęcie.

Dzięki Panowie.

[ Dodano: 2012-02-22, 02:16 ]
Jest gdzieś jakiś opis:
- operatorów logicznych typu AND, OR
- operatorów porównania typu ==, !=, <, >, itd.

czy w makrach coś takiego w ogóle istnieje?

Co oznacza GT (get true ?), LT, itd., nigdzie nie mogę znaleźć informacji o tym.

Dzięki z góry za info.

[ Dodano: 2012-02-23, 19:32 ]
Ok, już znalazłem w linku od MIKI'ego, wystarczy czytać ze zrozumieniem :-)
Solidworks, SprutCam, HSMWorks,
Avia FNK40N, Heidenhain 310
Cincinnati Sabre 750, Acramatic 2100,
Elektrodrążarka wgłębna BP-95,
LinuxCNC, CamBam
Instagram @ndbjmachineworks
Formy wtryskowe - projektowanie i produkcja

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”