Jaki CAD/CAM wybrać do amatorskiej frezarki?

Spis treści
Jeszcze przed zbudowaniem lub kupnem własnej maszyny CNC stajemy przed dylematem wyboru programów do modelowania oraz tworzenia kodu, który zrozumie frezarka. W domowych zastosowaniach oraz małych firmach najbezpieczniej zastosować darmowe programy. Ale czy są one lepsze niż płatne? W tym artykule opiszemy zalety i wady wszystkich, jakie stosowaliśmy. Oprócz tego znajdzie się tu opis operacji wykonywanych na maszynach CNC oraz krótkie zestawienie podstawowych znaczników języka programowania g-code.
1. Operacje CNC
Przed wyborem programu do frezowania musimy określić, jakie operacje będziemy wykonywać. Poniżej wypisana jest lista podstawowych, nie wszystkie są nam potrzebne. Zależy, na czym chcemy się skupić: na elementach metalowych, czy może drewnianych artystycznych?
- Wycinanie (profile operation) – jest to proste wycięcie po konturze. Opcja przydatna także do fazowania, czyli ścinania ostrych krawędzi. Na ilustracji niżej wycinanie zaznaczone jest kolorem zielonym. Widoczne są też przejścia w osi Z, bardzo przydatne przy obróbce twardych materiałów. Nie chcemy przecież wjechać od razu całym frezem w stalową formatkę. Przydatną funkcją przy generowaniu ścieżek obróbki są tzw. mostki (łapki). Mają one za zadanie przytrzymywać element podczas obróbki w taki sposób, aby nie poruszał się, szczególnie przy ostatnich przejściach. Na rysunku poniżej łapki zaznaczone są niebieskimi trójkątami.

- Kieszeń (pocket) – czyli frezowanie otworu lub wgłębienia. Tutaj powinniśmy mieć opcję frezowania wzdłuż krawędzi (jak na obrazku poniżej) i wjazdu w osi Z co pewną jednostkę długości. Proste programy generują kod tylko jako przejazdy pionowe, poziome lub zygzak. Efekt jest taki, że element nie jest idealnie gładki, a krawędzie są widocznie poszarpane. Na podobnej zasadzie opiera się tzw. planowanie (planar milling), inaczej równanie, czyli tworzenie płaskiej powierzchni pod dalszą obróbkę. Różnica polega na tym, że w tym wypadku robimy kieszeń na całej powierzchni, tą samą liczbą przejść. W ten sposób otrzymujemy płaską powierzchnię.

- Wiercenie – nie wymaga komentarza. Przydatne są tu opcje łamania wióra, wyjazdu co jakiś czas w celu wyrzucenia materiału oraz przerwy czasowej na wykonanie dokładnego otworu. Do wiercenia otworów używa się specjalnych rodzajów wierteł do CNC.

- Grawer (engrave) – frezowanie wgłębienia, najczęściej frezem typu V. W większości programów CAM frez wchodzi w materiał głębiej lub płyciej, w zależności od szerokości ścieżki. Przy szerokich ścieżkach na środku pozostaje kieszeń (pocket), którą najczęściej frezuje się frezem palcowym, aby uzyskać płaską powierzchnię. Na zdjęciu poniżej widoczna jest splanowana płytka aluminiowa ze sfazowanymi krawędziami i grawerem.

- Frezowanie 3D to wycinanie obiektów w pełnym trójwymiarze. Tutaj dobrze, jeżeli mamy do dyspozycji dwa typy obróbki: wstępną oraz główną (dokładną). Wstępna to przejazdy w osiach X lub/i Y frezem palcowym (płaskim). Chodzi o to, aby zebrać duże warstwy materiału jak najszybciej i przygotować go do obróbki dokładnej małym frezem kulowym. Frez ten przejeżdża tuż przy krawędzi obiektu 3D, wygładzając go.

