STL

souborový formát (3D CAD)

STL (zkratka ze „stereolitografie“) je nativní formát souboru stereolitografického programu pro CAD vytvořeného firmou 3D Systems[1][2][3]. Zkratka STL má několik dodatečně vytvořených vysvětlení, jako například „Standard Triangle Language“ a „Standard Tessellation Language“.[pozn. 1]. Formát STL je podporován mnoha dalšími programy; je používanější pro rapid prototyping, 3D tisk a Computer aided manufacturing[pozn. 2]. STL soubory popisují pouze geometrii povrchu trojrozměrného objektu bez reprezentace barev, textur nebo jiných obvyklých atributů CAD modelu. Formát STL definuje textovou i binární reprezentaci souborů. Použití binárních souborů je častější, protože jsou kompaktnější[6].

STL
CAD reprezentace prstence (naznačeného dvěma soustřednými červenými kružnicemi) a STL aproximace stejného tvaru (složeného z trojúhelníkových stěn)
CAD reprezentace prstence (naznačeného dvěma soustřednými červenými kružnicemi) a STL aproximace stejného tvaru (složeného z trojúhelníkových stěn)
Přípona souboru.stl
Typ internetového média
  • model/stl
  • model/x.stl-ascii
  • model/x.stl-binární
Tvůrce3D Systems
První verze1987
Typ formátuStereolitografie
Další významy jsou uvedeny na stránce STL (rozcestník).

STL soubor popisuje syrový, nestrukturovaný triangulovaný povrch pomocí jednotkových normálových vektorů a vrcholů (uspořádaných podle pravidla pravé ruky) trojúhelníků ve trojrozměrné kartézské soustavě souřadnic. V původním standardu musely být všechny souřadnice kladná čísla, ale toto omezení již není vynucováno, a záporné souřadnice se v STL souborech běžně vyskytují. STL soubory neobsahují žádné informace o mírách a používají libovolné jednotky[pozn. 3].

Textový STL formát

editovat

Textový STL soubor začíná řádkem

solid jméno

kde jméno je nepovinný řetězec (i když jméno není uvedeno, musí být za slovem solid mezera). Soubor pokračuje definicemi libovolného počtu trojúhelníků, z nichž každý je reprezentován takto:

facet normal ni nj nk
    outer loop
        vertex v1x v1y v1z
        vertex v2x v2y v2z
        vertex v3x v3y v3z
    endloop
endfacet

kde každé n nebo v je číslo s pohyblivou řádovou čárkou ve formátu znaménko-mantisa-"e"-znaménko-exponent, např. "2.648000e-002". Soubor končí řádkem

endsolid jméno
 
Příklad textového STL souboru popisujícího sférikon.

Přestože formát STL umožňuje i jiné možnosti (například stěny s více než jednou „smyčkou“ nebo smyčky s více než třemi vrcholy), v praxi se však používají pouze stěny tvořené jednoduchými trojúhelníky.

Kdekoli v souboru, ne však uvnitř čísel nebo slov, mohou být bílé znaky (mezery, tabulátory a konce řádků). Mezi slovy facet a normal a mezi outer a loop musí být alespoň jedna mezera[6].

Binární STL

editovat

Protože textové STL soubory mohou být velmi rozsáhlé, používá se i binární formát STL. Začíná 80bytovou hlavičkou (která je typicky ignorována, ale nikdy nesmí začínat řetězcem „solid“ protože by takový soubor mohly některé programy považovat za textový STL soubor). Po hlavičce následuje čtyřbytové celé číslo bez znaménka ve formátu little endian udávající počet trojúhelníkových stěn v souboru. Další data popisují jednotlivé trojúhelníky. Soubor končí za popisem posledního trojúhelníku.

Každý trojúhelník je popsán dvanácti 32bitovými čísly s pohyblivou řádovou čárkou: první tři určují normálu stěny, další jsou souřadnice X, Y a Z jednotlivých vrcholů – stejně jako v textové verzi STL souborů. Následuje dvoubytové celé číslo („short“) bez znaménka, obsahující „attribute byte count“ – ve standardním formátu musí být nulový, protože většina programů jiným hodnotám nerozumí[6].

Čísla s pohyblivou řádovou čárkou jsou reprezentována podle normy IEEE 754 a jsou ukládána v pořadí little endian, i když to v dokumentaci není uvedeno.

UINT8[80] – Hlavička
UINT32 – Počet trojúhelníků
pro každý trojúhelník REAL32[3] – Normálový vektor REAL32[3] – Vrchol 1 REAL32[3] – Vrchol 2 REAL32[3] – Vrchol 3 UINT16 – Attribute byte count konec

Barvy v binárním STL

editovat

