G-Code - ruch zmijkowy

Dyskusje dotyczące programowania G-Code

Autor tematu
snajperman-s1
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 10
Posty: 313
Rejestracja: 22 kwie 2010, 10:34
Lokalizacja: Nowy Sącz

Re: G-Code - ruch zmijkowy

#21

Post napisał: snajperman-s1 » 05 lis 2018, 19:17

Czyli jednak dobrze myślałem bo jak tu przeskoczyć do nastepnego podprogramu który działa w pętli :)

No dobra a wytlumacz mi to L i P

Z tego co wiem to P jest przerwa czyli P1 to 1ms ale teraz między którymi fragmentami - w którym punkcie jest ta przerwa.

Tak samo problem sie ma L - powiem tak ze nigdy tego nie próbowałem a juz widzę dużo zastosowań tego typu programowania :)




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

Re: G-Code - ruch zmijkowy

#22

Post napisał: kamar » 05 lis 2018, 20:04

Przeskok do innego podprogramu to żadem problem ,
kłopot w tym że jazda ma być po X a zygzak po Y i to można zrealizować tylko obrotem płaszczyzny.

p.s.
Z L i P to nie do mnie :)


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

Re: G-Code - ruch zmijkowy

#23

Post napisał: tomcat65 » 05 lis 2018, 20:40

Ale żeście natworzyli :)
Cieszy mnie, że działa. Nigdy nie sądziłem że i na linuxie moja twórczość pójdzie :).
I nie kłóćmy się co lepsze, bo to dyskusja o wyższości świąt .. . Wszystko ma swoje zady i walety :)

Tak na szybko:
Wywołanie podprogramu ma format m98 Pxx Lxx - i to "P" nie ma nic wspólnego z pauzą. To nr podprogramu który uruchamiasz. A "L" to ilość powtórzeń.
Tak jak np. kody na wiercenie mają swoje parametry - głębokość, wycofanie, stop Z dla złamania wióra, tak tu masz też określony format.

Takie programowanie z użyciem zmiennych to programowanie parametryczne.
kamar pisze:kłopot w tym że jazda ma być po X a zygzak po Y i to można zrealizować tylko obrotem płaszczyzny.

Nie prawda.
Jaki problem zrobić drugi podprogram w osi Y, a zygzak w X.
Zamienić miejscami parę zmiennych, zasada taka sama. Idąc dalej, można i pod kątem, ale tu już trochę więcej kombinacji.

Albo sami to rozpracujecie, albo poczekacie :) .
Muszę zainstalować Macha na innym kompie, bo ten od maszyny dziś mi świrował i niewiele dało się zrobić.


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

Re: G-Code - ruch zmijkowy

#24

Post napisał: kamar » 05 lis 2018, 20:47

tomcat65 pisze:
05 lis 2018, 20:40

Jaki problem zrobić drugi podprogram w osi Y, a zygzak w X.
Zamienić miejscami parę zmiennych, zasada taka sama. Idąc dalej, można i pod kątem, ale tu już trochę więcej kombinacji.

Jakie to proste :( zamienić x na y. No to zrób pod tym kątem dla uproszczenia nawet 45 °
ja nie będę bo mam Cama . Suby to warto na szybkie i proste operacje.
Podpowiedż - g68 A0 B0 R45


Autor tematu
snajperman-s1
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 10
Posty: 313
Rejestracja: 22 kwie 2010, 10:34
Lokalizacja: Nowy Sącz

Re: G-Code - ruch zmijkowy

#25

Post napisał: snajperman-s1 » 05 lis 2018, 23:55

kamar pisze:
05 lis 2018, 20:04
Przeskok do innego podprogramu to żadem problem ,
No właśnie skoro P* to numer programu a zygzak w osi X mamy jako P1 to jako P2 może być podprogram dla zygzaka w osi Y tylko jak zapisać prawidłowo po m99 żeby z automatu po zakończeniu P1 poleciał na P2 (dane zmienne po # też muszą być inne)

Wszystko spoko gdyby wczytywac partiami programy ale chodzi o to aby automatycznie obrobilo całość.

Wiem ze można przez CAMa przepuścić i nam pięknie zrobi program ale tutaj jest możliwa szybsza zmiana parametrów co mi się podoba a dodatkowo np w P1 możemy spawac np szeroko 2x2mm a w P2 juz 4x1mm bez konieczności "zmiany narzędzi" i robienia nowego programu w CAM.

Dodane 27 minuty 28 sekundy:
tomcat65 pisze:
05 lis 2018, 20:40

Tak na szybko:
Wywołanie podprogramu ma format m98 Pxx Lxx - i to "P" nie ma nic wspólnego z pauzą. To nr podprogramu który uruchamiasz. A "L" to ilość powtórzeń.
A ja się teraz doczytałem w instrukcji programowania jakiegoś SIEMENSa CNC w Gkodach że P to ilość powtórzeń a L to numer podprogramu....


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

Re: G-Code - ruch zmijkowy

#26

Post napisał: tomcat65 » 06 lis 2018, 04:24

kamar pisze: No to zrób pod tym kątem dla uproszczenia nawet 45 °
ja nie będę bo mam Cama .

No jaki egocentryk i samolub :)
To ja mam za CAM'a robić?
Nie pojąłeś idei. Celem tego programu, jako przykładu, nie jest stworzenie uniwersalnego kodu.
Celem jest, aby autor wątku, a może i też inni, którzy nie znają takiego mechanizmu, nauczyli się go. A nie pisali dziesiątki/setki linii kodu.
Jak zrozumieją zasady, nie takie rzeczy będą w stanie napisać.
snajperman-s1 pisze:A ja się teraz doczytałem w instrukcji programowania jakiegoś SIEMENSa CNC w Gkodach że P to ilość powtórzeń a L to numer podprogramu...
Piszesz program na Macha czy Siemensa?
snajperman-s1 pisze: a w P2 juz 4x1mm bez konieczności "zmiany narzędzi"


No i masz zadanie domowe :)
Piszesz sobie podprogram P2, a raczej O2. Wywołasz go przez g98 P2 Lxx.
snajperman-s1 pisze: tylko jak zapisać prawidłowo po m99 żeby z automatu po zakończeniu P1 poleciał na P2 (dane zmienne po # też muszą być inne)


Nie po m99. To kończy podprogram. Po tym możesz dopisać kolejny podprogram zakończony m99 oczywiście. I ENTER!

Zrób eksperyment - umieść podprogram/y w folderze Macha - subroutines.
W samym kodzie tylko wywołania m98, jedno po drugim. I m30 na końcu.

"zmienne
coś tam coś tam
m98 p1 lxx
tu wpiszesz nowe zmienne
m98 p2 lxx
m30
"

potestuj na sucho :)