- Toczenie (frezotoczenie) – opcja dostępna dla tokarek CNC lub maszyn co najmniej 4-osiowych z osią obrotową. Mówimy wówczas o frezotoczeniu. Obrabiany element jest obracany wokół osi, a frez w tym czasie wykonuje ruch prostopadły, równoległy lub niekiedy złożony względem osi obrotowej. Tej operacji jeszcze nie używaliśmy, dlatego nie mamy doświadczenia w tworzeniu tego typu programów.
2. Ręczne pisanie g-code
Jeżeli jesteśmy posiadaczami maszyny CNC, warto znać chociaż podstawy języka programowania g-code, nawet jeśli korzystamy z programów, które generują kod automatycznie. Znajomość umożliwi nam chociażby łatwą i szybką modyfikację kodu lub znalezienie błędów i szybką poprawkę. Przydaje się też do pisania prostych operacji, typu wycinanie figur lub szybkie dojazdy bez skrawania. Kod piszemy ręcznie, jeśli wiemy, że nie zajmie nam to więcej czasu, niż gdybyśmy mieli zrobić to w jakimś programie. Poniżej w tabelce wypisane są najbardziej podstawowe funkcje.
| Znacznik g-code | Opis działania |
|---|---|
| G00 | szybki dojazd, prędkość maksymalna maszyny |
| G01 | ruch roboczy liniowy, wymagane podanie prędkości posuwu (F) |
| G02/G03 | ruch roboczy kołowy zgodny/przeciwny do wskazówek zegara |
| G17/G18/G19 | ustawienie aktywnej płaszczyzny XY/XZ/YZ dla wierceń i interpolacji kołowej |
| G20/G21 | wymiarowanie w calach/milimetrach |
| G90/G91 | zmiana pozycji wrzeciona bezwzględna/przyrostowa |
| M02 | koniec programu |
| M03/M04 | włączenie prawych/lewych obrotów wrzeciona |
| M05 | wyłączenie wrzeciona |
| M06 | wyświetlenie polecenia „zmień narzędzie” |
| M07/M08 | włączenie chłodziwa |
| M09 | wyłączenie chłodziwa |
| T | wybór narzędzia, np. T02 to narzędzie nr 2 |
| S | definicja prędkości obrotowej wrzeciona (obr./min), np. S2300 |
| F | definicja prędkości posuwu (mm/min), np. F300 |
| X, Y, Z, A | położenie wrzeciona, np. X10 Y2 Z0, i kąt dla osi obrotowej A |
2.1. Przejazd w linii prostej
Ruch liniowy można wykonać za pomocą dwóch funkcji. Pierwsza z nich to G0, czyli szybki dojazd we wskazany punkt. Maszyna dojeżdża w to miejsce z maksymalną szybkością, niezależną od ustawionego posuwu roboczego. Druga to G1 i tutaj przejazd będzie się odbywał z prędkością taką, jaką zdefiniujemy w zmiennej F, o ile nie jest ona większa niż prędkość maksymalna naszej maszyny. Poniżej w tabelce podany jest przykład tego samego przejazdu dla dwóch rodzajów ustawiania pozycji: bezwzględnej G90 i inkrementalnej G91. Bezwzględna to po prostu dojazd we wskazany punkt, a inkrementalna to dodawanie wartości do poprzedniej pozycji.
Przykład:
| Przykład dla G90 | Przykład dla G91 | Opis |
|---|---|---|
| G17 | G17 | ustawienie aktywnej płaszczyzny na XY |
| G90 | G90 | pozycjonowanie bezwzględne |
| T2 | T2 | zamontuj narzędzie nr 2 |
| G21 | G21 | wymiarowanie w milimetrach |
| G0 X0 Y0 Z0 | G0 X0 Y0 Z0 | ustawienie pozycji początkowej |
| G91 | pozycjonowanie przyrostowe | |
| M3 | M3 | włączenie prawych obrotów wrzeciona |
| S3000 | S3000 | prędkość obrotowa wrzeciona 3000 obr/min |
| F1000.0 | F1000.0 | posuw 1000 mm/min |
| G0 X5 Y10 | G0 X5 Y10 | szybki dojazd w pozycję X=5 mm, Y=10 mm |
| G1 Z-5 | G1 Z-5 | zjazd osi Z na 5 mm |
| G1 X10 Y15 | G1 X5 Y5 | frezowanie z zadaną prędkością posuwu |
| G1 X20 Y20 | G1 X10 Y5 | … |
| G1 Y30 | G1 Y10 | … |
| G1 X35 Y5 | G1 X15 Y-25 | … |
| G1 X10 | G1 X-25 | … |
| G80 | G80 | wyłączenie cyklu frezowania |
| T0 | T0 | wyjazd osi Z w pozycję zerową |
| M2 | M2 | zakończenie programu, wyłączenie chłodziwa i wrzeciona |