Existují nejméně dvě nestandardní varianty binárního formátu STL, které obsahují informace o barvách:

  • Programy VisCAM a SolidView používají dvoubytové pole „attribute byte count“, kterým končí popis každého trojúhelníka, pro uložení 15bitové RGB barvy:
    • bity 0 až 4 jsou intenzita modré (0 až 31),
    • bity 5 až 9 jsou intenzita zelené (0 až 31),
    • bity 10 až 14 jsou intenzita červené (0 až 31),
    • bit 15 je 1, je-li informace o barvě přítomna; nebo 0, jestliže není přítomna (např. ve standardních STL souborech).
  • Program Materialise Magics používá 80bytovou hlavičku na začátku souboru pro reprezentaci barvy celku. Je-li barva celku použita, pak musí být někde v hlavičce ASCII řetězec „COLOR=“ následovaný čtyřmi byty, které reprezentují červenou, zelenou a modrou složku a alfa kanál (průhlednost) v rozsah 0–255. Tato hodnota udává barvu celého objektu, pokud není předefinovaná pro jednotlivé stěny. Program Magics také dovoluje popis materiálu; podrobnější charakteristiku povrchu. Po zadání „COLOR=RGBA“ musí být ASCII řetězec „,MATERIAL=“ následovaný popisem tří barev (3×4 byty): první je barva difúzního odrazu, druhá barva zrcadlového zvýraznění a třetí barva okolního osvětlení. Definice materiálu má přednost před barvami. Barvy jednotlivých stěn jsou reprezentovány ve dvoubytovém „attribute byte count“ takto:
    • bity 0 až 4 jsou intenzita červené barvy (0 až 31),
    • bity 5 až 9 jsou intenzita zelené barvy (0 až 31),
    • bity 10 až 14 jsou intenzita modré barvy (0 až 31),
    • bit 15 je 0, jestliže příslušná stěna má vlastní jednoznačnou barvu; nebo 1, jestliže se má použít globální barva objektu.

Pořadí jednotlivých složek (červená zelená modrá) v těchto dvou bytech je v těchto dvou přístupech prohozeno, proto i když by tyto formáty mohly být kompatibilní, jiné pořadí barev způsobuje, že kompatibilní nejsou; tuto situaci zhoršuje, že obecný prohlížeč STL souborů, je nemůže automaticky rozlišit. Neexistuje také žádný způsob, jak udělat některé ze stěn průhledné, protože nelze zadat hodnotu alfa kanálu. Pro současné nástroje pro rapid prototyping to není důležité.

Normála stěny

editovat

V textové i binární verzi formátu STL je normála stěny zadána pomocí jednotkového vektoru, který ukazuje ven z objektu. Většina programů umožňuje, aby hodnota normálového vektoru byla (0,0,0), a program automaticky vypočítá normály podle pořadí vrcholů trojúhelníků pomocí „pravidla pravé ruky“. Některé moduly pro načítání STL souborů (například STL plugin pro Art of Klam) kontrolují, zda normála v souboru souhlasí s normálou vypočítanou pomocí pravidla pravé ruky, a pokud ne, varují uživatele. Jiné programy mohou úplně ignorovat normály stěny a používají pouze pravidlo pravé ruky. Přestože se v souborech obvykle nevyskytují normály, které nelze spočítat pomocí pravidla pravé ruky, aby byl soubor maximálně přenositelný, musí obsahovat normály stěn i uvádět správné pořadí vrcholů. Významnou výjimkou je program SolidWorks, který používá normály pro efekty stínování.

Použití pro 3D tisk

editovat

Stereolitografické stroje jsou 3D tiskárny, které dokážou vytvořit jakýkoli prostorový tvar jako řadu řezů. Tyto stroje v zásadě vyžadují řadu uzavřených dvourozměrných obrysů, které budou vyplněny tuhnoucím materiálem, když se vrstvy spojují dohromady. Přirozeným formátem souboru pro takový stroj by byla řada uzavřených mnohoúhelníků odpovídajících jednotlivým vrstvám pro různou hodnotu souřadnice Z. Protože je však možné měnit tloušťku vytvářených vrstev pro rychlejší, i když méně přesnou tvorbu, bylo by snazší definovat model tak, že by vytvářel uzavřené mnohostěny, které lze řezat v potřebné výšce.

Formát souboru STL dovoluje definovat mnohostěny se stěnami tvořenými libovolnými mnohoúhelníky, ale v praxi se zatím používají pouze trojúhelníky, což znamená, že velká část syntaxe textového souboru je nadbytečná.

