Konfigurowalne modele do druku 3D

0

Jedną z cech wyróżniających druk 3D na tle innych technologii jest to, że pozwala on na tworzenie specyficznych przedmiotów w pojedynczych egzemplarzach. Jest to bardzo istotne w branżach, gdzie potrzebna jest jedna sztuka obiektu o konkretnej geometrii. Przypadków takich można by wymienić mnóstwo, od tworzenia prototypów urządzeń, przez wymianę części już niedostępnych w masowej produkcji, aż po zastosowania medyczne. Druk 3D umożliwia też wykonywanie spersonalizowanych przedmiotów, w różny sposób dopasowanych do preferencji konkretnych użytkowników. Zostawiając poważniejsze zastosowania na boku, wśród społeczności entuzjastów technologii 3D bardzo dużą wartość wnoszą różnego rodzaju serwisy do wymiany modeli 3D.  Jednak większości udostępnianych w ten sposób projektów nie da się w łatwy sposób modyfikować – poza zmianą ich rozmiaru tuż przed wydrukiem. Lukę tę w pewnym stopniu wypełnił serwis Thingiverse udostępniając aplikację Customizer. Narzędzie to pozwala na praktycznie dowolne parametryzowanie modeli, tak aby każda osoba mogła w prosty sposób zmieniać ich cechy, a następnie wydrukować na własnym urządzeniu.

Od strony technicznej działanie Customizera opiera się na skryptach OpenSCADa – programu umożliwiającym tworzenie modeli 3D za pomocą tekstowego opisu. W odróżnieniu od większości narzędzi do modelowania przestrzennego nie pozwala on wykonywać operacji bezpośrednio na wyrenderowanym obiekcie, generując jedynie podgląd przedmiotu na podstawie napisanego przez użytkownika skryptu. Dla przykładu, wygenerowanie kuli, prostopadłościanu i ściętego stożka wymaga użycia poleceń sphere, cube oraz cylinder z podaniem odpowiednich wymiarów. Do wskazania gdzie te obiekty powinny się znajdować, należy użyć osobnego polecenia translate.

Jak widać, interfejs programu jest bardzo minimalistyczny, niemniej jednak, OpenSCAD pozwala na tworzenie bardzo złożonych modeli. Oprócz wcześniej wymienionych prymitywnych brył pozwala na tworzenie dowolnych wielościanów oraz obiektów będących efektem wyciśnięcia lub obrotu figur dwuwymiarowych. Zgodnie z techniką Constructive Solid Geometry, na utworzonych bryłach można wykonywać logiczne operacje łączenia w całość (union), wzajemnego wycinania (difference) lub tworzenia elementów z ich części wspólnych (intersection).  Można również posłużyć się bardziej zaawansowanymi przekształceniami oraz konstrukcjami z języków programowania – takimi jak zmienne, instrukcje warunkowe, pętle, funkcje i moduły. Dzięki temu za pomocą stosunkowo krótkich skryptów można tworzyć dość skomplikowane obiekty:

Poza powyższymi przykładami (dostępnymi razem z zainstalowanym programem) na stronie OpenSCADa można znaleźć galerię przedstawiającą wybrane, utworzone w nim modele. Wśród nich znajdują się projekty całych drukarek oraz wiele znanych przedmiotów z serwisów wymiany plików 3D.

Korzystając z możliwości OpenSCADa oraz zapisu obiektów 3D w formie tekstowej, Thingiverse udostępniło aplikację Customizer, pozwalającą tworzyć własne wersje modeli – dzięki modyfikacji parametrów zawartych w OpenSCADowych skryptach. Z punktu widzenia użytkownika odbywa się to przez przeglądarkę internetową bez konieczności modyfikacji samego kodu źródłowego – a za pomocą pól tekstowych, suwaków i rozwijanych list, określających parametry wybranego obiektu. Oczywiście nie wszystkie dostępne  w serwisie modele można w ten sposób dostosować do swoich potrzeb – żeby taka opcja istniała, autor projektu musi dostarczyć model utworzony w OpenSCADzie z odpowiednimi definicjami zmiennych. Dla przykładu, prosty skrypt służący do wygenerowania parametryzowanego stożka, o dowolnie definiowanej górnej i dolnej średnicy, będzie wyglądać następująco:

top_radius = 5;
bottom_radius = 10;
cylinder(h=20, r1=bottom_radius, r2=top_radius);

