Stwórz niesamowitą geometrię 3D, programując kod CNC: 8 kroków (ze zdjęciami)

Stwórz niesamowitą geometrię 3D, programując kod CNC: 8 kroków (ze zdjęciami)

Spisu treści:

Anonim

Obróbka CNC ułatwia wycinanie kształtów bardzo precyzyjnie i spójnie. Ale z oczywistych powodów często ogranicza się do wycinania kształtów 2D. Ucząc się, jak samodzielnie korzystać z CNC, głębiej zagłębiłem się w tworzenie inspirującej geometrii 3D za pomocą programowania. Dało mi to wiedzę, aby móc tworzyć szybsze i bardziej wydajne ścieżki narzędzi niestandardowych, które byłyby trudniejsze lub niemożliwe do skonfigurowania za pomocą standardowego oprogramowania CAM.

W tej instrukcji poprowadzę Cię przez proces tworzenia zaawansowanej geometrii matematycznej za pomocą programowania w połączeniu z obróbką cnc. Wiedza, którą zdobędziesz, sprawi, że będziesz w stanie skonfigurować bardziej zaawansowane i wydajne ścieżki narzędzi i zapobiegnie ograniczeniom wynikającym z ograniczeń oprogramowania CAM.

Dość duża część wiedzy na ten temat wynika z badań Jensa Dyvika. Wiele przykładów, które zostaną podane, wykonano za pomocą Colinbus w Fablab Genk, ale niektóre zostały również wykonane w Shopbocie. Maszyny, których użyłem, zostały skonfigurowane w systemie metrycznym, więc nie myl się z liczbami, jeśli normalnie pracujesz w jednostkach imperialnych.

Jeśli jest coś, co nie jest jasne lub złe, daj mi znać, abym mógł edytować instrukcje.

Kieszonkowe dzieci:

Krok 1: Zapoznaj się z CNC

Jeśli nigdy wcześniej nie korzystałeś z CNC, niektóre terminy użyte w tym podręczniku mogą brzmieć dziwnie. Dlatego zalecam zapoznanie się z cnc przed wypróbowaniem podobnych rzeczy, jak w tej instrukcji. Korzystaj z oprogramowania CAM dołączonego do urządzenia, do którego masz dostęp, ponieważ zapewni on pomysł na przepływ pracy przy rozpoczynaniu zadania frezowania.

Oprogramowanie CAM nie jest niestety rozwiązaniem typu plug and play. Musisz wiedzieć o prędkościach posuwu, obrotach, bitach frezowania i tak dalej. I mimo że oprogramowanie ułatwia konfigurowanie ścieżek narzędzi, nadal musisz pracować w zakresie możliwości wyłączenia programu. Pełna kontrola nad tym, co zrobi maszyna, jak dowiemy się później, daje nam możliwość zmiany każdej części konfiguracji ścieżki narzędzia, co nie zawsze jest możliwe w oprogramowaniu CAM.

Krok 2: Co to jest kod G

Kod G to język, dzięki któremu komputer komunikuje się z maszyną CNC. W oprogramowaniu CAM konwertujesz pliki CAD (3D lub 2D) z postprocesorem na plik, który komputer zrozumie. Jest to kod wykonany lub używany przez producenta maszyny do ich maszyn. Jest to zestaw poleceń, które mówią maszynie, gdzie iść i co robić, iw uproszczony sposób mówi coś takiego:

- Ustaw prędkość obrotową wrzeciona na 18000 obrotów na minutę

- Ustaw prędkość przesuwu na 35 mm na sekundę

- Przejdź do współrzędnych x100, y100 powyżej materiału

- Przesuń o 25 mm w kierunku do dołu i cofnij

- Wyłącz wrzeciono

- Idź do początku / 0-punkt na maszynie

Różnice między tymi kodami g to na przykład to, w jaki sposób definiują polecenie poruszania się lub w jakich jednostkach działają, lub czy liczby ujemne w kierunku z są powyżej lub poniżej punktu 0 itd. W następnym kroku Przyjrzyjmy się, jak przeanalizować ten kod, aby móc napisać własny kod dla używanej maszyny.

