zachciało, się, staremu, bawić, cnc,,...prośba, o, pomoc

Dyskusje dotyczące programowania G-Code

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

#31

Post napisał: tomcat65 » 16 sie 2013, 01:35

Kol.spebik - g-kody to nie informatyka :), choć trochę matematyki jest.
W Polszy święto, długi weekend i pomagaczy brak, sam więc musisz coś podziałać. Na wędkę mnie nie stać, w sensie czasu, ale mały haczyk mogę fundnąć.
Na początek trzeba sobie wyobrazić drogę narzędzia. A potem już z górki.
Czepnę się rysunku, bo brakuje tam kilku wymiarów, np. wysokości detalu.
Teraz wyobraź sobie lewy dolny róg detalu jako punkt startowy, czyli X0 Y0.Trzeba przesunąć frez o 80mm w osi X, czyli wpiszesz: G1 X80. G1 to ruch roboczy w którym frez pracuje, G0 używasz do przemieszczania narzędzia w inne miejsce bez wykonywania przez nie pracy.
Na razie mamy:
G0 X0 Y0
G1 X80 (ponieważ Y się nie zmienia, nie wpisujemy)

Teraz trzeba pojechać do góry, czyli w osi Y i tu nie ma wymiaru, ale dopiszesz:
G1 Yxx

Dalej ruch po skosie : G1 Xxx Yxx, górna pozioma: Xxx,
kolejny skos: G1 Xxx Yxx i w dół: X0 Y0.
Całość:
G0 X0 Y0
G1 X80
G1 Yxx
G1 Xxx Yxx
G1 Xxx
G1 Xxx Yxx
G1 X0 Y0.

Jak zamiast xx dodasz wymiary, masz pełen obrys.

Na razie tyle, reszta w kolejnym odcinku albo ktoś inny dopisze ciąg dalszy :)



Tagi:

Awatar użytkownika

noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 14
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#32

Post napisał: noel20 » 16 sie 2013, 11:08

Oczywiście jeszcze po dojechaniu do X0 Y0 trzeba narzędzie zapuścić w materiał. W powietrzu nie będziesz przecież frezował, choć na próbę, na początek zobaczyć czy babola nie ma w programie to warto puścić w powietrzu. Ale to na przykład możesz zrobić wyjmując frez z uchwytu.
Wysokość narzędzia ustawiasz w programie tak, że jak tylko frez dotknie powierzchni materiału to powinno to być Z0. Zagłębienie jest na minus. Czyli jak chcesz żeby frez wjechał 0,5mm w materiał to robisz G1 Z-0.5
Kolega jeszcze zapomniał napisać, że G0 to maszyna lata z maksymalną szybkością, a G1 z zadeklarowaną w programie. Prędkość podajemy funkcją F np. F200
I tak:
F200
G1 Z-0.5
to frez z prędkością 200mm/min wjedzie w dół pół milimetra w materiał.

Poćwicz to sobie, napisz co ci wyszło, a później zrobimy ten łuk i kompensację promienia narzędzia :cool:


Autor tematu
spebik
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 19
Posty: 33
Rejestracja: 07 sty 2010, 20:48
Lokalizacja: Olsztyn

#33

Post napisał: spebik » 18 sie 2013, 00:17

Witam Was Kochani...

No niestety tak przysiadłem że dwa dni nie byłem w stanie nawet się podnieść. Serducho dało mi się ostro we znaki. To dla mnie nic nowego..stara dolegliwość, która od czasu do czasu niestety powraca. Dzisiaj już było na tyle lepiej że nawet próbowałem trochę z tym kodem. Masz rację "Zbych07" widzę że nasz temat bo napisałeś dokładnie tak jak mawia mój lekarz. To właśnie on cały czas namawia mnie i tłumaczy że tylko zmuszanie się do wysiłku umysłowego spowolni w znacznym stopniu moją chorobę. Muszę Ci powiedzieć że tak naprawdę to ja nie bardzo mam ochotę na cokolwiek ale ponieważ zawsze lubiłem modelarstwo to właśnie dlatego zmuszam się do zrobienia frezarki CNC którą chcę do mojego hobby wykorzystać. Mógłbym oczywiście robić model dawnym sposobem ale za namową lekarza postanowiłem sobie podnieść poprzeczkę i zacząć robić coś czego nigdy nie robiłem i czego nie mam wyuczonego w poprzednich latach. Męczę się ale pomimo trudności zauważyłem że jak po wysiłku umysłowym coś mi się uda zrobić, odczuwam zadowolenie i jakbym miał jaśniejszy umysł. Nie wiem czy to tylko takie uczucie czy też jakaś poprawa.
Tak więc dalej prę do przodu i pewnie byłoby lepiej gdyby derducho było w lepszym stanie.
Dziękuję Tobie "Tomca65" za wędkę! Właśnie o takim tłumaczeniu myślałem. Teraz wiem mniej więcej z czym to się je. Mam co prawda wytłumaczenie najbardziej popularnych G-kodów ale co z tego jak mimo to nie wiedziałem co z nimi zrobić. Teraz idąc tropem jaki mi podałeś stworzyłem (po wielu próbach) taki kod:
F200
G0 X0 Y0
G1 X28
G1 Y12
G2 I12
G1 X52 Y12
G1 Y0
G1 X80 Y0
G1 Y14
G1 X70 Y30
G1 X60
G1 X10 Y30
G1 Y14 X0
G1 X0 Y0.
G0 X0 Y0