2.2. Frezowanie okręgu lub wycinka okręgu
Na początku określamy płaszczyznę, na której pracujemy, następnie punkt początkowy frezowania oraz punkt końcowy wraz z odległościami od punktu początkowego do środka koła. Zmienne reprezentujące odległość do środka koła oznaczane są oddzielnymi literami dla każdej osi. Dla osi X jest to I, dla Y to J, natomiast dla Z to K, tak jak poniżej:
- G17 – X, Y, I, J
- G18 – X, Z, I, K
- G19 – Y, Z, J, K
Przykład 1:
| G-code | Opis |
|---|---|
| G17 | ustawienie aktywnej płaszczyzny na XY |
| T5 | zamontuj narzędzie nr 5 |
| G90 | pozycjonowanie bezwzględne |
| G21 | wymiarowanie w milimetrach |
| G0 X0 Y0 Z0 | ustawienie pozycji początkowej |
| M4 | włączenie lewych obrotów wrzeciona |
| S5000 | prędkość obrotowa wrzeciona 5000 obr/min |
| F300.0 | posuw 300 mm/min |
| G0 X20 Y30 | szybki dojazd w pozycję X=20 mm, Y=30 mm |
| G1 Z-5 | zjazd osi Z na 5 mm |
| G3 X30 Y20 J-10 | od pozycji, w której znajduje się aktualnie wrzeciono, rysuj wycinek o promieniu 10 mm i środku w punkcie X+I=20+0=20 mm oraz Y+J=30-10=20 mm do punktu X=30 Y=20 |
| G2 X50 Y20 I10 | od pozycji, w której znajduje się aktualnie wrzeciono, rysuj wycinek o promieniu 10 mm i środku w punkcie X+I=30+10=40 mm oraz Y+J=20+0=20 mm do punktu X=50 Y=20 |
| G80 | wyłączenie cykli frezowania |
| T0 | wyjazd osi Z w pozycję zerową |
| M2 | zakończenie programu, wyłączenie chłodziwa i wrzeciona |

W nowszych maszynach to samo można zrobić za pomocą jednej zmiennej R.
Zamiast:
G0 X20 Y30
G1 Z-5
G3 X30 Y20 J-10
użyć następującej formuły:
G0 X20 Y30
G1 Z-5
G3 X30 Y20 R10
gdzie R to po prostu promień okręgu, czyli w tym przypadku 10 mm. Aby zarysować pełne koło, wystarczy podać taki sam punkt jak startowy lub w funkcjach G2 i G3 nie podawać żadnego punktu:
G0 X20 Y30
G1 Z-5
G3 X20 Y30 J-10 (lub G3 J-10)
Przykład 2:
| G-code | Opis |
|---|---|
| G18 | ustawienie aktywnej płaszczyzny na XZ |
| T1 | zamontuj narzędzie nr 1 |
| G90 | pozycjonowanie bezwzględne |
| G21 | wymiarowanie w milimetrach |
| G0 X0 Y0 Z0 | ustawienie pozycji początkowej |
| M3 | włączenie prawych obrotów wrzeciona |
| S5000 | prędkość obrotowa wrzeciona 5000 obr/min |
| F300.0 | posuw 300 mm/min |
| G0 Y44.14 Z44.14 | szybki dojazd w pozycję Y=44,14, Z=44,14 |
| G2 Y15.86 Z15.86 I-14.14 K-14.14 | od pozycji, w której znajduje się aktualnie wrzeciono, rysuj wycinek o promieniu 20 mm i środku w punkcie Y+J=44,14-14,14=30 mm oraz Z+K=44,14-14,14=30 mm do punktu Y=15,86 Z=15,86 |
| G80 | wyłączenie cyklu frezowania |
| T0 | wyjazd osi Z w pozycję zerową |
| M2 | zakończenie programu, wyłączenie chłodziwa i wrzeciona |

