Program MIT CSAIL rozbija złożone modele CAD w prostsze kształty, aby ułatwić drukowanie 3D

Podczas konferencji Asia SIGGRAPH w ramach projektu ACM SIGGRAPH grupa naukowców z MIT zaprezentowała artykuł opisujący ich rozwój systemu, który stosuje tak zwaną syntezę programową, która automatycznie tworzy programy komputerowe w oparciu o instrukcje, aby przełamać złożone modele oczek 3D w prymitywne kształty takie jak kostki i kule. Zasadniczo metoda ta służy do inżynierii wstecznej modeli, dzięki czemu są one łatwiejsze do dostosowania i modyfikacji do drukowania 3D.

Większość komercyjnych produktów zaczyna działać jako plik CAD, a często metoda zwana konstruktywną geometrią bryłową (CSG), gdzie kilka prymitywnych kształtów składa się na różne sposoby, tworząc jeden obiekt, służy do reprezentowania modeli 3D. Po zakończeniu cyfrowego obiektu, przekształca się go w siatkę złożoną z trójwymiarowych trójkątów, które dodatkowo definiują jej kształt, renderują go lub drukują. Ale nie jest łatwo dostosować te siatki z różnych powodów.

"Na wysokim poziomie problemem jest inżynieria odwrotna siatki trójkątów w proste drzewo. Idealnie, jeśli chcesz dostosować obiekt, najlepiej będzie mieć dostęp do oryginalnych kształtów - jakie są ich wymiary i jak są łączone - wyjaśnił Tao Du, doktorant w grupie Computational Fabrication MIT's Computer Science i laboratorium sztucznej inteligencji (CSAIL). "Ale kiedy już wszystko połączysz w siatkę trójkątów, będziesz miał tylko listę trójkątów, z którymi będziesz pracować, a te informacje zostaną utracone. Po odzyskaniu metadanych łatwiej jest innym osobom modyfikować projekty. "

Projektanci często budują modele CAD, umieszczając indywidualne kształty w ostatecznym obiekcie. Metoda zespołu idzie w odwrotny sposób, rozkładając siatki na poszczególne kształty, które są łatwiejsze do edycji. Po pierwsze, ich system określa kształty, które składają się na trójwymiarową siatkę trójkątów, za pomocą syntezy programu, aby określić, w jaki sposób kształty zostały połączone w wynikowy model. To faktycznie rozbija siatkę na to, co MIT nazywa "drzewem węzłów" reprezentującym prymitywne kształty; dodatkowe węzły wyjaśniają, w jaki sposób kształty pasują do siebie. Powstałe kształty mają parametry, które mogą być edytowane przez użytkowników, a następnie ponownie przesyłane do siatki.

Aby przetestować swoją pracę, zespół zbudował zestaw danych obejmujący 50 modeli 3D CAD na różnych poziomach złożoności, a także pokazał, w jaki sposób ich system był w stanie odtwarzać pliki CAD wykonane z maksymalnie 100 prymitywów. Nie tylko system może rozpaść prostsze modele w ciągu minuty,ale może również rozkładać złożone modele na bardziej proste kształty.

Du powiedział, że proces ten może być pomocny w połączeniu z oprogramowaniem do drukowania 3D, co jest dobrą wiadomością dla amatorów, którzy przesyłają modele 3D na strony internetowe, aby inni mogli pobierz i zmodyfikuj je, ponieważ większość ładowań to głównie siatki trójkątne

"Mamy mnóstwo modeli siatek, ale za nimi jest stosunkowo niewiele plików CAD. Jeśli użytkownicy chcą odtworzyć projekt w domu i trochę go dostosować, technika ta może być przydatna "- powiedział Du.

Synteza programu automatycznie znajdzie kandydujące programy komputerowe z pewną gramatyką (struktura, w której działa wewnątrz), jak drzewa; gramatyka zespołu badawczego to CSG, a każdy węzeł końcowy, bez żadnych gałęzi, reprezentuje prymitywny kształt o jasnych parametrach. Korzystając ze specyficznej gramatyki i specyfikacji matematycznych, program działa wstecz, aby zbudować algorytm, wypełniając puste pola.

Synteza programu zespołu może zeskanować całą siatkę 3D, myśląc o każdym drzewie CSG, które mogłoby potencjalnie utworzyć jako zupełnie nowy program kandydatów. Możliwe orientacje, parametry i lokalizacje wszystkich prymitywów są wykrywane, gdy system otrzyma wejściową siatkę, a masywna chmura punktów zostanie utworzona na całej powierzchni. Wymiary każdego kształtu tworzącego siatkę są następnie wyprowadzane z tych punktów za pomocą specjalnego algorytmu. Następnie badacze próbkują punkty w całej przestrzeni 3D, zaznaczając je jako wewnątrz lub na zewnątrz siatki, aby pokazać, jak kształty odnoszą się do siebie.

Technicznie, synteza programu może być wykorzystana do stworzenia pełnego drzewa CSG , ale nawet mniej złożone siatki 3D musiałyby mieć próbkowane dziesiątki tysięcy punktów, co byłoby "niepraktyczne obliczeniowo".

Du powiedział: "Bezpośrednie podawanie wszystkich próbek spowoduje dławienie syntezatora programowego." < / p>

Dlatego zespół stworzył metodę próbkowania, która wydajniej tworzy wiele małych podzbiorów próbek punktowych; następnie tworzony jest nowy program kandydujący lub drzewo CSG z próbkowania tych podzbiorów. Po wielu iteracjach i pozbyciu się kilku drzew i punktów system dociera do właściwego drzewa dla każdego kształtu. Następnie wszelkie edytowane kształty powracają do siatki, podczas gdy system wykonuje kroki w tył, aby dojść do ostatniego obiektu.

W tej chwili system zespołu działa tylko z prostopadłościanami, cylindrami, kulami i toriami (pączek kształty), ale planują zwiększyć złożoność gramatyki CSG, aby mogło być więcej kształtówobsługiwane. Czy można to wykorzystać do automatycznego przekształcenia dowolnej siatki w bardziej adaptowalny plik CAD? Czy ten "nieprzydatny obliczeniowo" problem można rozwiązać za pomocą rozwiązania opartego na chmurze? Rozwój CSAIL ma interesujące potencjalne konsekwencje dla zwiększenia zdolności adaptacyjnych i użyteczności wielu modeli, które zaludniają nasz świat druku 3D.