Prośba o sprawdzenie kodu

Dyskusje dotyczące programowania G-Code

Autor tematu
ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#51

Post napisał: ezbig » 02 wrz 2012, 23:35

Miki wiem o co w tym chodzi. Może źle to napisałem w komentarzu:

G0 Z10 - jadę na Z=10
G0 X0 Y0 - jadę na 0,0,10
M03 - włączam wrzeciono
G0 Z-10 - "dotykam materiału" :oops:

Ok dam tu G0 Z-9 - jestem milimetr nad materiałem i jadę potem do pierwszego otworu. Sprawdziłem w mach-u wygląda niby tak samo jak poprzednio, ale przy symulacji chyba rzeczywiście teraz zaczyna od Z1. Kiepsko to widać w tym Mach-u, wcześniej był zjazd na Z0 i potem na Z1 i G81 ... czyli fizycznie maszyna by dotknęła w poliamid. Rysunek na podglądzie się nie zmienił, ale przy starcie programu widać tę jedną zieloną kropkę mniej.

[ Dodano: 2012-09-03, 00:01 ]
qrde. Te G00 Z-9 to miało być po G91, czyli:

G00 Z10 - 10 do góry
G00 X0 Y0 - i na punkt 0,0 (który ustawiam przy pierwszej frezowanej formatce)
(tu włączę wrzeciono M coś tam - muszę sprawdzić)

G91 - teraz pozycjonowanie inkrementalne
G00 Z-9 - zjazd do materiału (byłem na 10 teraz jadę do 1)

[ Dodano: 2012-09-03, 00:28 ]
Po poprawkach program działa raczej dobrze, na symulacji nie widać zbędnych ruchów (nie wiedziałem że jak się w mach-u zmniejszy prędkość to i podgląd jest lepszy). W stół frez nie uderza:
Obrazek

... i chyba już ostateczna poprawna wersja programu:

Kod: Zaznacz cały

%
G90
G54
G40
G80
G94
G17 
G21
G64

T1 M6 (frez 2mm) 
G97 S10000
F800

#100=10 (ilość w Y) 
#101=12 (ilość w X) 
#102=2 (odstep między elementami) 
#103=2 (średnica freza) 
#104=23.4 (średnica elementu) 

#105=[#104+#102+2*#103] (obliczenie odstępu z uwzględnieniem średnicy freza) 


G00 Z10
G00 X0 Y0
M3

G91
G00 Z-9

M98 P110L#100 (wycinanie #100 serii wzdłuż Y) 



M30

