powtarzanie.... potrzebny kod G
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 4392
- Rejestracja: 13 lut 2017, 19:34
- Lokalizacja: Szczecin
Re: powtarzanie.... potrzebny kod G
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.
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!!!
Morzna!!!
Tagi:
-
- Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 5
- Posty: 27
- Rejestracja: 01 maja 2016, 19:18
- Lokalizacja: Opole
Re: powtarzanie.... potrzebny kod G
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.
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.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Re: powtarzanie.... potrzebny kod G
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
#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
-
- Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 5
- Posty: 27
- Rejestracja: 01 maja 2016, 19:18
- Lokalizacja: Opole
Re: powtarzanie.... potrzebny kod G
"G-code sekwencyjny do planowania" zaczerpnięty z:http://kamilpawlo.blogspot.com rozjaśnił mi nieco w głowie i polecam innym.
Zaowocował programem mojego autorstwa. Który wierci otworek i wycina gwiazdę w cyklu kilkukrotnego przejazdu.
Dzięki podpowiedzi kolegi grg12
Robi robotę.
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

Dzięki podpowiedzi kolegi grg12
Otrzymałem:#30=2
G0 z [#30]
#30=[#30+2]
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
-
- Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 5
- Posty: 27
- Rejestracja: 01 maja 2016, 19:18
- Lokalizacja: Opole
Re: powtarzanie.... potrzebny kod G
Witam ponownie i dalej wgryzam się w temat podprogramów.
Mianowicie stawiam pytanie jak wykonać podprogram wewnątrz podprogramu?
Mianowicie stawiam pytanie jak wykonać podprogram wewnątrz podprogramu?
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 4392
- Rejestracja: 13 lut 2017, 19:34
- Lokalizacja: Szczecin
Re: powtarzanie.... potrzebny kod G
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.
Musisz utworzyć pętle skoku warunkowego, wtedy możesz "zagnieżdżac" kilka jedno w drugim.
Można?
Morzna!!!
Morzna!!!
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 1
- Posty: 851
- Rejestracja: 05 gru 2006, 22:28
- Lokalizacja: Bielsko Biała
Re: powtarzanie.... potrzebny kod G
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
Podprogram piiszesz w kolejności czyli O1 potemO2 itd
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1242
- Rejestracja: 15 lis 2009, 02:46
- Lokalizacja: Olsztyn
- Kontakt:
Re: powtarzanie.... potrzebny kod G
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
-
- Czytelnik forum poziom 2 (min. 20)
- Posty w temacie: 5
- Posty: 27
- Rejestracja: 01 maja 2016, 19:18
- Lokalizacja: Opole
Re: powtarzanie.... potrzebny kod G
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
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/)