Można użyć też operacji w drugą stronę. Zamiast zgodnie z ruchem wskazówek zegara:
G0 Y44.14 Z44.14
G2 Y15.86 Z15.86 J-14.14 K-14.14
przeciwnie do ruchu wskazówek zegara:
G0 X15.86 Y15.86
G3 Y44.14 Z44.14 J14.14 K14.14
Lub inny zapis:
G0 Y15.86 Z15.86
G3 Y44.14 Z44.14 R20
2.3. Operacje wiercenia
Cykl nawiercania (simple drilling cycle), czyli po prostu proste wiercenie. Składnia wygląda następująco:
G81 X~ Y~ Z~ A~ R~ L~
Zmienne: X, Y, Z, A to oczywiście pozycja maszyny, R to wysokość bezpiecznego przejazdu, natomiast L (loop) to liczba powtórzeń operacji wiercenia w tym samym punkcie. Wiertło wjeżdża od razu na maksymalną głębokość i wyjeżdża do pozycji bezpiecznego przejazdu. Nic więcej.
Cykl wiercenia z przerwą czasową (drilling cycle with dwell) – po wjechaniu w materiał frez zatrzymuje się na określony czas.
G82 X~ Y~ Z~ A~ R~ L~ P~
Zmienne jak w poprzednim cyklu G81. P to czas postoju w sekundach. Jest to o tyle ważne, że przy ostatnim cyklu wiercenia pozwala prawidłowo odciąć wiór od dna otworu. Funkcję tę stosuje się głównie wtedy, gdy zależy nam na dokładnym obrobieniu dna otworu. Dodatkowo jest to istotne, gdy głębokość otworu jest tolerowana. W tym przypadku można użyć także funkcji G04, dzięki której zdefiniujemy liczbę wjazdów w osi Z. Przyda się to np. do wyrzucenia materiału z otworu, czyli tzw. łamania wióra.
Cykl wiercenia z łamaniem wióra (peck drilling) i jego składnia:
G83 X~ Y~ Z~ A~ R~ L~ Q
Q przekazuje maszynie, co ile ma wjeżdżać wiertło do osiągnięcia wartości Z. Po każdym wjeździe następuje wyjazd do punktu bezpiecznego przejazdu Z lub R, w zależności od poniższych parametrów:
- G98 – powrót do płaszczyzny wyjściowej Z
- G99 – powrót do płaszczyzny odniesienia R
Brakuje tutaj opcji P do chwilowego zatrzymania wiertła. Rozwiązanie tego problemu znajduje się w przykładzie nr 3.
Przykład 1:
Jest to wiercenie z łamaniem wióra na płaszczyźnie XY w trzech punktach: X11 Y10, X21 Y10 oraz X21 Y20. Głębokość maksymalna to -5 mm i 3 przejazdy co Q=2 mm. Ostatni, trzeci przejazd zejdzie tylko na 1 mm, tak aby nie przekroczyć maksymalnej zadanej głębokości w punkcie Z. Wiertło wyjeżdża i szybko przejeżdża do punktu Z dzięki definicji G98, więc parametr R nie ma tu znaczenia. G80 to wyłączenie funkcji wiercenia.
T3 M06 G43
G17 G90 G21
G00 X11 Y10 S7000 M03
Z5
G83 Q2 G98 X11 Y10 Z-5 R2.5 F1000
X21 Y10
X21 Y20
G80
T0 M06 M02

Przykład 2:
Jest to wiercenie na głębokość 5 mm z przerwą czasową 0,1 s. Pozycje wiercenia jak w przykładzie 1. Wszystkie funkcje były opisane w podrozdziale 2.1.
T3 M06 G43
G17 G90 G21
G00 X11 Y10 S7000 M03
Z5
G01 Z-5 F1000
G04 P0.1
G00 Z2.5
X21 Y10
G01 Z-5
G04 P0.1
G00 Z2.5
X21 Y20
G01 Z-5
G04 P0.1
G00 Z2.5
T0 M06 M02