Jak widać, w skrypcie znajdują się 2 parametry (zmienne) wykorzystane przy określaniu kształtu naszego przedmiotu. Plik taki należy zaimportować na Thingiverse tak samo jak zwykły model 3D (create -> upload a thing). Na kolejnej stronie można dołączyć plik z kodem *.scad i uzupełnić pozostałe informacje o przedmiocie. Żeby nasz model można było dostosowywać za pomocą parametrów, wystarczy dodać do niego tag customizer. Niestety Thingiverse z samego pliku .scad nie utworzy wizualizacji, dlatego poza nim warto dodać też zwykły STL wygenerowany bezpośrednio z OpenSCADa.

Po utworzeniu w ten sposób przedmiotu na jego stronie powinien być widoczny przycisk „Run in customizer”. Po kliknięciu go otworzy się strona z możliwością określenia parametrów modelu.

Osobiście OpenSCADem zacząłem się mocniej interesować przy okazji projektu zatyczek do słoików z przyprawami. Pomysł wziął się… z braku sensownego pojemnika na cukier puder. Ogólnie chodziło o umieszczenie w otworze słoika wydrukowanego sitka, przez które cukier w odpowiedniej ilości mógłby się przesypywać. Po pierwszych próbach rozwiązanie okazało się na tyle trafione, że postanowiłem przerobić w podobny sposób mniejsze słoiki na pojemniki z przyprawami.

Głównym problem okazało się dostosowanie zatyczki do różnego rodzaju słoików. Przerabianie za każdym razem pliku projektu (wykonanego w Cubify Design) było mało wygodne, i co gorsze, uniemożliwiało podzielenie się projektem z innymi. Dlatego spróbowałem utworzyć projekt w OpenSCADzie – co okazało się względnie proste. Do wygenerowania zmiennej liczby otworów w wieczku użyłem programistycznej pętli – dzięki czemu ten sam fragment kodu generował otwory bez względu na ich ilość i wielkość. Łącznie za pomocą wszystkich zdefiniowanych parametrów można w przedmiocie określić:

  • średnicę zewnętrzną
  • liczbę kręgów z otworami (od 0 do 20)
  • średnicę otworów
  • stopień rozszerzenia zatyczki w górnej części
  • całkowitą wysokość
  • ilość przestrzeni wokół otworów (innymi słowy ich zagęszczenie)
  • wielkość wgłębienia do wyjmowania zatyczki ze słoika

Gotowy skrypt modelu można zobaczyć pobierając dołączony do przedmiotu Customizable Jar Cap plik .scad. Można też podejrzeć źródło bezpośrednio w aplikacji Customizer.

Ogólnie udostępnianie konfigurowalnych obiektów okazało się prostsze niż przypuszczałem. Samo tworzenie modeli w OpenSCADzie wymaga poznania jego sposobu działania – i myślę że konieczność pisania wszystkiego ręcznie dla wielu użytkowników może być w początku trudna. Z pewnością przydają się znajomość jakiegoś języka programowania – wtedy łatwiej jest korzystać z możliwości jakie dają zmienne, pętle i instrukcje warunkowe. Sam OpenSCAD jest dostępny zarówno na systemy operacyjne Windows, MacOS jak i różne dystrybucje Linuksa. Zgodnie z warunkami licencji General Public License, może być bezpłatnie wykorzystywany zarówno w celach prywatnych jak i komercyjnych. Program jest cały czas ulepszany – ostatnie oficjalne wydanie pochodzi z marca bieżącego roku (można również pobrać nową, niestabilną wersję rozwojową).

Osobiście nie chciałbym jednak używać OpenSCADa do projektowania modeli w których nie zależy mi na możliwości ich konfiguracji przez inne osoby. Interaktywne programy do modelowania 3D pozwalają w bardziej nowoczesny i wygodny sposób tworzyć przedmioty – bez konieczności znajomości specyficznego języka. Inną wadą opisanego programu jest brak wsparcia dla uniwersalnych formatów opisujących bryły (.STEP) – przez to z zaprojektowanym modelem niewiele da się zrobić poza eksportem do STLa. Podejrzewam że program nigdy nie zdobędzie zbyt wielkiej popularności – zamiast tego spodziewałbym się zupełnie nowych rozwiązań do konfiguracji gotowych modeli 3D.

Źródła: www.openscad.orgcustomizer.makerbot.com

Udostępnij.

O autorze

Krzysztof Matusiewicz

Z zamiłowania i wykształcenia pracuje w branży IT jako programista Javy. Po godzinach interesuje się elektroniką i praktycznym wykorzystaniem mikrokontrolerów oraz od niedawna z wielką pasją drukiem 3D / FDM. Autor bloga 3dwpraktyce.pl.

Rozmowa
z Cedrykiem
?