Programowanie maszyn sterowanych numerycznie CNC, podstawy programowania parametrycznego dla sterowników FANUC i Sinumerik, porady, wskazówki, przydatne wzory i tabele, podstawy obsługi aplikacji CAD/CAM oraz symulatorów CNC.

G02, G03 - interpolacja kołowa

G02, G03 – interpolacja kołowa

Wykonywanie łuków za pomocą interpolacji kołowej G02/G03, jest jedną z podstawowych czynności programistycznych dla obrabiarek CNC. Kluczem do prawidłowego zaprogramowania takiej obróbki jest znajomość kilku elementów :
Tabela otworów pod gwint

Tabela otworów pod gwint

Otwory pod gwinty – tabela doboru wierteł pod gwinty
Alfabet CNC

Alfabet CNC

Znajomość alfabetu CNC, czyli gkodu (g code) , jest czymś, bez czego nie można myśleć o profesjonalnym programowaniu maszyn CNC. Oczywiście bycie dobrym programistą to również posiadanie wiedzy z zakresu materiałoznawstwa, czy matematyki, ale gkod jest swego rodzaju ‚spoiwem’, które łączy wszystkie te elementy w jedną, funkcjonalną całość – program....


Bardzo prosty program pokazujący możliwości drzemiące w programowaniu parametrycznym. Program pisany dla sterownika Fanuc, w wersji bardzo uproszczonej, nie uwzględniający korekcji promienia G41/G42. W naszym przykładzie wykonamy piramidke 3-piętrową, o krawędzi a =10mm.

Bedziemy potrzebowali opracowac prosty algorytm, wyliczający długość krawędzi dla danego piętra piramidki. W naszym programie oznaczymy tą wartość parametrem #4. Wygląda to tak :

    #1 – długość krawędzi a,
    #2 – ilość pięter piramidki,
    #4 – szukana długość krawędzi dla danego piętra piramidki.

Po prostych działaniach otrzymujemy #4= #1 (1+2(#2-1)).
Dla sprawdzenia wyliczamy z powyższego równania wartość długości krawędzi dla każdego z pięter piramidki, dzięki czemu widzimy, że krawędź… :

    3-ego, najniższego piętra będzie miała długość 50 – 5a
    2-ego piętra będzie miała długość 30 -3a
    1-ego, najwyższego piętra będzie miała długość 10 – to oczywiście jest nasza wartość ‚a’ deklarowana na początku programu

Wszystko się zgadza.

Możemy więc przystąpić do pisania programu :

N10 #1=10 (dlugosc krawedzi 'a')
N15 #2=3 (ilosc pieter piramidki)
N20 #3=0.5 (ap)
N25 #4=#1[1+2[#2-1]] (długość krawędzi dla danego piętra piramidki)
N30 #5=#1*#2-#1/2 (punkt startowy obróbki danego piętra piramidki)
N35 #6=0 
N40 G90 G0 Z5
N45 G90 G0 X[#5] Y[#5]
N50 G90 G1 Z[-#6]
N55 G91 G1 X[-#4]
N60 G91 G1 Y[-#4]
M65 G91 G1 X[#4]
N70 G91 G1 Y[#4]
N75 #6=#6+#5
N80 IF[#6LE#2]GOTO50
N85 #2=#2-1
N90 IF[#2GE0]GOTO25
N95 G90 G0 Z5
N100 M30

Może się zdarzyć, że wyrażenia typu #4=#1(1+2(#2-1)) okażą się dla maszyny zbyt złożone, będziemy więc musieli je ‚porozbijać’ na elementy pierwsze.
Nasze makro wykorzystujemy podając trzy wartości – długość boku ‚a’, ilość pięter piramidki i ap obróbki.

Poprzedni wpisInterpolacja helikalna / spiralna Nastepny wpisKompensacja promienia G41, G42

4 comments

  1. widget says:

    Wrz 24, 2012

    Wydaje mi się, że wyrażenie ” #4=#1(1+2(#2-1))” na części sterowań (fanuc, mazak), nie wykona nic więcej niż #4=#1, gdyż nawiasy „()” zawierają komentarze, a w nawiasach „[]” wpisuje się różne wyrażenia matematyczne, czy też warunki przy polecaniach warunkowych.

  2. Marcin Dudek says:

    Wrz 24, 2012

    Słuszna uwaga – już poprawione. Pozdrawiam.

  3. widget says:

    Wrz 28, 2012

    Jeszcze komentarze daj w nawiasy „( )”, żeby ktoś nie miał problemu jak to wrzuci na maszynę . Pozdrawiam.

  4. stel says:

    Maj 19, 2013

    #4= #1 (1+2(#2-1)).
    skąd się wzięło takie wyliczenie?
    Mógłby ktoś to wytłumaczyć?

Skomentuj

Musisz by zalogowany by moc komentowa..