kilka linijek kodu, zamiast całych stron
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 6
- Posty: 1714
- Rejestracja: 13 sty 2006, 16:41
- Lokalizacja: Stargard
- Kontakt:
kilka linijek kodu, zamiast całych stron
Koledzy mam proste pytanie dla "Wyjadaczy" ;>
Założenie: Wyciąć prostokąt 50 x 100mm w stali 20mm grubości, każdy przejazd głębiej o 0.1mm. (w przykładzie tym pomijam kompensację narzędzia)
Przykładowo taki g-code można rozwiązać tak:
F1000
G1 Z-0.1
G1 Y50
G1 X100
G1 Y0
G1 X0
itd..., aż do
G1 Z-20.0
G1 Y50
G1 X100
G1 Y0
G1 X0
G0 Z1
Sprawa rozwiązana ale kupa pisania, teraz drugi sposób:
F1000
G1 Z-0.1
M98 P100 Q1
G1 Z-0.2
M98 P100 Q1
itd..., aż do
G1 Z-20
M98 P100 Q1
G0 Z1
M30
O100
G1 Y50
G1 X100
G1 Y0
G1 X0
M99
Tutaj już było znacznie mniej pisania, ale ciągle jest to kłopotliwe jeśli mam do wycięcia ileśdziesiąt prostokątów wpustów itp.
Moje pytanie i prośba jest następująca. Czy na podstawie powyższego przykładu ktoś napisałby mi jak można w jednej lub kilku liniach zawrzeć przedział głębokości schodzenia osi Z od -0.1 do -20 (co 0.1mm)?
Programowałem kiedyś w C++ i taki zapis byłby bardzo prosty wykorzystując inkrementację. Natomiast tutaj nie za bardzo wiem jak to rozwiązać a w generatorach macha się gubię :/
Założenie: Wyciąć prostokąt 50 x 100mm w stali 20mm grubości, każdy przejazd głębiej o 0.1mm. (w przykładzie tym pomijam kompensację narzędzia)
Przykładowo taki g-code można rozwiązać tak:
F1000
G1 Z-0.1
G1 Y50
G1 X100
G1 Y0
G1 X0
itd..., aż do
G1 Z-20.0
G1 Y50
G1 X100
G1 Y0
G1 X0
G0 Z1
Sprawa rozwiązana ale kupa pisania, teraz drugi sposób:
F1000
G1 Z-0.1
M98 P100 Q1
G1 Z-0.2
M98 P100 Q1
itd..., aż do
G1 Z-20
M98 P100 Q1
G0 Z1
M30
O100
G1 Y50
G1 X100
G1 Y0
G1 X0
M99
Tutaj już było znacznie mniej pisania, ale ciągle jest to kłopotliwe jeśli mam do wycięcia ileśdziesiąt prostokątów wpustów itp.
Moje pytanie i prośba jest następująca. Czy na podstawie powyższego przykładu ktoś napisałby mi jak można w jednej lub kilku liniach zawrzeć przedział głębokości schodzenia osi Z od -0.1 do -20 (co 0.1mm)?
Programowałem kiedyś w C++ i taki zapis byłby bardzo prosty wykorzystując inkrementację. Natomiast tutaj nie za bardzo wiem jak to rozwiązać a w generatorach macha się gubię :/
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie
Obróbka CNC - frezowanie & toczenie
Tagi:
-
- Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 1
- Posty: 1
- Rejestracja: 30 lis 2010, 12:35
- Lokalizacja: Stargard Szczeciński
możesz spróbować w ten sposób:
N7 T1 S 2000
N8 G0 X... Y....Z.... M3
N9 E6=20 E8=200 czyli 20 to głębokość a 200 to liczba przejść
N10 E10=0
N11 E11=E6:E8
N12 E10=E10+1
N13 E12=E10*(razy)E11
N14 G0...CZĘŚĆ PROGRAMU KTÓRĄ OPISUJESZ SAM CZYLI NAJAZD,PRZYJĘCIE KOREKCJI ITD
N21 G0....WYJAZD NAD MATERIAŁ BARDZO WAŻNE
N22 G29 E88 N=12 E88=E10<E8 bardzo ważne jest wpisanie N=(numer bloku gdzie jest E10=E10+1)...w moim przypadku to blok 12
N23 G0 WYJAZD I KONIEC PROGRAMU
nie daje ręki że będzie działać
N7 T1 S 2000
N8 G0 X... Y....Z.... M3
N9 E6=20 E8=200 czyli 20 to głębokość a 200 to liczba przejść
N10 E10=0
N11 E11=E6:E8
N12 E10=E10+1
N13 E12=E10*(razy)E11
N14 G0...CZĘŚĆ PROGRAMU KTÓRĄ OPISUJESZ SAM CZYLI NAJAZD,PRZYJĘCIE KOREKCJI ITD
N21 G0....WYJAZD NAD MATERIAŁ BARDZO WAŻNE
N22 G29 E88 N=12 E88=E10<E8 bardzo ważne jest wpisanie N=(numer bloku gdzie jest E10=E10+1)...w moim przypadku to blok 12
N23 G0 WYJAZD I KONIEC PROGRAMU
nie daje ręki że będzie działać
-
- Sympatyk forum poziom 2 (min. 50)
- Posty w temacie: 1
- Posty: 56
- Rejestracja: 09 mar 2007, 21:34
- Lokalizacja: Zduńska Wola
Witam
Nie jestem pewien Macha ale Q to pewnie będzie ilość powtórzeń podprogramu.
Wówczas program główny:
F1000
G1 X0 Y0
M98 P100 Q200
G0 Z1
M30
i dalej podprogram:
O100
G91
G1 Z-0.1 F100
G90
G1 Y50
G1 X100
G1 Y0
G1 X0
M99
gdzie ruch roboczy w osi Z jest podany w układzie przyrostowym, a pozostała część ruchu XY w układzie absolutnym.
Pozdrawiam.
Nie jestem pewien Macha ale Q to pewnie będzie ilość powtórzeń podprogramu.
Wówczas program główny:
F1000
G1 X0 Y0
M98 P100 Q200
G0 Z1
M30
i dalej podprogram:
O100
G91
G1 Z-0.1 F100
G90
G1 Y50
G1 X100
G1 Y0
G1 X0
M99
gdzie ruch roboczy w osi Z jest podany w układzie przyrostowym, a pozostała część ruchu XY w układzie absolutnym.
Pozdrawiam.
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 6
- Posty: 1714
- Rejestracja: 13 sty 2006, 16:41
- Lokalizacja: Stargard
- Kontakt:
Dokładnie o to mi chodziło, dzięki. Teraz pisanie programu będzie o wiele szybszeTabikgo pisze:Nie jestem pewien Macha ale Q to pewnie będzie ilość powtórzeń podprogramu.
Wówczas program główny:

