Koupili jste si první 3D tiskárnu, na webu s modely klepnete na „Stáhnout“ a dostanete soubor s koncovkou .stl. Co to vlastně je? Proč nemá barvu, proč někdy váží 2 MB a jindy 200 MB a proč ho tiskárna nevezme napřímo? STL soubor je nejrozšířenější formát v 3D tisku a vyplatí se mu rozumět, protože spousta problémů s tiskem začíná právě tady.
Stručně: STL soubor popisuje povrch 3D tvaru jako síť trojúhelníků. Neobsahuje barvy, materiál ani jednotky (předpokládají se milimetry). Existuje v binární a textové (ASCII) podobě. Vzniká exportem z CAD nebo modelovacího programu a slicer z něj připraví pokyny pro tiskárnu (G-code).
Co je STL soubor: povrch z trojúhelníků
Představte si, že tvar modelu obalíte papírovými trojúhelníky tak, aby nikde nebyla mezera. Přesně to dělá STL. Každý trojúhelník je zapsán třemi body (vrcholy) se souřadnicemi X, Y, Z a jedním směrovým vektorem, tzv. normálou, která říká, kam míří „ven“.
Rovné plochy se popíšou snadno: čtvercová stěna kostky jsou dva trojúhelníky, celá kostka tedy 12. Zakřivené plochy se ale musí přibližovat mnoha malými trojúhelníky. Válec rozdělený na 64 segmentů má jen na plášti 128 trojúhelníků a dalších 124 na dvou podstavách. Čím jemnější dělení, tím hladší výtisk, ale také větší soubor.
Zkratka STL se obvykle vykládá jako „stereolitografie“, podle technologie, pro kterou formát v 80. letech vznikl. Dnes ho používá prakticky každý slicer i CAD program.
Co STL neobsahuje
- Jednotky. V souboru je jen číslo 20, ne „20 mm“. Slicer a prohlížeč předpokládají milimetry. Když model vznikl v palcích, vyjde 25,4krát menší. Více v článku palce vs. milimetry.
- Barvy a materiály. Klasické STL je jednobarevné. Pro více barev se používá 3MF nebo OBJ s MTL.
- Přesnou geometrii. Kružnice je mnohoúhelník. Z STL už původní „dokonalý“ oblouk nezískáte, proto konstruktéři posílají spíš STEP.
- Informaci o tisku. Výplň, teploty ani podpěry v STL nejsou; to vše nastavuje slicer.
Binární vs. ASCII STL
STL existuje ve dvou variantách se stejným obsahem, ale jiným zápisem:
| Vlastnost | Binární STL | ASCII STL |
|---|---|---|
| Zápis | Čísla v binární podobě | Čitelný text (facet normal, vertex) |
| Velikost na trojúhelník | Přesně 50 bajtů | Typicky 200 až 300 bajtů |
| 100 000 trojúhelníků | asi 5 MB | asi 20 až 30 MB |
| Kdy se používá | Téměř vždy | Starší programy, ladění, výuka |
Výpočet pro binární STL je jednoduchý: hlavička 80 bajtů, 4 bajty na počet trojúhelníků a 50 bajtů na každý trojúhelník. Model s 300 000 trojúhelníky má tedy 80 + 4 + 15 000 000 bajtů, tedy asi 15 MB. Pokud máte soubor desetkrát větší, je pravděpodobně v ASCII, nebo má opravdu hustou síť.
Jak vypadá ASCII STL uvnitř
Když textové STL otevřete v poznámkovém bloku, jeden trojúhelník vypadá zhruba takto:
facet normal 0 0 1outer loopvertex 0 0 20vertex 20 0 20vertex 20 20 20endloopendfacet
Normála 0 0 1 míří nahoru, takže jde o horní stěnu, a tři vrcholy leží ve výšce 20. Žádné „mm“ tu nenajdete, což je přesně ten důvod, proč STL neví nic o jednotkách. Celý soubor začíná řádkem solid s názvem a končí endsolid.
Proč jsou STL soubory tak velké
STL ukládá každý trojúhelník samostatně, včetně všech tří vrcholů. Sousední trojúhelníky sdílejí vrcholy, ale STL je zapíše znovu a znovu. Jeden bod je tak v souboru v průměru šestkrát. Formáty jako 3MF nebo PLY vrcholy ukládají jednou a odkazují na ně, proto bývají menší.
Druhým důvodem je rozlišení exportu. Stejná váza exportovaná s hrubou tolerancí může mít 20 000 trojúhelníků (1 MB), s velmi jemnou 2 miliony (100 MB). Pro běžnou tiskárnu s tryskou 0,4 mm je rozdíl mezi 0,01 mm a 0,001 mm přesnosti sítě neviditelný, ale soubor narostl stokrát. 3D skeny a modely ze sochařských programů mívají miliony trojúhelníků zcela běžně.
Kde je STL v procesu 3D tisku
- Návrh: model vznikne v CAD programu, modelovacím programu nebo ze skenu.
- Export: uloží se jako STL (nebo 3MF).
- Kontrola: prohlédnete si rozměry, uzavřenost sítě a orientaci.
- Slicování: slicer rozřeže model na vrstvy a vytvoří G-code.
- Tisk: tiskárna vykoná G-code.
STL je tedy předávací formát mezi návrhem a slicerem. G-code, který z něj vznikne, už 3D model není a prohlížeč STL ho neotevře, jsou to jen pohyby a teploty pro konkrétní tiskárnu.
Jak si STL prohlédnout a co sledovat
Na počítači STL otevřete ve sliceru, v telefonu s Androidem v aplikaci STL Viewer z Google Play. Ta zvládne binární i ASCII STL, a v panelu Informace o modelu uvidíte i formát, například „STL (binární)“. Dál se dívejte na:
- Rozměry (Š × H × V), jestli dávají smysl a vejdou se na podložku.
- Vodotěsný: Ano, nebo „Ne, má díry nebo otevřené hrany“. Co to znamená, vysvětluje článek o uzavřené síti.
- Počet trojúhelníků vůči velikosti souboru.
- V drátovém modelu, jak hustá je síť na zaoblených místech.
Podrobný popis jednotlivých údajů najdete v návodu k informacím o modelu a celou aplikaci na webu STL Vieweru. A pokud zvažujete, jestli místo STL nepoužívat novější formát, přečtěte si srovnání 3MF a STL.
Poznámka: Hlášení „Ano, ale některé stěny směřují dovnitř“ znamená, že síť je uzavřená, ale část trojúhelníků má otočenou normálu. Slicery si s tím často poradí, objem a odhad filamentu ale nejsou spolehlivé.
Časté otázky
Co znamená zkratka STL?
Obvykle se vykládá jako stereolitografie, podle technologie, pro kterou formát vznikl. Dnes je to běžný předávací formát pro 3D tisk.
Má STL soubor jednotky?
Nemá. Soubor obsahuje jen čísla a programy předpokládají milimetry. Model nakreslený v palcích proto vypadá 25,4krát menší.
Jaký je rozdíl mezi binárním a ASCII STL?
Obsah je stejný, liší se zápis. Binární STL má 50 bajtů na trojúhelník, ASCII je čitelný text a bývá několikrát větší.
Může STL obsahovat barvy?
Klasické STL ne. Pro barevné modely se používá 3MF nebo OBJ se souborem MTL.