powtarzanie.... potrzebny kod G

Dyskusje dotyczące programowania G-Code

Steryd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 983
Rejestracja: 13 lut 2017, 19:34
Lokalizacja: Szczecin

Re: powtarzanie.... potrzebny kod G

#11

Post napisał: Steryd » 25 gru 2017, 13:08

Pierwsze pytanie pomocnicze:
Jaki język programowania?
Ogólnie wygląda to tak:
Na początku dajesz zjazd o odpowiednią wartość w Z przyrostowo (standardowo w G kodach G91)
Potem dajesz swoją gwiazdkę.
Potem skok do początku tyle razy ile potrzeba powtórzyć.

Ilość skoków możesz regulować przez liczbę powtórzeń skoku (jeśli jest taka funkcja) albo przez iteracyjna zmane zmennej (np po fanucowemu #11=#11+1) aż do spełnienia warunku logicznego przerwania pętli.


Można?
Morzna!!!

Tagi:


exequtor
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 12
Rejestracja: 01 maja 2016, 18:18
Lokalizacja: Opole

Re: powtarzanie.... potrzebny kod G

#12

Post napisał: exequtor » 26 gru 2017, 20:26

język: g code w MACH3 maszyna to chińska cnc 3040T (daje rade ciąć sklejkę).
Nie do końca rozgryzłem przykłady skoku i iteracyjna zmane zmennej. Mach3 wywala błąd gdy mu wklejam linię ze zmienną
Potrzebuje więc przykładu z działającą zmienną w pętli lub skokiem wywoływanym do spełnienia warunku , czyli osiągnięcia wartości zadanej głębokości frezowania.

Awatar użytkownika

grg12
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1069
Rejestracja: 03 sty 2007, 14:27
Lokalizacja: Wiedeń

Re: powtarzanie.... potrzebny kod G

#13

Post napisał: grg12 » 27 gru 2017, 09:26

Nie mam w tej chwili dostępu do komputera z machem więc piszę z pamięci - mach nie obsluguje zmiennych z nazwami tekstowymi. Są tylko identyfikatory numeryczne. Przykład:
#30=2
G0 z [#30]
#30=[#30+2]
pierwsza linia - definijemy zmienną #30 i nadajemy jej wartość 2. Druga linia - jedziemy zetka do pozycji zapisanej w #30 (znaczy 2). Trzecia - inkrementujemy #30 o dwa.
Niektóre zmienne mają specjalne znaczenie - zawierają np. aktualną pozycję lub koordynaty zadzialania sondy - trzeba sprawdzić w dokumentacji mach (z tego co pamiętam identyfikatory w okolicy 100 były bezpieczne). Mach obsluguje pętle z warunkiem (przerywane po osiągnięciu wartości) ale z pamięci nie napiszę jak - jeśli znasz choć trochę angielski - mach zawiera bardzo użyteczne opis składni gcode


exequtor
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 12
Rejestracja: 01 maja 2016, 18:18
Lokalizacja: Opole

Re: powtarzanie.... potrzebny kod G

#14

Post napisał: exequtor » 27 gru 2017, 23:51

"G-code sekwencyjny do planowania" zaczerpnięty z:http://kamilpawlo.blogspot.com rozjaśnił mi nieco w głowie i polecam innym.

Kod: Zaznacz cały

O0001
G90         (G90 pozycjonowanie bezwzględne)
G0 Z6       
X0 Y0
G1 Z-1

M98 P3 L5  (M98 cykl sekwencyjny;Px nr programu; Lx oznacza ilość powtórzeń)

G1 X50
G0 Z6
M30 (M30 koniec programu)

O0003 (Nr programu sekwencyjnego)
G91 (G91 pozycjonowanie przyrostowe)

(/POCZĄTEK PROGRAMU SEKWENCYJNEGO/)
G01  X50
Y2
X-50
Y2
(/KONIEC PROGRAMU SEKWENCYJNEGO/)

M99
Zaowocował programem mojego autorstwa. Który wierci otworek i wycina gwiazdę w cyklu kilkukrotnego przejazdu.
Obrazek
Dzięki podpowiedzi kolegi grg12
#30=2
G0 z [#30]
#30=[#30+2]
Otrzymałem:

Kod: Zaznacz cały

#130=0 (deklaracja zmiennej)
G1 z4 F300 (bezpieczna wysokość)
G0 X50 Y77 (punkt otworu do zawieszania ozdoby choinkowej) 
G1 z-5 F300 (bardzo prymitywne wiercenie)
G1 z4 F300
M98 P3 L4 (M98 cykl sekwencyjny;Px nr programu; Lx oznacza ilość powtórzeń)
G0 X0 Y0
M30
O0003 (Nr programu sekwencyjnego)
G1 z4 F300 
G0 X10 Y60 (a punkt szczytu pierwszego ramienia gwiazdy)
M00 (STOP przeznaczony na odkurzanie)
G1 z [#130] F400 (tu miejsce na zmienną)
G0 X40 Y60 (b punkt pomiędzy ramionami)
G0 X50 Y90 (c)
G0 X60 Y60 (d)
G0 X90 Y60 (e)
G0 X70 Y40 (f)
G0 X80 Y10 (g)
G0 X50 Y30 (h)
G0 X20 Y10 (i)
G0 X30 Y40 (j)
G0 X10 Y60 (a' ponownie punkt szczytu pierwszego ramienia gwiazdy, ostatnia prosta)
G1 z4 F300   (nie odświeża ! czeka na wciśnięcie START CYKLU wykonuje komendę M00)
#130=[#130-0,25] (zmiana wartości zmiennej)
M99
Robi robotę.


Steryd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 983
Rejestracja: 13 lut 2017, 19:34
Lokalizacja: Szczecin

Re: powtarzanie.... potrzebny kod G

#15

Post napisał: Steryd » 28 gru 2017, 00:20

Co będzie jak włączysz program i sobie pójdziesz?
Ok już widzę podprogram wywołany 4razy
Można?
Morzna!!!


exequtor
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 12
Rejestracja: 01 maja 2016, 18:18
Lokalizacja: Opole

Re: powtarzanie.... potrzebny kod G

#16

Post napisał: exequtor » 30 gru 2017, 18:58

Witam ponownie i dalej wgryzam się w temat podprogramów.
Mianowicie stawiam pytanie jak wykonać podprogram wewnątrz podprogramu?


Steryd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 983
Rejestracja: 13 lut 2017, 19:34
Lokalizacja: Szczecin

Re: powtarzanie.... potrzebny kod G

#17

Post napisał: Steryd » 31 gru 2017, 00:00

Nie da się. M99 wróci do pierwszego wywołania.
Musisz utworzyć pętle skoku warunkowego, wtedy możesz "zagnieżdżac" kilka jedno w drugim.
Można?
Morzna!!!


wieslawbarek
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 807
Rejestracja: 05 gru 2006, 22:28
Lokalizacja: Bielsko Biała

Re: powtarzanie.... potrzebny kod G

#18

Post napisał: wieslawbarek » 06 sty 2018, 19:47

Da sie wystarczy w perwszym podprogramie znowu wpisac M98 P tu numer i L ilosc powtórzeń
Podprogram piiszesz w kolejności czyli O1 potemO2 itd


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1017
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn

Re: powtarzanie.... potrzebny kod G

#19

Post napisał: tomcat65 » 09 sty 2018, 02:32

Tu masz przykład zagnieżdżenia pętli w pętli:

Kod: Zaznacz cały

( wiercenie w siatce ) 

#1=2.1 ( start w X ) 
#2=0 ( start w Y) 
#3=4.2 ( rozstaw w X) 
#4=5 ( rozstaw w Y) 
#5=29 ( ilość rzędów w Y ) 
#6=64 ( ilość kolumn w X ) 
#12=#2
G54 G90 (i inne kody przygotowawcze ) 
G0 x0 y0 z3 
f2000 ( tu podać swoją wartość) 
S6000 M3 

m98 P1 L#6 

G0 Z3 
G0 X0 Y0 
m30 

o1 
G0 X#1 Y#12 
m98 P2 L#5 
#12=#2  
#1=[#1+#3] 
m99 

o2 
G0 X#1 Y#12 
g81 z-0.3 R3 
#12=[#12+#4] 
m99 


exequtor
Czytelnik forum poziom 1 (min. 10)
Czytelnik forum poziom 1 (min. 10)
Posty w temacie: 5
Posty: 12
Rejestracja: 01 maja 2016, 18:18
Lokalizacja: Opole

Re: powtarzanie.... potrzebny kod G

#20

Post napisał: exequtor » 23 lut 2018, 13:54

Bardzo dziękuję, wiercenie w pętli okazało się rewelacyjne. Przerobiłem je na planowanie powierzchni o zadanej długości i szerokości.

a także: stolarski wczep prosty

Kod: Zaznacz cały

( połączenie stolarskie wczep prosty)
( do połączeń pod kontem prostym )
#1=5 ( start w X ) 
#2=15 ( start w Y) 
#3=10 ( skok X) 
#4=10 ( skok Y) 
#5=-2 ( głębokość z dla z=0 na powieszchni ) 
#6=3 ( ilość cykli )
#9=1,5875 ( offset )
#11=#1 (zmienna x)
#12=#2 (zmienna y)
G90         (G90 pozycjonowanie bezwzględne)
G0 Z3       
G0 X0 Y0
M98 P3 L#6  (M98 cykl sekwencyjny;Px nr programu; Lx oznacza ilość powtórzeń)
G0 Z3

M30 (M30 koniec programu)
O0003 (Nr programu sekwencyjnego)
G0 z#5
(/POCZĄTEK PROGRAMU SEKWENCYJNEGO/)
#11=[#11-#9]
G0 X#11 Y#12 ( dojazd A )
#12=[#12-#9-#4]
G0 X#11 Y#12 ( dojazd B )
#11=[#11+#9+#3+#9]
G0 X#11 Y#12 ( dojazd C )
#12=[#12+#9+#4]
G0 X#11 Y#12 ( dojazd D' )
#12=[#12-#9]
G0 X#11 Y#12 ( dojazd D )
#11=[#11+#3-#9-#9]
G0 X#11 Y#12 ( dojazd E )
#12=[#12+#9]
G0 X#11 Y#12 ( dojazd E' )
#11=[#11+#9]
( #12=[#12-#9])
M99 (/KONIEC PROGRAMU/)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”