Prostszy zapis powyższego przykładu, dzięki funkcji G82:
T3 M06 G43
G17 G90 G21
G00 X11 Y10 S7000 M03
G82 Z-5 G99 X11 Y10 R2.5 P0.1 F1000
X21 Y10
X21 Y20
G80
T0 M06 M02
Przykład 3:
A co, jeśli jesteśmy zachłanni i chcemy mieć łamanie wióra oraz przerwę czasową w jednym kodzie? Wiercenie co 2,5 mm do Z=-5 z przerwą czasową P=100 ms w trzech punktach, jak w przykładach 1 i 2:
T3 M06 G43
G17 G90 G21
G00 X11 Y10 S7000 M03
Z2.5
G01 Z-2.5 F1000
G00 Z2.5
Z-2.5
G01 Z-5
G04 P0.1
G00 Z2.5
X21 Y10
Z2.5
G01 Z-2.5
G00 Z2.5
Z-2.5
G01 Z-5
G04 P0.1
G00 Z2.5
X21 Y20
Z2.5
G01 Z-2.5
G00 Z2.5
Z-2.5
G01 Z-5
G04 P0.1
G00 Z5
T0 M06 M02

3. Jakie DARMOWE programy CAM?
Istnieją programy napisane wyłącznie pod konkretne operacje oraz uniwersalne, inżynierskie, do wszystkiego. Te drugie mają następujące wady: są płatne, bardzo drogie, wymagają mocnego komputera i są skomplikowane. Na początku polecimy proste programy do konkretnych zastosowań, oczywiście darmowe, oraz opiszemy ich zalety i wady.
3.1. HeeksCAD – wszystko oprócz grawerowania i toczenia
HeeksCAD jest funkcjonalnym i darmowym programem do obróbki CNC, w wersji trial. Na szczęście ograniczenia są tylko denerwujące (dodawanie komentarzy, które trzeba usunąć z pliku przed frezowaniem, oraz otwieranie strony domowej podczas weryfikacji g-code), a nie zmieniają wcale funkcjonalności programu w porównaniu do pełnej wersji. Problem znika, jeżeli kupimy go lub skompilujemy zamiast instalować. Działa także na Linuksie, no i to, co nas najbardziej interesuje, na LinuxCNC. Tu mamy możliwość wysłania g-code jednym przyciskiem do maszyny. Jednak opcja ta w Linuksie zastępuje opcję symulacji, która w Windowsie jest bardzo przydatna. Dobrze jest podejrzeć, co stworzyliśmy, przed rozpoczęciem pracy w warsztacie.
Co możemy zrobić w programie? Wycinanie, planowanie, kieszeń, operacje wiercenia oraz frezowanie w 3D. Dodatkowo jest możliwość rysowania i wymiarowania prostych brył i figur. Przy obróbce da się ustawić liczbę przejść w osi Z, obróbkę po konturze dla kieszeni oraz wyjazdy co pewien czas przy wierceniu. Są to jedne z istotniejszych funkcjonalności, a opcji jest wiele więcej. Według mnie jest to najlepszy program do darmowego tworzenia g-code na rok 2016. Część możliwości HeeksCAD przedstawiona jest w filmie poniżej.
Największe wady, jakie zaobserwowaliśmy:
- brak łagodnego zjazdu przy przejściach w osi Z, przez to konieczne jest ustawianie bardzo niskiej prędkości posuwu osi Z!!!!
- toporne projektowanie CAD
3.2. F-Engrave – wszystko, co związane z grawerowaniem
F-Engrave jest w pełni darmowym programem napisanym w języku Python i opartym na programie engrave-11, napisanym dla LinuxCNC. Do rozpoczęcia pracy potrzebujemy tekstu, który możemy wpisać bezpośrednio w programie, lub obrazu czarno-białego w formacie .bmp, lub pliku w formacie .dxf. Dostępne są następujące opcje grawerowania:
- grawerem V – ścieżki obliczane dla wybranego frezu i dodatkowo opcja czyszczenia frezem płaskim
- grawerem B – z angielskiego „ball nose”, czyli frezem kulowym
- wycinanie kieszeni frezem płaskim
- tworzenie intarsji (inlay), czyli dwóch elementów: kieszeni i klina
F-Engrave jest na pewno najlepszym darmowym, w dodatku prostym i stabilnym programem do grawerowania. Największą wadą jest obsługa plików: muszą mieć odpowiedni format, szczególnie dxf. Obsługuje BMP zapisane tylko w formacie 24-bitowym.