Krok 3: Zrozumienie kodu z komputera, do którego masz dostęp

Aby zrozumieć, które części kodu robią, możesz utworzyć prosty przykładowy plik za pomocą oprogramowania kamery. Postprocesor przekształca informacje w odpowiedni kod dla maszyny. Następnie możemy przeanalizować ten plik i zastosować inżynierię odwrotną, jak to działa. Możesz po prostu otworzyć go w notatniku i przeczytać wiersze kodu. Jeśli przyjrzysz się przykładowi kodu kupującego, zobaczysz, że większość kodu to tylko współrzędne, które informują maszynę, dokąd ma przenieść wrzeciono.

A następnie, w zależności od używanej maszyny, reszta kodu może być całkiem prosta (np. W przykładzie kodu kupującego M3 oznacza Mprzejść do określonego współrzędnego w 3 wymiary). Czasami można również znaleźć informacje online, aby uzyskać jasne wyjaśnienie. Niektórzy producenci mogą sami podać szczegóły, na przykład Shopbot:

http: //www.opensbp.com/files/QuickReference_bothpa …

Musimy wiedzieć, co robią te różne polecenia, ponieważ w późniejszym etapie sami stworzymy ten rodzaj kodu za pomocą programowania.

Krok 4: Programowanie - Konik polny

Teraz mamy lepszy pomysł na to, jak działa kod maszyny, możemy wykorzystać te informacje do stworzenia naszego postprocesora. Używam do tego Rhino z jego wszechstronnym pluginem Grasshopper. Rhino to oprogramowanie CAD, które łączy środowisko rysowania 2D i modelowania 3D w jednym. Grasshopper jest wtyczką do programowania opartego na węzłach w Rhino i szeroko rozszerza jego możliwości. Myślę, że istnieją inne języki programowania lub oprogramowanie, które mogą być w stanie robić podobne rzeczy, ale uważam, że ta kombinacja programowania i środowiska 3D jest najłatwiejsza do zrobienia tego typu rzeczy, ponieważ otrzymujesz wizualną reprezentację tego, co dzieje się w twoim kodzie.

To, co zrobimy w tej instrukcji, pozwoli nam narysować linie w 3D i utworzyć plik ścieżki narzędzia, który powie maszynie, aby podążał za tymi liniami. W poprzednim kroku widzieliśmy, że ścieżka narzędzia składa się ze współrzędnych. Co oznacza, że ​​musimy przekształcić nasze linie w punkty, wyodrębnić współrzędne z tych punktów i przekształcić je w odpowiedni format. Musimy również pamiętać, że między wierszami będziemy chcieli przejść ponad materiałem, ponieważ nie chcemy przecinać materiału, gdy przechodzi z jednej linii do drugiej. Oznacza to, że musimy skopiować pierwszy i ostatni punkt z każdej linii i wstawić wysokość z powyżej naszego materiału.

Albo jeśli uprościłbym ten proces, stałoby się to tak:

- Linie wejściowe

- Opcjonalnie: Sortuj linie, aby upewnić się, że linie są frezowane we właściwej kolejności, jeśli to konieczne. (może być również użyty do szybkiego przyspieszenia)

- Konwertuj linie na listę punktów

- Skopiuj pierwszy punkt i ostatni punkt z krzywej, wyodrębnij współrzędne, zastąp współrzędną z z taką, która znajduje się nad materiałem, zrób nowy punkt z tych współrzędnych i wstaw ten punkt na liście we właściwym miejscu (przed punktem początkowym i za ostatnim punktem każdej linii wewnątrz materiału).

- Wyciągnij współrzędne z każdego punktu

- Konwertuj te współrzędne na odpowiednią składnię (kod g, który działa specjalnie na twoim komputerze)

- Połącz to z kodem początkowym i końcowym pliku

- Zmień na plik gcode.

Krok 5: Wygeneruj ścieżki i test

Zrobiłem podstawową definicję konika polnego, którą dodałem jako przykład. Wykonuje kroki opisane w poprzednim kroku i przekształca linie 3D w shopbot lub kod colinbus. Myślę, że lepiej jest zrozumieć, jak to się robi.

