CNC Edward Dawidowicz
wstęp do programowania maszyn
      biuro@eande.com.pl




    CNC programowanie parametryczne cz.1

    temat: front meblowy, kontur, zawiasy

-------------------------------------------------------------------------------------------------------------------------

    Programowanie maszyny CNC, nie jest żadną wiedzą tajemną..
    Musimy sobie jednak zdawać sprawę z tego, że jeśli zadamy jej niezrozumiałe polecenie,.
    po prostu go nie wykona..
    Gorzej, jeśli wykona polecenie iterpretując je inaczej, niż sobie tego życzyliśmy.

    Wcześniej opisałem zasady tworzenia prostych programów - i tu jesteśmy skazani na naukę języka, jaki rozumie maszyna,
    bo ona póki co, naszego się nie nauczy..
    Na pocieszenie, możemy sobie powiedzieć, że G-kod, też nie jest językiem maszyny, też została go nauczona.

    Tutaj musicie rozstrzygnąć, czy interesuje was użytkowanie maszyn ze zrozumieniem, czy potraktujecie je jak wiele innych
    sprzętów, których działania na codzien nikt nie analizuje.
    Moim zdaniem, dzaiłanie maszyny CNC powinnismy obdarzyć wi ększym zainteresowaniem, niż telewizor, czy telefon.

    Aby maszyna wykonała oczekiwaną, przez nas pracę, musimy stworzyć zrozumiały dla niej kod.
    Jak to zrobić?.
    Mamy do wyboru dwie drogi:
    1. mozemy projektować detale ( nawet całe złożenia) przy pomocy programów komputerowych CAD, a następnie za pomocą proramu komputerowego wygenerować programy do maszyny.
    2. możemy programy napisać samodzielnie
    Która z metod jest lepsza?
    Która z metod jest łatwiejsza?
    Nie sądzę, aby ktoś jednoznacznie to rozstrzygnął.
    Myślę, że należy znać obydwie, a stosować tę metode, która jest wg naszej wiedzy korzystniejsza,

    Od dawna zjmuję się projektowniem. Korzystałem z róznych programów dedykowanych do okreslonych konstrukcji,
    ale zdarzyło mi się parę razy projektować np. schody w ZWCAD, ponieważ program COMPASS nie przewidywał oczekiwanych rozwiązań.
    Z mojego doswiadczenia, mogę powiedzieć, że istnieją produkty, które nie wymagają programów projektowych,
    jako niezbędnych do wdrożenia ich do produkcji na maszynach CNC.
    Tu się narażę (forumowiczom z cnc.info.pl), ale programy do produkcji mebli, drzwi nie są potrzebne.
    Wystarczy raz napisać program realizujący np. bok szafki.
    Taki program w maszynie wytnie wszystkie boki do wszystkich szafek.

    Aby tak to działało, program nie może mieć stałych parametrów toru jazdy narzędzia.
    Napiszmy wobec tego program parametryczny. ( nie bojcie się tego oreślenia, bo jest to sposób czytelniejszy od cyferek).


    Ale po kolei.
    Aby zademonstrować istotę działania programu, użyłem edytora XILOG3 (maszyny SCM)."



    L DLUGOSC =180 ;------------- "DLUGOSC PROSTOKATA"
    L WYSOKOSC =120 ; ----------- "WYSOKOSC PROSTOKATA"
    L PROMIEN =15; ---------- "PROMIEN OKRĘGU"
    L X_SRODKA =50; ----------- "WSPOLRZEDNA X SRODKA OKRĘGU"
    L Y_SRODKA =50 ; ------------ "WSPOLRZEDNA Y SRODKA OKRĘGU"
    ;
    ;
    XT G=101# ;------------------ WYBÓR NARZEDZIA
    C =2 ;--------------------------------------------- PRZEJAZD PO LEWEJ STRONIE KONTUTU
    ;
    ;------------------------------------ WYCIECIE PROSTOKATA
    G0 X=0 Y=0 Z=-5
    G1 Y=WYSOKOSC
    G1 X=DLUGOSC
    G1 Y=0
    G1 X=0
    ; ;------------------------------------ WYCIECIE KOLA
    G0 X=X_SRODKA+PROMIEN Y=Y_SRODKA Z=-5
    G3 I=X_SRODKA J=Y_SRODKA r=PROMIEN


    Jak widać niżej, maszyna zrealizuje kod, gdzie wpólrzędne cyfrowe, zastapione zostały zmiennymi tekstowymi,
    w tym przypadku nawet nazwami.

    Zasada jest prosta: zmieniamy wartości zmiennych, i mamy już zupełnie inny produkt.

    L DLUGOSC =100 ; "DLUGOSC PROSTOKATA"
    L WYSOKOSC =150 ; "WYSOKOSC PROSTOKATA"
    L PROMIEN =20 ; "PROMIEN OKRĘGU"
    .............



    Prawda, że proste?.


    Jedźmy dalej.
    Maszyny CNC, świetnie liczą. Znają też trygonometrię,
    Nie będzie to dla niej żaden wyczyn, ale niech policzy sobie trochę.
    Koło będzie miało Srednicę 1/3 wysokosci, a srodek leżeć będzie w połowie wysokości i 1/3 długości.
    ....................
    L PROMIEN =WYSOKOSC/6
    L X_SRODKA =DLUGOSC/3
    L Y_SRODKA =WYSOKOSC/2
    ....................



    Potrafimy wyciąć dowolny prostokąt, potrafimy w dowolnym miejscu wyciąć koło, potrafimy wymiary i położenie koła
    powiązać z wymiarami prostokąta.

    Jak wyciąć kolejne koło?

    Możemy podać nowy promień, oraz nowe współrzedne srodka koła i przepisać sekwencję wycinania koła,
    ale też możemy to zrobić inaczej.
    Usuwamy z programu sekwencje wycinające prostokąt i koło i zapisujemy je w odrębnych plikach.
    Pliki dla ułatwienia nawałem tak, jak procedury, które wykonują,
    Z naszego programu głownego, zniknęły kody torów narzędzi.
    W programie definiujemy interesujące nas dane, i wywołujemy programy, które je realizują,
    Pojawiło się dodatkowe koło, które zostało opisane w liniach 17 i 18, a wywołane w linii 18.



    I tak krok po kroku stworzyliśmy program, w którym deklarujemy wymiary i położenie, i dwa podprogramy (KOLO_1 i PROSTOKAT)
    Taki program, po sprawdzeniu w praktyce, daje gwarancję, poprawności działania dla każdych innych wartości.
    .



    Na podstawie tych przykładów, możemy już budować dowolny program głowny, a tworzac odpowiednie podprogramy dedykowane do wykonywania okreœlonych czynnoœci.. Co zrobić, jeœli program zawiera elementy, które nie powinny być obrabiane w każdym wykonywanym detalu?
    Można je po prostu usunšć, można prrzeskoczyć niepotrzebny fragment programu.

    W linii 11 pojawiło się polecenie GOTO SKOK ( IdŸ do miejsca proramu zaiwerajšcego nazwę, porawniej etykietę SKOK).
    Etyieta SKOKznajduje się w linii 17,
    Wszystkie polecenia zawarte między liniami 11 a 17 zostanš zignorowane. W tym przypadku kolo pierwsze nie zostanie wycięte.



    Tę tecnikę, zalecam jednak do sytuacji doraŸnych, np przy realizacji programu na maszynie.
    Zdarza sie, że zmuszeni jesteœmy przerwać pracę w trybie awaryjnym, w takiej sytuacji tego typu skok,
    pozwala ominšć zrealizowane częœci programu.


    Lepszym sposobem, jest wrowadzenie zmiennych, króre stanowią znaczniki w programie.
    Tutaj znaczniki kolejnych obróbek nazwane zostały jako KONTUR_1, KONTUR_2, KONTUR_3.
    Zmienne o tych nazwach zostały zdeklarowane na początku programu, co zdecydowanie ułatwia dostęp do nich.
    Do programu dopisane zostały instrukcje typu:

    IF KONTUR_1 =1 THEN ----------------------------------------JEŻELI zmienna o nazwie KONTUR_1 =1 WYKONAJ
    S /"PROSTOKAT" X=0 Y=0 ---------------------------------w tym miejscu nąstępuje wywołanie podprogramu PROSTOKAT
    FI------------------------------------------------------------------------tu nastepuje zakonczenie działanie instrukcji IF


    Oznacza to, że prostokąt zostanie wycięty tylko wtedy, gdy zmienna KONTUR_1 ma wartóść 1.
    Każda inna wartość tej zmiennej, nie spełnia postawionego warunku, prostokąt nie będzie wycięty.
    Ta instrukcja jest jedną z dostępnych instrukcji warunkowych.
    W przykładzie zmienne:mają wartośći:
    KONTUR_1=0
    KONTUR_1=1
    KONTUR_1=1


    Ponieważ KONTUR_1=0 , prostokąt nie został wycięty,





    W tej części pokazałem, jak stworzyć program, który łatwo sie modeluje.
    Można go rozbudować o nowe elementy.
    Można w programie głownym coś wykonać, a uzupełnić to odpowiednimi podprogramami.
    Domyślacie się pewnie, ze podprogramy tworzymy dla często wykonywanych czynności, zaś obróbki jednorazowe
    projektujemy w programie głównym.


    Wierzę, że napisanie programu parametrycznego na konturowanie frontu do mebli nie nastręczy Wam kłopotów.




    Powodzenia