Pro korektní definici 3D tělesa musí být povrch reprezentovaný jakýmkoli STL souborem uzavřený a propojený, každá hrana musí být součástí právě dvou trojúhelníků a nesmí se vzájemně protínat. Protože syntaxe STL tuto vlastnost nevynucuje, může být ignorována pro aplikace, kde na blízkosti nezáleží. Na blízkosti záleží pouze, protože software, které řeže trojúhelníky, ji vyžaduje na zajištění, že výsledné 2D mnohoúhelníky jsou uzavřené. Někdy lze napsat takový software, aby odstranil malé rozdíly malým posunem vrcholů, které jsou dostatečně blízko sebe, aby se shodovaly. Výsledky nejsou předvídatelné, ale obvykle jsou dostatečné.

Použití v jiných oborech

editovat
 
STL model konvice z Utahu zobrazený pomocí 3D rozšíření MediaWiki[nedostupný zdroj]

Souborový formát STL je jednoduchý a lze jej snadno vytvářet. Díky tomu může mnoho Computer aided design systémů vytvářet soubory STL. Ačkoli výstup je jednoduchý pro výrobu, některé i informace o propojení jsou zahozeny.

Mnoho Computer aided manufacturing systémů vyžaduje triangulované modely. Přestože formát STL není s ohledem na spotřebu paměti a výpočetního výkonu nejefektivnější metodou pro přenos těchto dat, pro import triangulovaných dat do systémů CAM se často používá. Velmi často bývá dostupný právě STL formát, takže mnoho CAM systémů jej používá. Aby však mohl CAM systém tato data použít, musí v některých případech rekonstruovat informace o konektivitě.

Formát STL může být použit i pro výměnu dat mezi CAD/CAM systémy a počítačovými programy jako je Mathematica.

Historie

editovat

Formát STL navrhlo sdružení Albert Consulting Group pro firmu 3D Systems v roce 1987.[8]. Formát byl vyvinut pro první komerční 3D tiskárny firmy 3D Systems. Od svého prvního vydání zůstal formát 22 roků téměř nezměněn. Až v roce 2009 byla navržena aktualizace formátu označovaná jako STL 2.0[9][10].

Programy používající formát STL

editovat
  • Adobe Acrobat 3D, program pro výměnu 3D dat vkládá 3D obsah do formátu PDF.
  • Adobe Photoshop, grafický editor a program pro 3D vykreslování a tisk.
  • Anim8or, volně dostupný program pro 3D modelování a animace.
  • ArchiCAD, CAD program pro architekty, může importovat a exportovat STL soubory.
  • Autodesk Revit, CAD program pro architekty a inženýry, může importovat STL soubory.
  • Autodesk ReMake, vytváří 3D modely z reality zachycené na fotografiích nebo skenech. Remake může editovat a připravovat rozsáhlé meshe, generované nebo importované – jeho škálovatelný mesh streaming engine může vizualizovat a editovat mesh soubory s miliardami mnohoúhelníků. Čte a zapisuje .STL soubory.
  • Autodesk Meshmixer, free nástroj pro 3D tisk a snadnou editaci rozsáhlých STL souborů.
  • Blender, software pro 3D počítačovou grafiku používaný pro vytváření animovaných filmů, vizuálních efektů, výtvarné umění, 3D tištěných modelů, interaktivních 3D aplikací a video her.
  • CATIA, multiplatformní softwarová sada pro Computer aided design (CAD), Computer aided manufacturing (CAM) a Computer aided inženýrství (CAE).
  • CST elektromagnetická simulační sada může importovat STL soubory pro použití v simulacích a exportovat tvary jako STL soubory.
  • Clara.io, free online 3D editor, který může importovat, editovat a exportovat STL soubory.
  • CloudSrovnejte, aplikace s otevřeným zdrojovým textem pro zpracovávání STL souborů.
  • densys3d, Izraelský startup, který vytvořil IntraOral 3D scanner, a vyvinul software nazývaný MIA3d, který vytváří otevřené STL soubory, který pomáhá dentistům při analýze a tisku zubů.
  • Femap, pre- a post- procesor nezávislý na CAD napsaný pro Windows pro pokročilou inženýrskou analýzu metodou konečných prvků.
  • FreeCAD, CAD program s otevřeným zdrojovým textem, může importovat a exportovat STL soubory.
  • GeoMagic Design, CAD softwarová sada pro 3D modeling s přídavnými nástroji určenými pro 3D tisk vlastněný firmou 3D Systems.
  • Maple a Mathematica, systémy pro technické výpočty, které mohou pracovat s STL soubory.
  • MeshLab, free multiplatformní aplikace s otevřeným zdrojovým textem pro vizualizaci, zpracování a konvertování trojrozměrných meshů do nebo z formátu STL.
  • 3D Builder, představený s Microsoft Windows 8.1.
  • Mimics, lékařský obrázek zpracování software, může konvertuje CT a MRI soubory do .STL soubory.
  • MountainsMap, micro-topografický software exportující výstupy z profilometru a mikroskopu pro 3D povrchy do STL.
  • OpenSCAD, Constructive solid geometry modelář a doménově specifický jazyk může generovat i importovat STL soubory.
  • Preview, implicitní prohlížeč obrázků pro macOS.
  • Paraview, s otevřeným zdrojovým textem, multiplatformní analýza a vizualizace dat pro aplikace používající Visualization Toolkit (VTK).
  • PTC Creo Elements/Pro, 3D CAD/CAM/CAE používající vlastnost, asociativní prostorové modelování software.
  • Rhinoceros 3D, free form povrch modeler, které využívá matematický model NURBS.
  • Shores of Hazeron, MMO sandbox universe. Hráči používají vestavěný 3D model designer pro vytváření kosmických lodí a budov ve vesmíru Hazeron. Designer importuje a exportuje STL soubory.
  • SketchUp,[11] 3D modelování počítačový program pro široký rozsah kreslení aplikace jako například architektura, návrh interiérů, stavitelství a strojírenství.
  • Slic3r, konvertuje STL do G-kódu.
  • SolidWorks, prostorové modelování Computer aided design (CAD) a Computer aided inženýrství (CAE) software.
  • Solid Edge, 3D CAD, software pro prostorové modelování parametrických vlastností a synchronní technologie.
  • Spaceclaim od firmy ANSYS, funguje přímo s STL soubory, včetně mnoho nástrojů pro automatizovanou přípravu 3D tisku.
  • Siemens NX od firmy Siemens může pracovat s STL soubory a slučuje standardní CAD a STL s funkcemi konvergentního modelování.
  • AirShaper, software pro simulaci virtuálního větrného tunelu, který používá .STL soubory jako hlavní formát pro své aerodynamické simulace.