Zapisując plik gcode z pliku konika polnego, należy kliknąć prawym przyciskiem myszy żółty panel z kodem (po prawej stronie pliku) i wybrać miejsce docelowe strumienia, co oznacza, gdzie zostanie zapisany plik. Kiedy nazywasz plik, upewnij się, że wybrałeś rozszerzenie, którego używa twój gcode. Dla Shopbota jest to.sbp, dla colinbus to.c3d, itd … Możesz dowiedzieć się, co to jest, patrząc na plik ścieżki narzędzia wyeksportowany z oprogramowania kamery, jak widzieliśmy w kroku 3.

Zanim po raz pierwszy wypróbujesz własny kod, upewnij się, że przeczytałeś kod i zobaczysz, czy wszystko wygląda tak, jak powinno. Następnie uruchom plik w powietrzu i sprawdź, co robi maszyna. Jeśli wszystko wygląda tak, jak powinno, uruchom plik w materiale i poczuj satysfakcję z frezowania samodzielnie zaprogramowanego kodu.

Od tego momentu można rozpocząć zwiedzanie w Grasshopper. Możliwości łączenia Grasshopper z obróbką cnc są nieograniczone. W następnych krokach opiszę, jak stworzyłem kilka przykładów za pomocą tych narzędzi.

Krok 6: Przykład 1: Konwertuj obraz na frezowanie 3D przy użyciu V-bit

Wewnątrz konika polnego znajduje się próbnik obrazu, który może odczytać czarno-białą wartość obrazu i odwzorowuje go na liczbę z przedziału od 0 do 1. Przy 0 oznacza czarny, a 1 biały. To, co możemy zrobić, to przemapować tę wartość do innej domeny, która będzie kontrolować, jak głęboko idzie nasz v-bit. W ten sposób możemy stworzyć inną grubość linii wewnątrz materiału, tak jakbyśmy pchali ołówek i papier bardziej miękko.

Ponieważ próbnik obrazu potrzebuje punktów jako danych wejściowych, możemy szybko przenieść ten punkt na żądaną głębokość z. Jeśli następnie posortujemy nasze punkty w grupy, nie możemy utworzyć polilinii 3D z tych punktów i użyć postprocesora, jak w jednym z poprzednich kroków, aby przekształcić go w gcode. Podczas frezowania wskazane jest pomalowanie górnej powierzchni, aby uzyskać ładny kontrast kolorów.

Dodałem oryginalny plik, którego użyłem, aby móc się z niego uczyć. Pamiętaj, że postprocesor użyty w tym przykładowym pliku jest przeznaczony dla Colinbus, a nie dla Shopbota.

Można również przekonwertować postprocesor, aby pobierał punkty jako dane wejściowe i po prostu wywiercił za każdym razem inną głębokość za pomocą bitu. W ten sposób możesz tworzyć obrazy rastrowe na CNC, tak jak zrobiłem to za pierwszym razem, gdy próbowałem własnego kodu (patrz poprzednie obrazy kroku).

Krok 7: Przykład 2: Zakrzywione linie

Ten przykład jest częściowo ręcznym rysowaniem i częściowo konikiem polnym. Tak więc stworzyłem 4 linie, z których najbardziej na górze i na dole są podstawowe łuki z okręgu, a dwie linie na środku to losowe kręcone fale, które narysowałem. Następnie użyłem konika polnego do stworzenia linii przejściowych między nimi; tak zwane „krzywe Tween”. Chciałem stworzyć powierzchnię linii, gdzie te krzywe animacji są górą powierzchni. To, co wtedy zrobiłem, to tworzenie linii między tymi krzywymi przejściowymi, po których będzie następował v-bit.

Teraz kończymy na krzywych w 2D, ale chcemy, aby były 3D, aby krawędzie kończyły się na tym samym poziomie. To, co zrobiłem, to podzielenie krzywych v-bitowych na punkty i dla każdego punktu obliczam odległość do najbliższej krzywej. Ponieważ używam bitu 90 stopni, wiem, że odległość do najbliższej krzywej przejściowej jest również naszą głębokością v-bitową (patrz obraz v-bitowy). Jeśli nie rozumiesz, dlaczego możesz szukać trygonometrii. Przesuwając punkty podziału w kierunku z do dołu, wykorzystując odległość do najbliższej krzywej, otrzymujemy krzywą 3D, którą możemy ponownie użyć z postprocesorem.