[ Dodano: 2010-11-30, 15:03 ]
Niestety w mach nie ma funkcji G21 :/mssec pisze:N22 G29 E88 N=12 E88=E10<E8 bardzo ważne jest wpisanie N=(numer bloku gdzie jest E10=E10+1)...w moim przypadku to blok 12
Podoba mi sie taki zapis jak w Twojej podpowiedzi, bo jest jak programowanie w C, ale nie wiem jak to wykorzystać w machu.
Natomiast sytuacja w której Ztka jest w układzie przyrostowym załatwia sprawę.
Kolejne pytanie, czy w machu jest możliwość przypisania wartości do jakiejś konkretnej zmiennej i zastosowanie operacji matematycznej jak w przykladzie kolegi mssec?
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie
Obróbka CNC - frezowanie & toczenie
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 6
- Posty: 1714
- Rejestracja: 13 sty 2006, 16:41
- Lokalizacja: Stargard
- Kontakt:
Q też chodzi... ;>dziabi3 pisze:ilość powtórzeń to literka L
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie
Obróbka CNC - frezowanie & toczenie
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 6
- Posty: 1714
- Rejestracja: 13 sty 2006, 16:41
- Lokalizacja: Stargard
- Kontakt:
No dobra Panowie, teraz podobne zadanie, bo nie do końca rozwiązało mi to problem.
Sytuacja wygląda następująco.
Maszyna dojeżdża do punktu A opuszcza wrzeciono do -0.1 i zaczyna frezowanie do punktu B. Teraz potrzebuję podnieść wrzeciono do Z+5 i wrócić do punktu A, następnie opuścić do -0.2 i jazda do punktu B. W tej sytuacji nie mogę korzystać z programowania przyrostowego dla osi Z ponieważ w pewnym momencie potrzebuję ją podnieść i tutaj wszystko się chrzani, gdyż zmienia się wartość osi Z. Jak to obejść, albo jak zapisać program aby było poprawnie?
Ktoś może napisać że można przecież w punkcie B opuścić i wrócić do punktu A, ale nie rozwiązuje mi to sytuacji w przypadku setek lini g-code generowanych na podstawie programu graficznego. (łuki są zapisywane jako setki lini g-code).
Bardzo zależy mi na podpowiedzi jak to rozwiązać.
Przykładowy program:
G0 X10 Y10
M98 P100 Q20
G0 Z5
G0 X0 Y0
M30
0100
G0 X10 Y10
G91
G1 Z-0.1
G90
G1 X50 Y50
G1 Y100
# Teraz chciałbym podnieść wrzeciono do Z5.0 wrócić do punktu X10 Y10 i opuścić do -0.2 itd... aż do Z-2.0
M99
Sytuacja wygląda następująco.
Maszyna dojeżdża do punktu A opuszcza wrzeciono do -0.1 i zaczyna frezowanie do punktu B. Teraz potrzebuję podnieść wrzeciono do Z+5 i wrócić do punktu A, następnie opuścić do -0.2 i jazda do punktu B. W tej sytuacji nie mogę korzystać z programowania przyrostowego dla osi Z ponieważ w pewnym momencie potrzebuję ją podnieść i tutaj wszystko się chrzani, gdyż zmienia się wartość osi Z. Jak to obejść, albo jak zapisać program aby było poprawnie?
Ktoś może napisać że można przecież w punkcie B opuścić i wrócić do punktu A, ale nie rozwiązuje mi to sytuacji w przypadku setek lini g-code generowanych na podstawie programu graficznego. (łuki są zapisywane jako setki lini g-code).
Bardzo zależy mi na podpowiedzi jak to rozwiązać.
Przykładowy program:
G0 X10 Y10
M98 P100 Q20
G0 Z5
G0 X0 Y0
M30
0100
G0 X10 Y10
G91
G1 Z-0.1
G90
G1 X50 Y50
G1 Y100
# Teraz chciałbym podnieść wrzeciono do Z5.0 wrócić do punktu X10 Y10 i opuścić do -0.2 itd... aż do Z-2.0
M99
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie
Obróbka CNC - frezowanie & toczenie
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1743
- Rejestracja: 03 sty 2007, 14:27
- Lokalizacja: Wiedeń
Mach3 i EMC2 obsługują zmienne - zapisywane w taki sposób
#30=1
własnie utworzyliśmy zmienna o nazwie #30 o wartości 1 (niestety - mach3 nie obsługuje identyfikatorów tekstowych).
Zmiennych używa się np. tak
G1 Z[#30]
#30=[#30-0.1]
Przykład proramu pod mach3 (kwadrat z poprzedniego przykładu+rampy na zagłębianie freza)
G94 (feed in units per minute)
G17 (xy plane selected)
G21 (use milimeters)
G40 (cancel radius comp.)
G49 (cancel tool lenght offset)
G54 (use first coordiante system)
G61 (exact path mode)
G90 (absolute distance mode)
G0 Z1
G0 X0 Y0
(calling path PODŚCIEŻKA0 - Ścieżka robocza ŚCIEŻKA0 obwódka )
M5 (stop spindle)
F1000
G0 Z1
G53 X-55 Y40 Z4 ( tool change location)
T1
M6
G43 H1
M3 S100 (stop spindle)
G0 Z1
G0 X4 Y0
G0 Z0
#30=0
M98 P30 L200
G0 Z1
G0 X0 Y0
M30
(path PODŚCIEŻKA0 - Ścieżka robocza ŚCIEŻKA0 obwódka definition)
O30
G1 X0 Y0 Z[-0.1+#30]
G1 X0 Y50 Z[-0.1+#30]
G1 X100 Y50 Z[-0.1+#30]
G1 X100 Y0 Z[-0.1+#30]
G1 X0 Y0 Z[-0.1+#30]
#30=[#30+-0.1]
G0 Z1
G0 X4 Y0
G0 Z[0+#30]
M99
(end of path PODŚCIEŻKA0 - Ścieżka robocza ŚCIEŻKA0 obwódka definition)
Kod wygenerowany przez DXFKornik ( do ściągnięcia tutaj http://members.chello.at/~grzegorz12/ )
#30=1
własnie utworzyliśmy zmienna o nazwie #30 o wartości 1 (niestety - mach3 nie obsługuje identyfikatorów tekstowych).
Zmiennych używa się np. tak
G1 Z[#30]
#30=[#30-0.1]
Przykład proramu pod mach3 (kwadrat z poprzedniego przykładu+rampy na zagłębianie freza)
G94 (feed in units per minute)
G17 (xy plane selected)
G21 (use milimeters)
G40 (cancel radius comp.)
G49 (cancel tool lenght offset)
G54 (use first coordiante system)
G61 (exact path mode)
G90 (absolute distance mode)
G0 Z1
G0 X0 Y0
(calling path PODŚCIEŻKA0 - Ścieżka robocza ŚCIEŻKA0 obwódka )
M5 (stop spindle)
F1000
G0 Z1
G53 X-55 Y40 Z4 ( tool change location)
T1
M6
G43 H1
M3 S100 (stop spindle)
G0 Z1
G0 X4 Y0
G0 Z0
#30=0
M98 P30 L200
G0 Z1
G0 X0 Y0
M30
(path PODŚCIEŻKA0 - Ścieżka robocza ŚCIEŻKA0 obwódka definition)
O30
G1 X0 Y0 Z[-0.1+#30]
G1 X0 Y50 Z[-0.1+#30]
G1 X100 Y50 Z[-0.1+#30]
G1 X100 Y0 Z[-0.1+#30]
G1 X0 Y0 Z[-0.1+#30]
#30=[#30+-0.1]
G0 Z1
G0 X4 Y0
G0 Z[0+#30]
M99
(end of path PODŚCIEŻKA0 - Ścieżka robocza ŚCIEŻKA0 obwódka definition)
Kod wygenerowany przez DXFKornik ( do ściągnięcia tutaj http://members.chello.at/~grzegorz12/ )
-
Autor tematu - ELITA FORUM (min. 1000)
- Posty w temacie: 6
- Posty: 1714
- Rejestracja: 13 sty 2006, 16:41
- Lokalizacja: Stargard
- Kontakt:
Gdyby tak można było zmienne programować, to by mi wszystko załatwiło. Ale właśnie próbowałem i niestety ale hash (#) u mnie w machu jest uważany tylko za linię komentarza, pomijaną przy wykonywaniu programu.
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie
Obróbka CNC - frezowanie & toczenie