Okręg znalazłem na liście kodów i go wstawiłem. Niestety nie wiem jak zrobić półokręg.
Sprawdziłem w Mach3 i wreszcie ten kod prawie pasuje.
Trochę już z tego rozumiem i rzeczywiście nie jest to strasznie trudne, ale do sukcesu jeszcze daleko. Fajnie by było aby na każdej linijce w kilku słowach było wytłumaczenie co ta linijka robi. To właśnie stworzyłem tylko dzięki Wam Moi Kochani i za to Wam Serdecznie Dziekuję! Również dla Ciebie podziękowania "Noel20"! Dzięki Tobie wiem już jak zapuścić frez w materiał. Jeszcze raz Przepraszam Wszystkich za moją nieobecność ale to było silniejsze ode mnie i wiem że z pewnością znowu powróci...niestety. Czekam teraz z niecierpliwością na Waszą surową opinię o moich wypocinach.
Pozdrawiam Wszystkich Kolegów Serdecznie oraz tylko czytających.

Awatar użytkownika

noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 14
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#34

Post napisał: noel20 » 18 sie 2013, 00:53

F200
Ustawienie prędkości roboczej w mm.min
G0 X0 Y0
Przejazd szybki to pozycji x0 y0 (czyli w płaszczyźnie poziomej)
G1 X28
ruch z roboczą prędkością w osi x na pozycję 28.
Na pozycję 28, a nie o 28 dalej. Chyba, że masz na początku włączone g91, ale to lepiej na razie zostawmy.
G1 Y12
j.w
G2 I12
No to jest kółko.
G1 X52 Y12
ruch roboczy w obu osiach jednocześnie. Przykład: Jeżli stoisz w x0 y0 i wpiszesz x10y10 to frez w obu osiach będzie poruszał się z tą samą prędkością. Jeżeli wpiszesz x10y20 to prędkość freza będzie taka jak F czyli 200, ale silnik od y będzie się obracał dwa razy szybciej niż od x
G1 Y0

G1 X80 Y0

G1 Y14

G1 X70 Y30

G1 X60

G1 X10 Y30

G1 Y14 X0

G1 X0 Y0.

G0 X0 Y0
Tu już chyba nie trzeba tłumaczyć.

Część okręgu jak chcesz zrobić to potrzebujesz kilku danych.
Z ostatniej linijni kodu przed rozpoczęciem łuku wiesz gdzie jest frez aktualnie, więc to już masz. Kolejne co potrzebujesz to środek okręgu i jego koniec. Tylko że koniec podajesz w odległości od początku detalu, a środek w odległości od aktualnego położenia freza. Czyli:
F200
g0 x0 y0
g1 z-......
g1 x28
g1 y11 (o ile literki dobrze dostrzegam, choć ty podałeś 12)
i teraz łuk.
Wiesz, że jesteś w x28 y11
koniec łuku znajduje się na pozycji x52y11. W Y koniec łuku jest na takiej samej wysokości jak początek.
Środek względem obecnego położenia freza znajduje się w odległości x12 y0. Te współrzędne podajesz jako I J. Czyli:
G2 x52 y11 i12 j0

A dalej już umiesz.

No i wszyscy oczywiście życzymy dużo zdrowia.


vv3k70r
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 4
Posty: 420
Rejestracja: 01 lip 2007, 17:52
Lokalizacja: trelleborg

#35

Post napisał: vv3k70r » 18 sie 2013, 07:26

