kilka linijek kodu, zamiast całych stron

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC
Awatar użytkownika

Autor tematu
gaspar
ELITA FORUM (min. 1000)
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

#1

Post napisał: gaspar » 30 lis 2010, 11:20

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ę :/


https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie

Tagi:


mssec
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 1
Posty: 1
Rejestracja: 30 lis 2010, 12:35
Lokalizacja: Stargard Szczeciński

#2

Post napisał: mssec » 30 lis 2010, 12:50

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ć


Tabikgo
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 1
Posty: 56
Rejestracja: 09 mar 2007, 21:34
Lokalizacja: Zduńska Wola

#3

Post napisał: Tabikgo » 30 lis 2010, 13:05

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.

Awatar użytkownika

Autor tematu
gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#4

Post napisał: gaspar » 30 lis 2010, 13:37

Tabikgo pisze:Nie jestem pewien Macha ale Q to pewnie będzie ilość powtórzeń podprogramu.
Wówczas program główny:
Dokładnie o to mi chodziło, dzięki. Teraz pisanie programu będzie o wiele szybsze :)

[ Dodano: 2010-11-30, 15:03 ]
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
Niestety w mach nie ma funkcji G21 :/

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


dziabi3
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 874
Rejestracja: 13 sie 2009, 16:15
Lokalizacja: xxx

#5

Post napisał: dziabi3 » 02 gru 2010, 01:37

w machu ilość powtórzeń to literka L

a jak mach niema obsługiwać G21

Awatar użytkownika

Autor tematu
gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#6

Post napisał: gaspar » 02 gru 2010, 10:00

dziabi3 pisze:ilość powtórzeń to literka L
Q też chodzi... ;>
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie


dziabi3
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 2
Posty: 874
Rejestracja: 13 sie 2009, 16:15
Lokalizacja: xxx

#7

Post napisał: dziabi3 » 03 gru 2010, 16:50

o to ciekawe

tak jak w gwintowaniu g76 skok to P a w g32 F
Mach3 + CSMIO = :-) :-) :-)

Awatar użytkownika

Autor tematu
gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#8

Post napisał: gaspar » 10 gru 2010, 22:41

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
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie

Awatar użytkownika

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

#9

Post napisał: grg12 » 10 gru 2010, 23:01

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/ )

Awatar użytkownika

Autor tematu
gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 6
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#10

Post napisał: gaspar » 10 gru 2010, 23:57

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

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”