Format STL jest najpopularniejszym (oraz pierwszym, powstałym już w latach 80, XX wieku) w obszarze technologii przyrostowych (druku 3d) rozszerzeniem pliku odpowiedzialnym za reprezentacje geometrii przestrzennej przeznaczonej do przygotowywania instrukcji sterujących, pozwalających na warstwowe wytworzenie elementu.
W ramach wpisu nt. formatów akceptowalnych przez wcześniej wspomniane oprogramowanie pisałem, że nazwa STL to akronim od STereolitography Language lub też bardzo często tłumaczone również jako Standard Tessellation Language oraz, że geometria jest tylko przybliżeniem reprezentowanym przez przestrzenne złożenie trójkątów. Pisałem również, że standard STL został opracowany przez twórcę pierwszej technologii przyrostowej, tj. stereolitografii. Dzisiaj, dla dociekliwych, opiszę ten format plików dokładniej. Wspominałem również, że geometria eksportowana do formatu STL nie tak rzadko ulega uszkodzeniu. Poniższa charakterystyka pozwoli dogłębniej zrozumieć etymologię pojawiających się błędów.
STL – co to właściwie jest?
Format STL jedynie przybliża geometrię (powierzchnię zewnętrzną) przy pomocy trójkątów. Każdy z nich opisany jest przez trzy punkty oraz normalną do powierzchni definiującą kierunek istnienia bryły (trójkąt ma więc powierzchnie wewnętrzną i zewnętrzną). Struktura samego pliku to lista trójkątów, opisanych przy pomocy orientacji przestrzennej punktów, tj. położenia w trzech osiach (x,y,z) każdego z nich oraz kierunku wcześniej wspomnianego wektora. Niestety, lista ta jest redundantna, tzn. każdy z punktów występuje w niej więcej niż raz, ponieważ należy do różnych trójkątów.
Przygotowanie pliku STL rozpoczyna się od narysowania cyfrowej reprezentacji obiektu w oprogramowaniu do modelowania przestrzennego. Następnym krokiem jest tzw. triangularyzacja, czyli po prostu przybliżanie geometrii (powierzchni) za pomocą trójkątów. Przesłanką do tego rodzaju reprezentacji była przede wszystkim łatwość w wyznaczaniu linii przecięcia, co oczywiście ułatwiało podział modelu na warstwy podczas przygotowywania instrukcji sterujących dla procesu wytwarzania.
STL – parametry zapisu/eksportu
Wspominałem, że STL jedynie aproksymuje geometrię, a więc nasuwa nam się oczywisty wniosek, tzn. im więcej małych trójkątów tym model jest dokładniejszy. Idąc tym tropem łatwo zorientować się, że to właśnie te informacje będą możliwe do dostosowania podczas zapisu naszej geometrii do formatu STL. W części programów spotkamy się z opcją określaną jako jakość geometrii, gładkość powierzchni (np. wysoka, niska), natomiast niektóre pozwolą nam określić wielkość trójkątów (np. maksymalna długość krawędzi, odchylenie kąta itp.).
Co ciekawe ograniczając ilość trójkątów można uzyskać bardzo ciekawy efekt tzw. low poly. Jego przykładem jest obrazek popularnego w sieci „doge”.
STL – podsumowując ten kapryśny format
Niestety, mimo swojej popularności STL ma sporo wad. Pierwszą z nich jest już wcześniej wspomniany sposób zapisu danych w redundantnej i nieuporządkowanej liście, często zwiększając rozmiar plików oraz płynność korzystania z tej reprezentacji. Po wtóre podnosząc jakość aproksymacji, możemy doprowadzić do pożądanej jakości lecz kosztem wielkości pliku co koniec, końców może owocować dodatkowymi trudnościami z korzystaniem z plików w innych programach. Nie zapominajmy, że jest ona jedynie przybliżeniem, tego co chcemy uzyskać, nieświadomie wygenerowana geometria na pierwszy rzut oka może wyglądać w porządku, a w najgorszym wypadku o jej wadach przekonamy się dopiero po jej wydrukowaniu.
A jednak, powyższe wady były by do zniesienia gdyby nie to, że decydując się na zapisanie geometrii przy pomocy płaskich trójkątów musimy przestrzegać zasady przylegania Zasada ta wymusza aby każdy trójkąt współdzielił wszystkie swoje krawędzie z innymi trójkątami przy równoczesnym współdzieleniu dwóch wierzchołków, ograniczających daną krawędź, z sąsiadującym trójkątem. Wynikiem stosowania tej zasady jest z założenia zachowanie ciągłości siatki odzwierciedlającej powierzchnię modelu. Ta trochę pokręcona zasada, jest sprawdzana podczas eksportu geometrii, niestety nie gwarantuje nam ona stu procentowej pewności poprawnego wygenerowania struktury. Najczęstsze błędy, pojawiąjące się w strukturze to nakładające lub przecinające się trójkąty, otwory w powierzchni czy odwrócone normalne. Powyższe błędy mogą prowadzić do niepoprawnie wygenerowanych instrukcji (ze względu na błędną interpretację geometrii) a więc ostatecznie do niepożądanego przez nas efektu po wytworzeniu takiego modelu.
To by było na tyle! Jeśli jesteście ciekawi czy każdy model da się naprawić oraz co należy zrobić czekajcie na kolejny wpis. Temat problemów w geometrią STL jest bardzo rozbudowany!
[1] https://www.fabbers.com/_file/_/~fabbers/image/FabData/StL-facet.gif