Poznámky

editovat
  1. Pro formát STL se používá mnoho jmen: například „standard triangle language“, „stereolithography language“, and „stereolithography tesselation language“. Na straně 55 je uvedeno, že „Chuck Hull, objevitel stereolitografie a zakladatel firmy 3D Systems, uvádí, že přípona jména souboru je zkratkou ze stereolitografie“.[4]
  2. kapitola 6, Rapid Prototyping Formats. Strana 237, „STL (STeroLithografie) soubory, protože jsou de facto standardem, se používají v mnoha, jestliže ne ve všech, systémech pro rapid prototyping.“ Kapitola 6.2 STL Problems. Kapitola 6.4 STL File Repair.[5]
  3. Reprezentovaný objekt musí být umístěn v oktantu, v němž jsou všechny souřadnice kladné. Jinými slovy, všechny souřadnice vrcholů musí být konečná kladná čísla. StL soubor neobsahuje žádné míry; souřadnice jsou v libovolných jednotkách.[7]

Reference

editovat

V tomto článku byl použit překlad textu z článku STL (file format) na anglické Wikipedii.

  1. StereoLithography Interface Specification. [s.l.]: 3D Systems, Inc., červenec 1988. 
  2. StereoLithography Interface Specification. [s.l.]: 3D Systems, Inc., říjen 1989. 
  3. SLC File Specification. [s.l.]: 3D Systems, Inc., 1994. 
  4. GRIMM, Todd. User's Guide to Rapid Prototyping. [s.l.]: Society of Manufacturing Engineers, 2004. Dostupné online. ISBN 0-87263-697-6. S. 55. 
  5. CHUA, C. K; LEONG, K. F.; LIM, C. S. Rapid Prototyping: Principles and Applications. 2. vyd. [s.l.]: World Scientific Publishing Co, 2003. ISBN 981-238-117-1. 
  6. a b c Burns, Marshall. Automated Fabrication. [s.l.]: Prentice Hall, 1993. Dostupné online. ISBN 978-0-13-119462-5. 
  7. The StL Format: Standard Data Format for Fabbers, reprinted from Marshall Burns, Automated Fabrication [online]. Dostupné online. 
  8. STL File Format for 3D Printing - Explained in Simple Terms [online]. 2016-11-17 [cit. 2017-05-05]. Dostupné online. 
  9. STL 2.0 May Replace Old, Limited File Format [online]. [cit. 2017-05-05]. Dostupné online. 
  10. HILLER, Jonathan D.; LIPSON, Hod. STL 2.0: A Proposal for a Universal Multi-Material Additive Manufacturing File Format [PDF]. Cornell University, 2009 [cit. 2017-05-05]. Dostupné v archivu pořízeném dne 2020-06-11. 
  11. Export na STL formát souboru - Solid Utopia [online]. 2015-03-11 [cit. 2018-10-05]. Dostupné v archivu pořízeném dne 2018-10-10. 

Související články

editovat

Externí odkazy

editovat