noel20 pisze:F200
Ustawienie prędkości roboczej w mm.min
G0 X0 Y0
Przejazd szybki to pozycji x0 y0 (czyli w płaszczyźnie poziomej)
G1 X28
ruch z roboczą prędkością w osi x na pozycję 28.
Na pozycję 28, a nie o 28 dalej. Chyba, że masz na początku włączone g91, ale to lepiej na razie zostawmy.
To żeby nie zostawiać...
Zakładamy, że punkt XYZ0 ustawiamy na górnej powierzchni obrabianego materiału i wgłębianie się w materiał ma ujemną wartość Z, program na frezarkę, w tokarce praktyka jest inna).
Przed rozpoczęciem ruchu skrawającego detal (komentarze poleceń w kolejności, ewentualne uzasadnienie użycia):

G90 G21 G54 // współrzędne bezwzględne, podawane w milimetrach, przesunięcie układu współrzędnych, zaraz objaśnię skąd się bierze)

M03 S1500 // wrzeciono obracać w prawo, prędkość obrotowa wrzeciona 1500rpm
G00 Z100 // unieść wrzeciono wysoko, na wszelki wypadek, może tam być inna wartość, bo 100mm to dość sporo dla niektórych maszyn, ważne aby na tyle dużo, aby było bezpiecznie daleko od wszystkiego

Tutaj będzie ewentualna kompensacja narzędzia dla długości oraz średnicy i kierunku pracy po obrysie.


G00 X0 Y0 // umieścić wrzeciono nad punktem podanym jako zerowy XY w ustawieniach G54

G01 Z5 F250 // prędkością roboczą zjechać 5mm nad materiał, po to, aby było widać gdzie jesteśmy i ocenić, że we właściwym miejscu, później w obróbce zamieniamy G01 na G00 i wyrzucamy deklarację prędkości roboczej Feed; na starszych obrabiarkach z simnumerikiem deklaracja Feed działa wyłącznie z poleceniem ruchu G01 G02 G03 i cykle, rzucenie linijki luzem z F250 nie jest interpretowane; nowsze są bardziej tolerancyjne;

Istotne jest aby komendę taką jak F podawać razem z ruchem, który definiuje (i podawać tylko raz, póki nie zamierzamy zmienić tego parametru), S podawać przy włączaniu wrzeciona.


====================

Położenie G54 pobieramy z G53.
G53 to położenie absolutne przestrzeni roboczej maszyny.
Absolutnie skrajne wysunięcie stołu/wrzecion to właśnie to G53.

Jeśli przesuniemy w trybie ręcznym wrzeciono nad detal (warto włączyć jakieś obroty dla wrzeciona, aby nie uszkodzić narzędzia, gdybyśmy przypadkiem skaleczyli materiał szukając Z) to w parametrach G53 będą podawane różnice do aktualnego położenia wrzeciona (z tego dowiemy się w którą stronę maszyna zwiększa X, a w którą Y, płaszczyzna robocza XY może być zdefiniowana w różnych kierunkach, dla przykładu monitor komputera jest zdefiniowany z lewego górnego rogu rosnąco ku dołowi dla Y i w prawo dla X).
Gdy znajdziemy się nad punktem, który chcemy uznać za zerowy, przepisujemy wyniki przesunięć z G53 do miejsc zerowych dla G54.
Następnie na obrotach powoli zjeżdżamy wrzecionem po osi Z nad materiał (warto nakleić na materiał kawałek poślinionego papieru), kiedy narzędzie skaleczy bądź zerwie papier, podajemy z G53 do G54 wartość Z. Wracamy wrzecionem na górę, zatrzymujemy wrzeciono.

Aby uprościć całą procedurę, warto zmierzyć gdzie są krawędzie stołu krzyżowego oraz jego powierzchnia i od tych krawędzi mierzyć położenie detalu i wysokość, wyliczając z tego punkt zerowy podawany do G54 (operatorzy tworzą z tego grafitti na obrabiarkach, a na wzorach do produkcji modeli jest to wybite w rogu wzorca).

Pominąłem definiowanie płaszczyzny roboczej G17 XY, rozumiem, że chodzi o proxxona i on nie korzysta z innej, nie interpretuje tego kodu.
bumeluję

Awatar użytkownika

noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 14
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#36

Post napisał: noel20 » 18 sie 2013, 08:07

No spebik masz co ogarniać :wink:

Awatar użytkownika

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

#37

Post napisał: grg12 » 18 sie 2013, 09:20

spebik pisze: Okręg znalazłem na liście kodów i go wstawiłem. Niestety nie wiem jak zrobić półokręg.
Półokrąg robi się podając pozycję końcową przy definicji okręgu np.
G1 X0Y0 (przejzad w linii prostej na pozycję X0, Y0 - wpisałem tylko po to żeby osiągnąć X0,Y0)
G2 X2 Y0 I1 J0 (przejazd wzdłuż okręgu o środku w X1,Y0 aż do osiągnięcia pozycji X2,Y0 - ruch "w kierunku ruchu wskazówek zegara" )