Film: tworzenie g-code w F-Engrave
3.3. Dmap2gcode – płaskorzeźby ze skali szarości
Kolejny po F-Engrave program od scorchworks: Dmap2gcode. Napisany w języku Python i oparty na programie image-to-gcode, zaimplementowanym w LinuxCNC. Mamy tu możliwość przekształcenia obrazka w skali szarości w obiekt 3D. W zależności od szarości punktu przypisywana jest do niego głębokość wjazdu w osi Z. Niestety dość trudno jest stworzyć taki obrazek, aby odwzorowywał to, co chcemy uzyskać. W programie przydałaby się wizualizacja otrzymanego efektu.
3.4. DXFhalftone – obrazy z półcieni
DXFhalftone jest prostym w obsłudze, darmowym programem do tworzenia obrazów z różnej wielkości kropek lub kresek. Obraz dokładnie widoczny jest z pewnej odległości, z bliska widoczne są ściśle rozłożone otwory. Kod może być wygenerowany z dowolnego obrazka jpg, png lub gif. Efekt tworzony jest przez różne rozstawienie otworów w zależności od poziomu kontrastu. Kod można zapisać w formatach zrozumiałych dla maszyn CNC, a także w formacie dxf.
Obrazy najlepiej wykonywać na cienkich, matowych blachach jasnego koloru lub też na litych płytach z pokryciem (laminatem) w kontrastującym kolorze. Oprócz zastosowań artystycznych, blaszki te można użyć jako np. osłonę wentylatora, ozdobne otwory wentylacyjne, w ogrodzeniach, bramach itp.
Film: obraz z półcieni w DXFhalftone
3.5. Inne programy warte polecenia
Gcoderipper – darmowy program napisany w Pythonie przez scorchworks, umożliwiający wczytanie oraz edycję g-code. W programie mamy następujące możliwości:
- skalowanie g-code
- obracanie g-code
- rozdzielanie g-code
- przekształcenie kodu 2D i 2.5D na oś obrotową (czwartą oś)
- zmiana pozycji zerowej
FlatCAM – pozwala na edytowanie i tworzenie płytek drukowanych na maszynie CNC. Obsługuje projekty zapisane w formacie Gerber. Narzędzie przydatne dla elektroników. Możliwość odczytywania takich plików ma również HeeksCAD, nie czyta ich poprawnie, ale jakoś czyta :D. Program oczywiście napisany w Pythonie. Szczególnie przydatny do wyfrezowania izolacji między ścieżkami oraz wiercenia otworów. Program działa na wszystkich systemach operacyjnych. Interfejs jest dziwnie skonstruowany i można się w nim pogubić.

FreeCAD – darmowy program głównie do modelowania. Posiada jednak możliwość tworzenia g-code w zakładce „Path”. Podprogram ten cały czas jest modyfikowany i nie jest w pełni funkcjonalny, ale widać, że ma potencjał. Opis narzędzi w zakładce Path, widocznych na obrazku poniżej w prawej górnej części, znajdziesz w dokumentacji FreeCAD Path Workbench.

