STL format (stereolitografija - eng. stereolithography) je neutralni i jedan od najstarijih formata namenjih za razmenu 3D modela koje je potrebno proizvesti aditivnim tehnologijama t.j. 3D štampanjem.
Format je nastao 1987., njegov tvorac je čuveni Chuck Hall (Charles W. Hull ), pionir razvoja aditivnih tehnologija i konstruktor prvog stereolitografskog 3D štampača.
STL format datoteke ima ekstenziju .stl i datoteke u ovom formatu mogu biti tekstualne (ASCII) ili binarne. Binarne se češće koriste jer su manje. Ovaj format se uglavnom koristi za brzu izradu prototipova (Rapid prototyping), 3D štampanje (3D Printing) i simulaciju proizvodnje u CAM softverima. FreeCAD može i da uveze i da izveze 3D model u STL formatu.
STL format opisuje površine 3D modela pomoću aproksimirane poligonalne mreže sastavjene od trouglova (trougaoni pljosni). Ovo je fasetirani 3D format (faceted) pošto se 3D površina jednostavno popločava trouglovima. Što su trouglovi manji to je površina 3D modela preciznije predstavljena, ali ovo kao posledicu ima rast veličine datoteka jer se povećava broj trouglova. Dodatni problem su dimenzije 3D modela, ako se one povećavaju potrebno je za istu preciznost povećavati i broj trouglova. Posledica ovoga je ne samo povećanje veličine datoteka velikih i preciznih 3D modela već i vremena koje je potrebno softverima da ih obrađuju.
Ako npr. loptu prečnika 10mm izvezemo u STL formatu sa tolerancijom 0,01mm mreža će se satojati od 4970 trouglova. Ako prečnik povećamo na 100mm i izvezemo 3D model sa istom preciznošću, lopta će imati 49506 trouglova što je ogromno povećanje u veličini datoteke. Na osnovu ovoga možemo zaključiti da je veoma važno pronaći balans između veličine datoteke i kvaliteta 3D površine t.j. kvaliteta 3D štampe.
Prilikom izvoza 3D modela softver (3D CAD ili softver za 3D modeliranje) će Vam ponuditi mogućnost podešavanja parametra koji određuje veličine fasete t.j. trougla. Vrednost koju navedete direktno utiče na preciznost mreže t.j. na veličinu datoteke. Postoje dva načina definisanja ovog parametra:
Tolerancija (Tolerance) t.j. Visina tetive (Chord height) - Maksimalno rastojanje od površine 3D modela do STL mreže.
Ugaono odstupanje (Angular deviation) t.j. Ugaona tolerancije (Angular tolerance) - Ugao između normala susednih trouglova.
Bez obzira na ovaj krupan nedostatak i postojanje kvalitetnih novih neutralnih formata namenjenih za 3D štampanje, STL format se i dalje masovno koristi.
Drugi veliki problem ovog neutralnog formata je što može da opiše samo geometriju 3D modela. Pomoću njega ne mogu da se razmenjuju podaci kao što su boja 3D modela, materijal, metapodaci, orijentacija i sl. Od podataka unutar STL datoteka mogu da se nalaze samo koordinate temena trouglova i orijentacija njihovih normala. Normale pokazuju sa koje strane trougla se nalazi "meso" 3D modela, t.j. materijal.
Ako otvorite STL datoteku u ASCII kodu ona uvek počinje sa linijom:
solid <ime>
gde <ime> znači ime objekta t.j. 3D modela. Ovo polje može da bude i prazno, ali u tom slučaju iza reči Solid mora da bude razmak (Space). Posle ove linije odmah slede geometrijski podaci t.j. podaci o trouglovima koji popločavaju površine 3D modela. Svaki trougao se daje samo pomoću koordinata svojih temena i normale koja definiše sa koje strane je meso 3D modela. Struktura ovih podataka je jednostava i izgleda na sledeći način:
facet normal nx ny nz
outer loop
vertex v1x v1y v1z
vertex v2x v2y v2z
vertex v3x v3y v3z
endloop
endfacet
Gde je n normala trougla a V1, V2 i V3 su temena trougla. Sufiksi x, y i z govore za koju koordinatu se vrednost odnosi.
STL ASCII datoteka se uvek završava sa linijom:
endsolid <name>
Na sledećoj slici možete videti kako izgleda unutrašnjost ASCII datotetke STL formata.
Postoje nekoliko specijalnih pravila:
Pravilo temena: Pravilo temena kaže da svaki trougao mora deliti dva temena sa svakim svojim susednim trouglom.
Pravilo orijentacije: Orijentacija fasete (trougla) mora biti definisana na dva načina: Prvi da smer normale treba da bude ka spolja, t.j. treba da pokazuje gde je vazduh. Drugi da su temena pobrojana (izlistana) u smeru suprotnom od smera kazaljke na satu kada se 3D model posmatra spolja.
Pravilo pozitivnih oktanata: Pravilo pozitivnih oktanata kaže da sve koordinate temena moraju biti pozitivne. Ovo znači da je 3D model uvek postavljen u I oktantu (pozitivne sve 3 koordinate). Ovo pravilo se baš i ne poštuje.
Pravilo sortiranja trouglova: Pravilo sortiranja trouglova preporučuje da se touglovi listaju u smeru pozitivne vrednosti koordinate Z t.j. na gore. Ovo pravilo bi trebalo da pomaže softverima da brže seku 3D modele u slojeve, ali se ono ne poštuje striktno.
Za razliku AMF ili 3MF formata kod kojih stranice trouglova mogu biti zakrivljene, kod STL formata su one uvek prave linije što smanjuje preciznost ovog formata u odnosu na pomenuta dva konkurenta.
Pošto je STL format samo gomila podataka o temenima i normalama trouglova, on ne može da opiše način povezivanja trouglova i ne vrši nikakve provere ispravnosti. Ovo za posledicu ima čestu pojavu grešaka: dupliranih ivica, rupa i procepa, obrnute normale, ukrštanje geometrije, geometriju bez mnogostrukosti (Non-manifold geometry). Geometrija bez mnogostrukosti 3D modela u praksi znači da njegov oblik t.j. geometrija ne može fizički da postoji, a samim tim nemoguće ju je proizvesti. Za ove vrste grešaka se na engleskom govornom području česko koristi termin da 3D modeli nisu vodootporni (waterproof).
Na žalost jednostavnost STL formata ima svoju cenu i često ćete naići na 3D modele sa greškama koje nežete moći štampati. Vremenom softveri su morali razvijati posebne alatke za popravku mreža, a nastalo je celo tržište softvera za otklanjanje i popravljanje grešaka. Postoji čak i jedan odličan besplatan program ove namene, zove se MeshLab.
Pozitivne osobine STL formata:
neutralni format,
jednostavan i kompaktan,
postao je skoro standard pa je podržan od skoro svih 3D softvera, proizvođača štampača, softvera za 3D štampu, servisa koji pružaju usluge 3D štampe...
Negativne osobine STL formata:
opisuje samo temena i normale trouglova,
ne povezuje trouglove i ne proverava ispravnost mreže što dovodi do česte pojave grešaka,
ogromne datoteke, pogotovo kod 3D modela velikih dimenzija i ako se zahteva velika tačnost,
ne može da pohrani merne jedinice i razmeru,
ne može da pohrani orijentaciju 3D modela,
ne može da pohrani materijal, boju ili teksture što ga čini praktično neupotrebljivim za napredne vrste 3D štampanja (3D štampanje sa više boja ili materijala odjedanput),
ne može da pohrani metapodatke, parametre 3D štampe, profil 3D štampača…,
pošto ivice truglova ne mogu biti zakrivljene tačnost predstavljanja složenih površina mu je mnogo manja od AMF i 3MF formata,
polako postaje zastareo jer mu mnogo napredniji AMF i 3MF formati oduzimaju popularnost među korisnicima,
ne može da odgovori modernim i budućim zahtevima industrije 3D štampe.