W połowie lat 80-tych ubiegłego wieku, wraz z pojawieniem się pierwszych drukarek 3D, koniecznością stało się stworzenie formatu pliku, który umożliwiałby korzystanie z nich. Kluczową rolę po raz kolejny odegrał tu Charles Hull, któremu przypisuje się wynalezienie technologii druku 3D (co jest nieco bardziej skomplikowane, o czym mogliście się dowiedzieć z lektury poprzedniego odcinka AKADEMII DRUKU 3D CANON). Hull stworzył nowy typ zapisu geometrii obiektów przestrzennych – STL, który po dziś dzień stanowi podstawę pracy z drukarkami 3D każdego typu.
Na samym początku, nazwa formatu pliku była tożsama z nazwą samej technologii – czyli „stereolitografii„. Dla rozróżnienia tych dwóch rzeczy, dla metody druku 3D przyjęło się używać skrótu SLA, a dla formatu pliku STL. W późniejszych latach pojawiło się kilka koncepcji jego nowych rozwinięć, które miały na celu rozbicie tej korelacji – w ten sposób powstały nazwy Standard Triangle Language oraz znacznie rzadziej używana Standard Tessellation Language. Bez względu na nazewnictwo mamy jednak cały czas do czynienia z jednym i tym samym typem plików.
Modele w formacie STL to bryły, których powierzchnie zbudowane są z trójkątów. Najprostszą bryłą, którą można opisać w ten sposób jest czworobok, który zawsze składa się z czterech trójkątów, a każdy z nich jest jednocześnie całą ścianą. Kolejny model to sześciobok, gdzie każda z prostokątnych ścian jest zbudowana z dwóch trójkątów. Zauważmy, że takie proste kształty będą zawsze zbudowane z takiej samej liczby trójkątów, niezależnie od rozmiarów modelu. Wynikiem tego jest stały rozmiar pliku.
Aby móc prawidłowo generować modele w formacie STL, należy najpierw zrozumieć właściwości każdego pojedynczego trójkąta. Każdy z nich ma:
- przypisane trzy krawędzie, które łączą się ze sobą w trzech węzłach (parami w narożnikach)
. - narożniki trójkątów mogą się ze sobą łączyć jedynie w węzłach (mieć wtedy wspólną ścianę) – nie może dojść do sytuacji, gdy węzeł jednego z trójkątów leży na krawędzi innego, stycznego trójkąta
. - każdy trójkąt ma swoją „normalną„, czyli wektor ustawiony pod kątem prostym do powierzchni o zwrocie zgodnym z regułą prawej dłoni; są to pojęcia z mechaniki, implikujące dwie strony trójkąta jak powierzchni – jedna z powierzchni ma dzięki temu wartość dodatnią, a druga ujemną;format STL wykorzystuje tę cechę w następujący sposób – strona dodatnia trójkąta jest fragmentem zewnętrznym tworzonej bryły, a strona ujemna jest wnętrzem modelu; ma to kluczowe znaczenie w czasie pracy z modelem, gdzie nawet jeden trójkąt ze źle zdefiniowaną normalną (odwrócony) może zniweczyć cały wydruk (szczególnie w technologiach typu MultiJet); w większości programów powierzchnie i ich znak wskazywany jest kolorami – zielona powierzchnia ma wartość dodatnią, czerwona – ujemną.
Kolejną kwestią jest eksport modelu do formatu STL. Większość programów CAD/CAM ma dobrze rozwinięte funkcje takiego eksportu wraz z możliwością doboru właściwości konwersji, która de facto sprowadza się do ilości trójkątów, z których nasz finalny model będzie wykonany. Im więcej trójkątów – tym większa dokładność oddania zaokrąglonych geometrii, a więc i wyższa jakość finalnej, drukowanej części.
Równocześnie rośnie rozmiar pliku, co w przypadku skomplikowanych kształtów może prowadzić do znacznego wydłużenia się pracy programu obsługującego drukarkę 3D lub oprogramowania do optymalizacji wydruku (np. Materialise Magics). W skrajnych przypadkach program wręcz nie da rady przetworzyć pliku lub jego rozmiar spowoduje błędy w druku 3D. Równocześnie należy pamiętać, że druk 3D nadal ma ograniczenia wynikające z wysokości warstwy wydruku, więc często bardzo duża liczba trójkątów nie jest konieczna.
Sam etap konwersji jest często dość problematyczny nawet dla osób obytych z oprogramowaniem CAD. Najważniejsze jest właściwe przygotowanie modelu 3D – z rysunku 2D nie jesteśmy w stanie przejść do wydruku. Oprócz różnic wynikających ze sposobu w jaki dane oprogramowanie pozwala na stworzenie pliku STL, mamy do czynienia z błędami w samej otrzymanej geometrii.
Błędy mogą pojawić się nawet w przypadku prostych modeli, gdzie po konwersji pojedyncze trójkąty np. nachodzą na siebie. W bardziej skomplikowanych przypadkach możemy mieć do czynienia z całymi fragmentami modelu, gdzie powierzchnie powielają się, nie łączą z resztą modelu lub mają źle skierowane normalne trójkątów. Dlatego też tak ważne jest sprawdzenie każdego pliku STL przed wydrukiem. Takiej inspekcji można dokonać w wybranych programach dla druku 3D.
W oprogramowaniu 3D Systems – 3DSprint, które obsługuje większość profesjonalnych drukarek 3D tego producenta, została dodana cała sekcja pracy z plikiem, gdzie proces sprawdzania modelu został znacznie zautomatyzowany. Jeszcze większe możliwości daje oprogramowania Materialise Magics, gdzie oprócz bardzo zaawansowanych funkcji automatycznej poprawy STL mamy możliwość manualnej korekty. To kluczowa funkcja kiedy w codziennej pracy drukujemy bardzo skomplikowane modele – np. architektoniczne lub inżynierskie z elementami takimi jak siatki czy zaokrąglone kanały wewnętrzne.
Profesjonalni usługodawcy, którzy drukują pliki z różnych systemów i dla wielu branż, Magics jest podstawą codziennej pracy.
Jakie mogą być typy błędów w pliku STL? Można je podzielić na siedem rodzajów:
- Źle ustawione normalne trójkątów – fragment geometrii został nieodpowiednio przeczytany w czasie konwersji pliku i nadano mu przeciwne znaki; wnętrze bryły zostało uznane za ścianę zewnętrzną i na odwrót.
- Szczeliny w modelu – program źle zbudował fragment skomplikowanej geometrii; najczęściej zdarza się to w miejscach łączenia się wielu krawędzi lub w miejscu łączenia się dwóch powierzchni walcowych, które na poziomie programu były tworzone osobno i program nie był w stanie poprawnie zamknąć powierzchni. Zostają wtedy szczeliny, które należy naprawić.
- Szumy (noise shells / small components) – w przypadku modeli z bardzo małymi detalami zdarza się, że w czasie konwersji program wygeneruje kawałki powierzchni zbudowane dosłownie z kilku trójkątów. Takie fragmenty należy usunąć, pilnując jednocześnie, żeby nie spowodowało to powstania szczeliny.
- Nakładanie się trójkątów – dwa lub więcej trójkątów zostało stworzonych w jednym miejscu i nakładają się one na siebie. Często dodatkowym błędem jest kierunek jednego z nich i konieczne będzie jego usunięcie.
- Przecinające się trójkąty – dwa lub więcej trójkątów przecinają się (powierzchnie w przeciwieństwie do nakładania są pod różnym kątem względem siebie). Ponownie konieczne jest usunięcie ich i najczęściej stworzenie na nowo (często ręcznie) kolejnych trójkątów zamykających bryłę.
- Złe krawędzie – najczęściej powstają w miejscach zaokrągleń i łączenia się elementów. Zazwyczaj są poprawiane automatycznie.
- Bryły (shells) – zdarza się, że konwertujemy złożenia. Wtedy należy spodziewać się odpowiedniej ilości brył i uważać, żeby nie powstały dodatkowe części oraz żeby małe elementy nie zostały w trakcie naprawiania modelu wchłonięte przez duże elementy.
Jak widać, nawet poprawnie stworzony plik może na poziomie pliku STL okazać się problematyczny i często nie będzie to wina konstruktora / designera / architekta. Dlatego tak ważna jest dokładność w procesie tworzenia modelu, bez używania półśrodków. To jak zbudujemy model, jak dobrze połączymy bryły / powierzchnie oraz czy np. faktycznie dodamy gwint (zamiast oznaczenia go na powierzchni) będzie miało wpływ na konwersję.
Poniżej opisujemy przykłady procesu konwersji pliku do formatu STL stworzonego w programie Solidworks oraz jego naprawy w oprogramowania 3DSprint.
1. Stworzyliśmy (lub importowaliśmy) model przestrzenny w postaci gotowej części. Model ma specjalnie dodany błąd, co możemy zauważyć w drzewie procesów – części śruby nie zostały dodane do siebie. Zapisujemy go jako STL (Plik -> Zapisz jako…).
2. Konieczne jest poprawne dobranie właściwości dla docelowego pliku STL. Kluczowe są takie parametry jak jakość pliku, typ zapisu (binary lub ASCII; preferowana jest pierwsza opcja z uwagi na mniejszy rozmiaru pliku) oraz wybór czy zapisujemy całe złożenie w postaci jednego pliku czy jako niezależnych plików?
Różnice między rozdzielczością „gruboziarnistą” – niedokładną, a „drobną” – dokładną. Istnieje także możliwość dostosowania tych wartości ręcznie.
3. Po doborze właściwości pliku kontynuujemy zapis. Przed jego potwierdzeniem otrzymujemy informacje o pliku – rozmiar i liczbę trójkątów, z których jest zbudowany.
4. Otwieramy plik w programie 3DSprint. W oknie „Prepare” możemy podejrzeć czy nasz plik jest poprawny – a jeśli nie, automatycznie go poprawić.
Zwróćmy uwagę na układ trójkątów w miejscu styku dwóch pierwotnie niepołączonych brył. Trójkąty nie stykają się w nich poprawnie, a na dodatek cała powierzchnia wewnętrzna będzie powielona, bo mamy spód powstały z zamknięcia fragmentu z gwintem i taką samą sytuację w drugim elemencie. Elementy są zaznaczone jako przecinające się i takich trójkątów jest aż 341. Możemy pokazać, że faktycznie mamy do czynienia z dwoma „shell’ami” rozdzielając plik STL opcją „separate”.
Pozostawiając taki wybór oprogramowanie wie, że ma do czynienia z dwoma modelami i w przypadku druku 3D właśnie tak będzie je traktował. Może to prowadzić do błędu i części się nie połączą. Dlatego warto połączyć ponownie części i spróbować naprawić model opcją „fix”.
5. Używamy automatycznej opcji naprawy i sprawdzamy, czy wszystkie błędy zniknęły?
Oprogramowanie w tym wypadku poradziło sobie, choć nie do końca tak jak byśmy tego chcieli. Zwróćmy uwagę na niedokładne łączenie dwóch powierzchni walcowych. Różnice kompensowane są trójkątami ułożonymi w płaszczyźnie prostopadłej do walcowej. W przypadku bardzo dokładnych technologii takie różnice będą widoczne na modelu i trzeba je będzie wyrównywać ręcznie.
6. Przy założeniu, że wygenerowaliśmy poprawny plik, sprawdzamy normalne trójkątów i możemy rozpocząć proces ustawiania modelu na stole roboczym już w oknie „Print”.
Na tym etapie kończy się praca z samym modelem. W oknie „Print” możemy jedynie ustawić modele na stole roboczym w najbardziej odpowiadającej nam konfiguracji.
Instrukcje w jaki sposób poprawnie przekształcić modele w konkretnych programach CAD możemy znaleźć w internecie, najczęściej na stronach producentów drukarek 3D. Skrócone metody konwersji przygotował też partner Canon – firma 3D Systems.