Większa lista darmowych programów, nie tylko do CNC, ale także do lasera, oraz programów do konwersji i symulacji znajduje się na stronie http://www.shapeoko.com/wiki/index.php/CAM.
3.6. Niepolecane programy
Pycam – tworzy g-code automatycznie dla obiektów 3D. Jest w nim mało opcji ustawień, a samo tworzenie kodu trwa długie godziny i jest mocno zasobożerne.
FreeMill – w nazwie posiada przymiotnik „free”, ale darmowe są tylko naprawdę podstawowe i bezużyteczne opcje. Zamiast płacić za pełną wersję programu, polecam wesprzeć projekt HeeksCAD.
4. Darmowe modelowanie obiektów do frezowania 2D i 3D
Proste przejazdy i wycinanie można oczywiście napisać ręcznie od razu jako g-code, ale bardziej złożone mogą zająć nam całą wieczność. Nasz obiekt wypadałoby oczywiście narysować w formie elektronicznej. I tutaj zależy, co i w jakim programie. Do prostych rzeczy 2D oraz tzw. 2.5D wystarczy tylko zarys, natomiast do 3D potrzebny jest pełny model. Zatem czego użyć?
4.1. HeeksCAD
Po pierwsze właśnie ten program. Modelowanie jest toporne, a zaawansowane modele naprawdę ciężko zrobić, ale proste rzeczy jak najbardziej. Od razu możemy wygenerować w nim g-code i wysłać do maszyny. Program ma także opcje symulacji, lecz nie wiedzieć czemu, tylko na Windowsie. Link do pobrania: HeeksCAD. Poniżej wypiszemy wszystkie elementy, jakie można zamodelować za pomocą programu:
- rysowanie prostych: linii, prostokątów, owali (fasolek), wielokątów oraz zębatek o dowolnej liczbie zębów
- rysowanie krzywych: przez 3 punkty, środek i punkt, środek i promień oraz elipsy
- rysowanie punktów: nieskończona prosta, punkty, krzywa przez punkty (splajn)
- wymiarowanie, napisy
- transformacje: skalowanie, obracanie, lustro itp.
- rysowanie figur 3D: sfera, sześcian, walec, stożek
- operacje wyciągania figur, obracania itp.
- część wspólna figur, fuzja oraz wycinanie
- fazowanie, zaokrąglanie

4.2. Inkscape
Inkscape to program wektorowy, darmowa alternatywa dla CorelDraw. Modele tworzymy w formacie dxf, oczywiście tylko 2D, ale to wystarczy w zupełności do większości projektów. Z pliku dxf, definiując głębokość frezowania, wykonamy obiekty w 2,5D. Modele dla programu HeeksCAD trzeba wymiarować w pikselach, a nie w mm.
Bardzo przydatna jest tu opcja wektoryzacji bitmapy. Gdy mamy już gotowy obraz pobrany z internetu lub narysowany przez nas w grafice rastrowej, możemy z łatwością przekonwertować go na format wektorowy. Obsługiwany jest on przez większość programów CAM.

4.3. FreeCAD
Bardziej zaawansowany niż HeeksCAD, i w nim też jest możliwość stworzenia g-code (na dzień pisania artykułu wciąż w wersji beta). Można zamodelować i zwymiarować nawet bardzo skomplikowane modele w pełnym 3D. Program jest darmowym odpowiednikiem Autokada czy Solid Edge.

4.4. Gimp
Gimp jest darmowym i zaawansowanym programem do obsługi grafiki rastrowej. Przydatny głównie dla takich programów CAM jak F-Engrave i Dmap2gcode. Dzięki niemu przygotujemy graficznie skomplikowane, głównie ozdobne, artystyczne obrazy. Po takich zabiegach możemy bezpośrednio stworzyć g-code w programach, które importują te formaty, lub przekształcić je na grafikę wektorową w programie Inkscape lub Corel Draw. W punkcie 3.2 jest wstawiony film pokazowy, w którym przerabiamy grafikę kompasu celtyckiego i tworzymy kod w F-Engrave. Dla burżujów lub piratów polecamy program Adobe Photoshop.

4.5. Blender
Blender to najlepszy darmowy program do artystycznego modelowania obiektów 3D. Posiada ogromne możliwości w zakresie tworzenia obiektów 3D, wszystkie są opisane na stronie z funkcjami Blendera. Słabo nadaje się do elementów, które muszą być dokładnie zwymiarowane, lub typowo inżynierskich. Dzięki niemu po dłuższym szkoleniu, np. na YouTube, będziemy w stanie zrobić modele do płaskorzeźb. Pliki zapisujemy w formacie stl, który można obrobić w HeeksCAD lub wydrukować na dowolnej drukarce 3D. Na obrazku poniżej bardzo nieudolne próby zamodelowania płaskorzeźby. Potrzeba jednak więcej niż kilku dni nauki.