Dla przypomnienia - słowa I i J podają położenia środka okręgu - I w osi X, J w osi Y, jeśli MACH rysuje bzdury (zwykle gigantyczne okręgi) problem najczęściej leży w tym że mach (i inne podobne programy) może pracować w dwóch trybach "I,J,K absolute" gdzie wartościu I,J są podawane względem środka układu współrzędnych (podobnie jak X,Y,Z) albo "relative" gdzie I,J określają przesunięcie względem aktualnego położenia narzędzia.
W przykładzie założyłem że twój MACH chodzi w trybie "absolute" (z tego co wiem fabryczne ustawienia)


Autor tematu
spebik
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 19
Posty: 33
Rejestracja: 07 sty 2010, 20:48
Lokalizacja: Olsztyn

#38

Post napisał: spebik » 18 sie 2013, 14:23

Witam ponownie...

Dzisiaj jest ze mną lepiej, tak więc zaglądam tutaj i już z radością widzę pomocne odpowiedzi. Masz rację "noel20" ż mam co ogarniać! Po Twoim ostatnim wpisie zrobiłem wreszcie półokręg i mój detal zaczyna już mieć potrzebny kształt. Dziękuję Ci Kolego Serdecznie za pomoc, jak również Tobie Kolego "vv3k70r". Trochę tego dużo jak na raz ale się staram. Teraz myślałem jak wytyczyć otwory o średnicy 3mm i aby od razu wykonał je frez którego używam t.j. 2.4mm. Mówiliście jeszcze o kompensacji grubości frezu bo rozumiem że aby te wymiary detalu po frezowaniu były talie jak na rysunku to musiał bym mieć mikronowej grubości frez. Przy zastosowaniu freza o grubości 2.4mm wymiar mojego detalu będzie ze wszystkich stron pomniejszony o połowę tej grubości ...czyli o 1.2mm. czy Dobrze rozumuję? Dzięki również dla "grg12". Pozdrowionka Kochani....

teraz już jest tak:
F200
G0 X0 Y0
G1 X28
G1 Y12
G2 X52 Y12 I12 J0
G1 X52 Y12
G1 Y0
G1 X80 Y0
G1 Y14
G1 X70 Y30
G1 X60
G1 X10 Y30
G1 Y14 X0
G1 X0 Y0.
G0 X0 Y0

Awatar użytkownika

noel20
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 14
Posty: 1395
Rejestracja: 02 lip 2010, 07:15
Lokalizacja: Białystok

#39

Post napisał: noel20 » 18 sie 2013, 14:49

spebik pisze:Mówiliście jeszcze o kompensacji grubości frezu bo rozumiem że aby te wymiary detalu po frezowaniu były talie jak na rysunku to musiał bym mieć mikronowej grubości frez. Przy zastosowaniu freza o grubości 2.4mm wymiar mojego detalu będzie ze wszystkich stron pomniejszony o połowę tej grubości ...czyli o 1.2mm. czy Dobrze rozumuję
Bardzo dobrze rozumujesz.
Jeżeli przy pisaniu każdej linijki nie chcesz siedzieć z kalkulatorem i obliczać współrzędnych, po których frez powinien się poruszać, żeby detal miał wymiary zgodne z rysunkiem to musisz na początku włączyć kompensację promienia narzędzia. Prawostronną lub lewostronną. Zależy w którą stronę jedziesz frezem. Program wtedy automatycznie będzie frez prowadził w określonej odległości od detalu zachowując jego odpowiednie wymiary.

Siądę do kompa z machem i zaraz piszę dalej ;)

[ Dodano: 2013-08-18, 15:21 ]
Kilka uwag do kodu.
Linijka G1 x52 y12 jest zbędna. Po zakończeniu łuku program już tam jest więc wykona ją nie robiąc nic. Tak samo z ostatnią linijką.