o110 (wycinanie #101 serii wzdluz osi X) 
(#101 - ilość elementów wzdluz osi X) 
(#105 - odstęp między elementmi) 
M98 P100l#101
G00 X[-1*#105*#101] Y#105
m99


O100 (wycinanie elementu właściwego z korekcją średnicy freza) 

(2 x otwór 2 mm) 
G81 x[5.35] y0 Z-5 R1
G81 x[12.7] y0 Z-5 R1
G80

(najazd nad pierwszy okrąg) 
G00 X[5.35-0.8+#103/2] y0

(zjazd 0.2 na materiałem i wjazd roboczy 1mm w materiał) 
G00 Z-0.8
G01 Z-1.2

(okrąg R10.9 Z0 z korekcją średnicy freza) 
G02 I[-10.9-#103/2] J0 Z0

(przejazd nas drugi okrąg) 
G01 X0.8

(Zejście po spirali R11.7 na 4mm) 
G02 I[-11.7-#103/2] J0 Z-1
G02 I[-11.7-#103/2] J0 Z-1
G02 I[-11.7-#103/2] J0 Z-1
G02 I[-11.7-#103/2] J0 Z-1
(odcięcie końcówki) 
G02 I[-11.7-#103/2] J0 Z0

(wyjazd 1mm nad materiał) 
G00 Z6
G00 x[#105-#104-#103/2] (przesunięcie na pozycję następnego elementu) 
M99
%



Tagi:


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

#52

Post napisał: kamar » 03 wrz 2012, 05:50

Niby teraz nie wali :) ale dalej nie rozumiem po co sie bawisz z g90 i g91. Czym to grozi już wiesz. Zostaw to na bardziej ambitne zadania. Nie lepiej przestawiać x czy y zmieniając układ współrzędnych ?


Autor tematu
ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#53

Post napisał: ezbig » 03 wrz 2012, 11:12

:grin: nie wiem czy lepiej, ale ja zrobiłem jak umiałem. Jak to pisałem nie wiedziałem, że można przestawiać układ współrzędnych. Przerobię to w ramach nauki na G10, ale nie czuję jakiegoś większego respektu do G90, G91 :), żebym tego miał używać tylko w wyjątkowych sytuacjach. Chyba że są jakieś przeciwwskazania ;). W tym konkretnym przypadku chodziło mi o to, żeby program zaczynał się zawsze z tego samego miejsca na stole i dlatego najpierw jadę "absolutnie" na X0 Y0, a potem już tnę inkrementalnie (ale jak wspomniałem, nie znałem G10 to tak zrobiłem, a że matematyka nie jest mi straszna to i mnie to nie przerażało).

[ Dodano: 2012-09-04, 02:20 ]
Przerobiłem program na pozycjonowanie absolutne (a konkretnie podprogram elementu) z cyklem G10. Mach rysuje to prawidłowo, ale przy odpaleniu na podglądzie "kropkuje" tylko pierwszy element. Współrzędne na ekranie zmieniają się też tylko w obrębie jednego elementu, ale już współrzędne maszyny idą prawidłowo. Nie wiem co o tym myśleć, czy to mój błąd czy mach to źle pokazuje, ale steruje maszyną prawidłowo.

Kod: Zaznacz cały

%
G90
G54
G40
G80
G94
G17 
G21
G64

T1 M6 (frez 2mm) 
G97 S10000
F800

#100=4 (ilość w X) 
#101=5 (ilość w Y) 
#102=2 (odstep między elementami) 
#103=2 (średnica freza) 
#104=23.4 (średnica elementu) 

#105=[#104+#102+2*#103] (obliczenie odstępu z uwzględnieniem średnicy freza) 


G00 Z10
G00 X0 Y0

M98 P120L#101

(taki dziwny powrót do 0,0 nie wiem jak to inaczej zrobić) 
G10 L2 P1 G91 Y[-1*#101*#105] (przywracam układ do pierwotnego stanu) 
G90
G00 Z10
G00 X0,Y0

M30

o110 (wycinanie wzdluz osi x) 
G90 M98 P100
G10 L2 P1 G91 X#105 (przsunięcie o kolejny element) 
m99

o120 (wycinanie #101 serii wzdluz osi y) 
G90 M98 P110L#100
G10 L2 P1 G91 X[-1*#100*#105] Y#105 (przesynięcie układu do następnego wiersza) 
m99



O100 (wycinanie elementu właściwego z korekcją średnicy freza) 

G00 Z6
(2 x otwór 2 mm) 
G81 x[5.35+#103] y[11.7+#103] Z0 R6
G81 x[18.05+#103] y[11.7+#103] Z0 R6
G80

G00 X[22.6+1.5*#103] y[11.7+#103] 

G00 Z5.2
G01 Z4

(okrąg R10.9 - 1mm) 
G02 I[-10.9-#103/2] J0 Z4

G01 X[23.4+1.5*#103] 

(Zejście po spirali R11.7 - 4mm) 
G02 I[-11.7-#103/2] J0 Z3
G02 I[-11.7-#103/2] J0 Z2
G02 I[-11.7-#103/2] J0 Z1
G02 I[-11.7-#103/2] J0 Z0
(odcięcie końcówki) 
G02 I[-11.7-#103/2] J0  Z0

G00 Z6
M99
%
Obrazek

Wnioski mam takie, że w tym trybie łatwiej analizować poprawność rysunku z programem. Tylko mach to jakoś dziwnie trawi. Dziwnie wyświetla podczas symulacji i koszmarnie długo analizuje ścieżkę przy odczycie programu. Przy układzie 100x100 elementów trwałoby to 20 minut (przerwałem na 2 minucie i była 1/10 ścieżki), a poprzedni 100x100 elementów analizuje w ok. 6 sekund.

[ Dodano: 2012-09-04, 02:42 ]
Jeszcze na szybko przed snem :) modyfikacja programu, bez użycia G10 (po mojemu), ale prawie tak szybka jak przedostania wersja (9 sek. generowania ścieżki dla matrycy 100x100). To się w symulacji nie wykrzacza.

Kod: Zaznacz cały

%
G90
G54
G40
G80
G94
G17 
G21
G64

T1 M6 (frez 2mm) 
G97 S10000
F800

#100=2 (ilość w Y) 
#101=2 (ilość w Y) 
#102=2 (odstep między elementami) 
#103=2 (średnica freza) 
#104=23.4 (średnica elementu) 

#105=[#104+#102+2*#103] (obliczenie odstępu z uwzględnieniem średnicy freza) 
#110=0 (przesunięcie w osi X obliczane w O110) 
#120=0 (przesunięcie w osi Y obliczane w O120) 

G00 Z10
G00 X0 Y0

M98 P120L#101

G00 Z10
G00 X0,Y0

M30

o110 (wycinanie wzdłuż osi x) 
M98 P100
#110=[#110+#105] 
G00 X#110 (przesunięcie o kolejny element) 
m99

o120 (wycinanie #101 serii wzdłuż osi y) 
#110=0 
G00 X[5.35+#103] Y[11.7+#103+#120] (przesunięcie układu na początek wiersza) 
G90 M98 P110L#100
#120=[#120+#105] (obliczenie pozycji kolejnego elementu w pierwszym wierszu) 
m99



O100 (wycinanie elementu właściwego z korekcją średnicy freza i przesunięciem X#110,Y#120) 

G00 Z6
(2 x otwór 2 mm) 
G81 x[5.35+#103+#110] y[11.7+#103+#120] Z0 R6
G81 x[18.05+#103+#110] y[11.7+#103+#120] Z0 R6
G80

G00 X[22.6+1.5*#103+#110] y[11.7+#103+#120] 

G00 Z5.2
G01 Z4

(okrąg R10.9 1mm) 
G02 I[-10.9-#103/2] J0 Z4

G01 X[23.4+1.5*#103+#110] 

(Zejście po spirali R11.7 4mm) 
G02 I[-11.7-#103/2] J0 Z3
G02 I[-11.7-#103/2] J0 Z2
G02 I[-11.7-#103/2] J0 Z1
G02 I[-11.7-#103/2] J0 Z0
(odcięcie końcówki) 
G02 I[-11.7-#103/2] J0  Z0

G00 Z6
M99
%

Ta wersja jest najszybsza, pod względem czasu pracy maszyny. Nie ma tam praktycznie ani jednego zbędnego ruchu, niby tak samo jak w tym z użyciem G10, ale chyba to G10 zamula Mach-a, bo w symulacji czasu pracy wypada na ostatnim miejscu.


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

#54

Post napisał: wieslawbarek » 05 wrz 2012, 00:43

Jezu tylko dlaczego 0 (zero materiału ) jest na dole ja juz wiem nie masz problemów z matematyką tylko co będzie jak przyjdzie na maszynę taki ktoś jak ja


Autor tematu
ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#55

Post napisał: ezbig » 05 wrz 2012, 00:53

To jak powinno być? Chodzi o zasadę, nie o napisanie kodu. Na moją maszynę przyjść mogę ja, albo 2 inne osoby, które będą tylko zmieniać materiał i wciskać guzik.

[ Dodano: 2012-09-05, 00:57 ]
Tu mi się wydawało, że jak mam zero na stole to wiem, że mi to wytnie do końca, a jak będę ustawiał na materiał, to mi może nie docinać delikatnie (jak się troszkę grubsza płyta trafi. Może złe podejście, ale to nie jest wyrób superprecyzyjny).


tommur
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 1
Posty: 84
Rejestracja: 01 gru 2011, 17:31
Lokalizacja: Szczecin

#56

Post napisał: tommur » 05 wrz 2012, 09:31

Zalezy gdzie masz bazę wymiarową i od której strony masz zdefiniowane głębokości.
Jesli mamy przedmiot A z rysunku.(to Twój sposób programowania) Wtyedy niezależnie czy Y ma 10mm czy 20mm, to u ciebie dół wywierconego otworu będzie np 10mm od bazy 0 stołu w osi Z.

A jeśli bazę programu zrobiłbyś na górnej płaszczyźnie przedmiotu (przedmiot B z rysunku) i zdefiniowałbyś, że kieszenie maja byc wybrane na głebokośc 20mm od górnej płaszczyzny (wymiar X) przemiotu B - czyli Z-20). Wtedy niezaleznie czy przedmiot ma wysokośc 10mm czy 50mm, masz jeden program.

Wszystko zalezy tylko od tego z której strony bazujesz. Ale najczęściej jest to górna płaszczyzna przedmiotu.

Mam nadzieję, że co nieco rozjaśniłem.
Załączniki
bazy.jpg
Bazy przedmiotu
bazy.jpg (14.35 KiB) Przejrzano 498 razy
CNC Masterwood Project 310L V4
Zaprawdę powiadam wam "Dbajcie o czystość stożka każdej obrabiarki CNC" :D


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

#57

Post napisał: kamar » 05 wrz 2012, 11:33

ezbig pisze:To jak powinno być? Chodzi o zasadę, nie o napisanie kodu.).
Zasada jest taka że ma być wygodnie :)
Jak robisz ciągle ten sam detal to możesz wyzerować i na suficie, ale jak masz detal z paroma wysokościami to chyba łatwiej pisać z-2 niż z18 gdy masz zebrać dwa milimetry z płytki =20.
Przy paru takich naddatkach ułamkowych , nawet biegły w matematyce sie p...omyli :)
Ostatnio zmieniony 05 wrz 2012, 11:34 przez kamar, łącznie zmieniany 1 raz.


Autor tematu
ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#58

Post napisał: ezbig » 05 wrz 2012, 11:33

tommur to jest dla mnie oczywiste, a z tego co piszesz wynika, że nie popełniłem błędu, tylko wybrałem mniej popularną bazę.

W tym konkretnym przypadku element jest wycinany z płyty poliamidowej 5mm na stole podciśnieniowym (nie w imadle). Nie wiem jaka jest tolerancja grubości takich płyt, ale chyba słusznie zakładam, że nie jest to płytka wzorcowa 5mm. Jakieś odchyłki będą na +/-. Przy bazie na materiale, jak się trafi na minus to porysuję stół, a jak się trafi na +, to będę miał niedocięte elementy. Tolerancja grubości płyty, która wpłynie na wymiary gotowego elementu jest dla mnie pomijalna, dlatego nie mam zamiaru brać grubszej i planować.


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

#59

Post napisał: kamar » 05 wrz 2012, 11:37

ezbig pisze:tommur Przy bazie na materiale, jak się trafi na minus to porysuję stół, a jak się trafi na +, to będę miał niedocięte elementy..
Toż nikt nie zabrania w takim przypadku złapać kontakt na stole i wpisać z-5.


Autor tematu
ezbig
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2103
Rejestracja: 07 lip 2006, 00:31
Lokalizacja: mazowieckie

#60

Post napisał: ezbig » 05 wrz 2012, 11:41

kamar pisze: Jak robisz ciągle ten sam detal to możesz wyzerować i na suficie, ale jak masz detal z paroma wysokościami to chyba łatwiej pisać z-2 niż z18 gdy masz zebrać dwa milimetry z płytki =20.
Przy paru takich naddatkach ułamkowych , nawet biegły w matematyce sie p...omyli :)
To mi się logiczne wydaje, jak mam gotowy półfabrykat i go obrabiam. Wtedy określam ile z niego wybieram.

[ Dodano: 2012-09-05, 11:51 ]
kamar pisze:
ezbig pisze:tommur Przy bazie na materiale, jak się trafi na minus to porysuję stół, a jak się trafi na +, to będę miał niedocięte elementy..
Toż nikt nie zabrania w takim przypadku złapać kontakt na stole i wpisać z-5.
Fakt, ale skoro moje nie jest błędem to już tak zostawię, chyba że to tak was razi, to poprawię na minus-y i następne programy będę już tak robił. :wink: W końcu trzeba wyrabiać sobie dobre nawyki.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”