Posortowałem również krzywe i odwróciłem co drugą krzywą. Zwiększa to czas frezowania, ponieważ zapewnia, że ​​maszyna nie przesunie się na drugą stronę ponad materiał z każdą krzywą.

Dodałem plik nosorożca i konika polnego, abyś mógł przeanalizować, jak został stworzony. To stara definicja, więc jestem pewien, że rzeczy można zrobić szybciej lub w inny sposób.

Krok 8: Przykład 3: Sinus Bowl

Ten, który zrobiłem podczas wykonywania niektórych ćwiczeń w nauce Pythona w Grasshopper. Przed ostatecznym frezowaniem jest sporo kroków i jestem pewien, że są szybsze sposoby, aby to zrobić, jak wtedy, ale tutaj idzie.

Wewnątrz komponentu Pythona utworzyłem kod generujący punkty do utworzenia powierzchni fali sinusoidalnej o wymiarach 100x100 mm. (Myślę, że nauczyłem się tego z jakiegoś tutoriala, ale nie pamiętam skąd. Jeśli ktoś wie, powiedz mi, abym mógł go dodać)

Aby stworzyć płynne przejście z płaskiej powierzchni na sinusoidalną powierzchnię fali, odwzorowuję liczby za pomocą mapera grafów. Spowoduje to wygenerowanie współczynnika skali, którego będziemy używać. Nie jest to najczystszy sposób generowania tej powierzchni, ale działa dla tej aplikacji. Dlatego skaluję każdy punkt w kierunku z z najwyższego punktu naszej powierzchni grzechu, a kawałki, które będą płaskie, są skalowane o wartości 0,001, tworząc płaską powierzchnię (nawet jeśli nie jest idealnie płaska).

Następnie obliczyłem odległość między środkiem kwadratu i każdym punktem z powierzchni grzechu, którą stworzyliśmy. Sortuję listę punktów według tej odległości i przesuwasz opcjonalny numer listy skalowanych punktów w dół, aby utworzyć kształt kopuły. (Ponieważ obliczyliśmy odległość od środka, tworzy on okrągły kształt).

Następnie zamawiam te punkty na listy punktów, aby utworzyć polilinie. Stworzyłem te polilinie, dodając różne wysokości, dzięki czemu mógłbym wykonywać obróbkę zgrubną w krokach. Więc użyłem ich z postprocesorem, którego używaliśmy wcześniej, aby wykonać obróbkę zgrubną dębu. Ale dla ścieżki wykończeniowej chciałem użyć spiralnej ścieżki narzędzia i musiałem zrobić obejście, aby to osiągnąć:

Tak więc z ostatnich polilinii tworzę powierzchnię 3D. Następnie upiekłem powierzchnię 3D w Rhino i narysowałem 2d spiralę nad powierzchnią. Następnie wykonałem przesunięcie (z promieniem kulistego nosa) na powierzchni i rzutowałem spiralę na tę powierzchnię, aby dopasować krawędź kuli do powierzchni, którą faktycznie chcę stworzyć. Następnie, ustawiając wysokość z na maszynie, przesunęłem punkt zerowy w dół z odległością, która pasuje do promienia bitu. Punkt 0 w kierunku z jest teraz w środku bitu. Następnie używam postprocesora na tej rzutowanej krzywej spiralnej i to wszystko!

Teraz wiele z tego będzie trudnych do odczytania, czytając mój tekst, więc radzę spojrzeć na moje pliki, aby uzyskać lepsze zrozumienie. Będziesz potrzebował komponentu Pythona, który możesz znaleźć na stronie internetowej food4rhino: Tutaj

A potem to zależy od ciebie! Mam nadzieję, że nauczyłeś się czegoś z tego pouczającego i na wypadek gdybyś użył go do zrobienia czegoś, co chciałbym zobaczyć wyniki!

Runner Up w

Konkurs CNC 2016