Wracając do kompensacji. Trzeba wiedzieć jak jeż użyć. Najpierw prawostronna czy lewostronna. To zależy od tego w którą stronę obrabiasz materiał. Ty objeżdżasz go przeciwnie do ruchu wskazówek zegara, Potrzebujesz włączyć G42
G40 to wyłączenie kompensacji, a G41 to lewostronna kompensacja.
Żeby jednak program wiedział o ile ma się odsunąć to muszisz na początku programu przed włączeniem kompensacji zakdeklarowac narzędzie o odpowiedniej średnicy.
Czyli w kodzie podajesz np, T1 M6
T1 to numer narzędzia w magazynie narzędzi w maszynie, a M6 to rozkaz wydany maszynie, że ma zmienić narzędzie na T1.
Musisz oczywiście pod pozycją T1 zadeklarować swój frez.
Otwierasz a machu config--->tool table i tam w np. pierwszej pozycji wprowadzasz swoje dane freza.
Ref tool to nazwa.
Diameter to średnica.
Klikasz apply i ok.
Kolejna sprawa to jak każesz maszynie wybrać frez o średnicy 2,4mm i włączysz kompensację promienia narzędzia to jak pojedziesz na G0 X0 Y0 to już jesteś w materiale. W prawdzie w osi Z jesteś wyżej niż materiał, ale program będzie się buntował. Więc trzeba odpowiednio najechać na pozycję.
Wbijasz np.
T1 M6
G42
G0 X-2 Y-2
F200
G1 X0 Y0
i maszyna stoi w x0 y0 z uwzględnieniem promienia narzędzia.
A dalej juz swój kod wpisujesz.
F200
T1 M6
G42
G0 X-2 Y-2
g1 x0 y0
G1 X28
G1 Y12
G2 X52 Y12 I12 J0
G1 Y0
G1 X80 Y0
G1 Y14
G1 X70 Y30
G1 X60
G1 X10 Y30
G1 Y14 X0
G1 X0 Y0

otwory, które chcesz wyfrezować robisz już tak samo. Zostawiając włączoną komoensację wpisujesz kod na frezowanie okręgu, a program juz sam tak poprowadzi frez, żeby otwór docelowy wyszedł odpowiednich rozmiarów. Okregi juz umiesz robic :)


Autor tematu
spebik
Czytelnik forum poziom 3 (min. 30)
Czytelnik forum poziom 3 (min. 30)
Posty w temacie: 19
Posty: 33
Rejestracja: 07 sty 2010, 20:48
Lokalizacja: Olsztyn

#40

Post napisał: spebik » 18 sie 2013, 18:11

SUPER "noel20"!

W jakim miejscu powinienem wpisać kod na wiercenie? Czy na końcu po wykonaniu obrysu, cz może być na początku i nie ma to znaczenia? Może malutka podpowiedz ... linijka ze zwymiarowaniem jednego otworu to będę miał wzór o postaram się zrobić pozostałe 3. pozdr.

[ Dodano: 2013-08-18, 18:30 ]
aha....jeszcze ta linijka jest dla mnie niezrozumiała :G0 X-2 Y-2 ....dlaczego jest te -2?

[ Dodano: 2013-08-18, 18:32 ]
to wyjazd poza materiał w dolnym lewym rogu?

[ Dodano: 2013-08-18, 18:51 ]
KURCZE chyba napisałem...co powiesz na moje wypociny?
G42
G0 X-2 Y-2
G1 x0 y0
G1 X28
G1 Y12
G2 X52 Y12 I12 J0
G1 Y0
G1 X80 Y0
G1 Y14
G1 X70 Y30
G1 X60
G1 X10 Y30
G1 Y14 X0
G1 X0 Y0.
G0 X6.765 Y11
G3 I1.5
G0 X21 Y5
G3 I1.5
G0 X59 Y5
G3 I1.5
G0 X73.235 Y11
G3 I1.5

[ Dodano: 2013-08-18, 19:05 ]
Musiałem otwory po lewej stronie przesunąć o 3 w lewo bo nie było symetrycznie...nie wiem teraz czy aby nie są za daleko od siebie, ale to chyba jeszcze nie o to chodzi....zobacz:
G0 X-2 Y-2
G1 x0 y0
G1 X28
G1 Y12
G2 X52 Y12 I12 J0
G1 Y0
G1 X80 Y0
G1 Y14
G1 X70 Y30
G1 X60
G1 X10 Y30
G1 Y14 X0
G1 X0 Y0.
G0 X3.765 Y11
G3 I1.5
G0 X18 Y5
G3 I1.5
G0 X59 Y5
G3 I1.5
G0 X73.235 Y11
G3 I1.5

[ Dodano: 2013-08-18, 19:09 ]
teraz wygląda to symetrycznie ale nie wiem czy w machu można zmierzyć odległości, czy trzeba wyfrezować detal próbny, np. na jakimś cieniutkim materiale?

[ Dodano: 2013-08-18, 19:25 ]
pytanie jest takie....czy przy wymiarowaniu otworu podaję jego środek czy krawędź, wiedząc oczywiście jakiej średnicy jest otwór....jednak podawanie krawędzi byłoby chyba błędem....

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „G-CODE - programowanie”