Czym jest format STL oraz jak poprawnie przygotowywać pliki tego typu?

0

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:

  1. Ź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.
  2. 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ć.
  3. 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.
  4. 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.
  5. 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łę.
  6. Złe krawędzie – najczęściej powstają w miejscach zaokrągleń i łączenia się elementów. Zazwyczaj są poprawiane automatycznie.
  7. 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.

Wszystkie osoby zainteresowane otrzymaniem dodatkowych informacji na temat w/w drukarek 3D mogą skontaktować się bezpośrednio z firmą Canon za pomocą poniższego formularza, jak również zamówić wydruk testowy wykonany w technologii MJP lub CJP.

Zgodnie z ustawą z dnia 18.07.2002 r. o świadczeniu usług drogą elektroniczną, wyrażam zgodę na otrzymywanie na wskazany adres poczty elektronicznej informacji handlowej od Canon Polska sp. z o.o. z siedzibą w Warszawie (adres: ul. Gottlieba Daimlera 2; 02-460 Warszawa).

Zgodnie art. 23 ust. 1 pkt 1 ustawy z dnia 29 sierpnia 1997 r. o ochronie danych osobowych, wyrażam zgodę na przetwarzanie moich danych osobowych do celów marketingowych dla Canon Polska sp. z o.o. z siedzibą w Warszawie (adres: ul. Gottlieba Daimlera 2; 02-460 Warszawa).

Zgodnie z art. 24 ust. 1 ustawy z dnia 29 sierpnia 1997 r. o ochronie danych osobowych informuję, iż: administratorem Pani/Pana danych osobowych jest Canon Polska sp. z o.o. z siedzibą w Warszawie (adres: ul. Gottlieba Daimlera 2; 02-460 Warszawa), zwana dalej Spółką, Pani/Pana dane osobowe przetwarzane będą w celu marketingu produktów i usług Spółki, posiada Pani/Pan prawo dostępu do treści swoich danych oraz ich poprawiania, podanie Spółce danych osobowych jest dobrowolne.

Udostępnij.

O autorze

Paweł Ślusarczyk

Prezes zarządu CD3D Sp. z o.o. oraz Business Development Manager. Posiada ponad 12-letnie doświadczenie w biznesie, zdobyte w branży IT, reklamowej i poligraficznej. Od stycznia 2013 roku związany z drukiem 3D.

Rozmowa
z Cedrykiem
?