5. Programy płatne
Jeżeli wszystkie programy wymienione powyżej nie spełniają naszych wymagań, nie da się w nich osiągnąć zamierzonych celów lub gdy posiadamy maszynę bardziej zaawansowaną niż 3-osiówkę, musimy skorzystać z płatnych programów. Modele 2D oraz 2,5D wykonamy dość szybko i łatwo w każdym programie, natomiast pełne 3D wymaga już więcej wprawy i dłuższego zaznajomienia się z modelowaniem w trójwymiarze. Bez tej umiejętności nie będziemy w stanie wykonać żadnego złożonego elementu. Modelowanie różni się w zależności od rodzaju produktów, jakie wykonujemy.
Modelowanie inżynierskie – takie, w którym ważne jest dokładne zwymiarowanie elementu, czyli jego wysokości, szerokości, promienia, dokładnych pozycji otworów, wcięć itp. Programy inżynierskie wymagają stworzenia elementu z dokładnymi wymiarami i do tego potrzebujemy odpowiedniego CAD-a. Jak napisaliśmy, są darmowe, np. FreeCAD, i płatne, np. Solid Edge, AutoCAD, a także kombajny CAD/CAM: Siemens NX, BobCAD-CAM czy Catia. Te ostatnie są mocno zasobożerne i skomplikowane, za to obsługują nawet maszyny pięcioosiowe. Poza tym przeciętny śmiertelnik-hobbysta nie będzie w stanie wykupić licencji. Koszt to coś pomiędzy końcem dziesiątek a początkiem setek tysięcy złotych, za niepełne wersje.
Modelowanie artystyczne – takie, w którym nie jest ważny wymiar, tylko proporcje, a sam element możemy dowolnie skalować. Przykładem mogą być płaskorzeźby i wszelkiego rodzaju zdobienia w 3D. Do zadań artystycznych będziemy potrzebowali modelu. Jeżeli nie chcemy zlecać tej pracy komuś innemu lub nie znajdziemy gotowych modeli do pobrania, będziemy musieli stworzyć je sami. Pomoże nam np. program ArtCAM od Autodesk. Służy on do obróbki elementów drewnianych. Mamy tu możliwość stworzenia obiektu 3D z płaskiego obrazka lub zarysu poprzez wyciąganie, wyginanie, wypuklanie itp. Bardzo przydatne dla osób, które nie miały styczności z modelowaniem 3D. Podobnym programem jest BobArt. Najlepsze efekty osiągniemy, tworząc modele w programach CAD typowo do tworzenia modeli 3D (Blender, 3ds Max itp.), szczególnie dla drukarek 3D.
Modele do zastosowań specjalistycznych – frezarki CNC mają wiele zastosowań w medycynie, jubilerstwie, stomatologii i przemyśle. Modele tworzone są także na różne sposoby: w specjalnie do tego stworzonych programach, za pomocą skanowania obiektów i innych. W to się nie wgłębiajmy.
6. Podsumowanie
Co do programów CAM/CAD, nie musimy się przejmować: jest ich naprawdę dużo, nie wszystkie opisaliśmy, a i na pewno wiele powstanie. Jeśli się uprzemy i działamy wyłącznie amatorsko, to damy radę zrobić wszystko, co chcemy, na darmowym oprogramowaniu. Oczywiście wszystko na maszynie 3-osiowej.
- Do elementów mechanicznych wystarczą nam następujące programy: Inkscape lub FreeCAD, a następnie HeeksCAM, w większości przypadków sam HeeksCAD.
- Do grawerów i intarsji: Gimp lub Google (albo jakaś inna wyszukiwarka) i F-Engrave do stworzenia kodu. Jeśli chcemy wygrawerować prosty napis, wystarczy sam F-Engrave.
- Może jakiś halftone? Użyjemy Gimp, wyszukiwarki internetowej i programu DXFHalftone.
- Płaskorzeźba? Tutaj zaczynają się schody, ale ambitni siadają i uczą się Blendera, a obróbkę wykonują w HeeksCAM. Mniej ambitni kupują program ArtCAM.
- Zajmujecie się elektroniką i robicie płytki PCB? Polecamy darmowy FlatCAM.
Polecacie inne programy? Znacie jakieś inne amatorskie zastosowania maszyny CNC? Piszcie o wszystkim w komentarzach.