Autor tematu
snajperman-s1
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 10
Posty: 313
Rejestracja: 22 kwie 2010, 10:34
Lokalizacja: Nowy Sącz

Re: G-Code - ruch zmijkowy

#27

Post napisał: snajperman-s1 » 06 lis 2018, 10:22

A więc tak:

Co mi wyszło - chcę narazie zrealizować (napisać samemu) kod na ruch w przeciwnym kierunku - skoro tamten kod jechał w kierunku Y+ to ten chce w kierunku X+

Niestety nie dodaje kolejnych przesunięć osi X...
Straciłem cierpliwość :roll:

Obrazek

#1=0 ( X start )
#2=20 ( X end )
#3=2 ( szer spawu )
#4=200 ( prędkość F )
#5=2 ( gęstość spawu )
#6=[[[#12-#11]/#3]/2]
#11=0 ( Y start )
#12=200 ( Y end )

g0 x#11 y#1
m98 P2 L#6

m30

O2
F#4

g1 x[#1+#5] y[#11+#3]
#1=[#11+#3]
g1 x[#11+#3] y#11
#1=[#11+#3]
m99


Do czego służy zapis #6=[[[#12-#11]/#3]/2] - co on wylicza bo nie mogę rozgryźć a dużo zmienia.
tomcat65 pisze:
06 lis 2018, 04:24
Zrób eksperyment - umieść podprogram/y w folderze Macha - subroutines.
W samym kodzie tylko wywołania m98, jedno po drugim. I m30 na końcu.
Tutaj kolego bardzo chętnie ale zostawię to sobie jak choć trochę ogarnę pisanie kodu zmiennej...

Macie poradnik albo coś podobnego który tłumaczy zasadę działania lub liczenia tego? Jaki zapis co wprowadza? Gdzie można tego się nauczyć bo bez wiedzy podstawowej to kiepsko - szukałem na necie ale nie bardzo wiem czy dobrze czytam :)

Do tej pory obsługiwałem tylko Plazmę i prasę krawędziową ale tam nie ma takiego programowania...


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

Re: G-Code - ruch zmijkowy

#28

Post napisał: tomcat65 » 06 lis 2018, 15:26

Nie znam poradnika albo książki, coś tam w manualu Macha jest.
Przeglądanie netu, tego forum - dział programowanie i analizowanie kodów.
snajperman-s1 pisze:Do czego służy zapis #6=[[[#12-#11]/#3]/2] - co on wylicza bo nie mogę rozgryźć a dużo zmienia.


A gdzie wstawiasz #6? do "L". Czyli wylicza ilość powtórzeń.
Podstaw wartości zamiast zmiennych? W moim przykładzie, odcinek 200, "gęstość 2 - powinno wyjść 50.
Zamiast zmiennej, możesz policzyć ilość powtórzeń i wstawić bezpośrednio do "L" wartość liczbową, tylko od czego jest komputer?
A jak to liczy?
Najpierw oblicza odcinek do pokonania: (end-start); ponieważ "gęstość" to przesunięcie w osi, więc dzielimy odcinek przez "gęstość". A że pełen cykl podprogramu to dwa ruchy(lewo-prawo), każdy ="gęstość", więc całość dzielimy przez 2.
Można inaczej:
odcinek/pełen cykl - czyli [end-start]/[gęstość x 2].
Najlepsze jest to, że taki kodzik jest łatwo modyfikowalny, można użyć do spawania, plazmy jak Ty albo i np. frezowania.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”