STL (формат файлу)
Розширення файлу: | .stl |
---|---|
MIME-тип: | application/sla [1] |
Рік випуску: | 1987[2] |
Тип формату: | 3д-модели |
Стандарт(и): | "StereoLithography Interface Specification" |
STL (від англ. stereolithography) — формат файлу, який широко[3][4] застосовують для зберігання тривимірних моделей об'єктів для використання в адитивних технологіях. Інформація про об'єкт зберігається як список трикутних граней, які описують його поверхню, та їхніх нормалей. STL-файл може бути текстовим (ASCII) або двійковим. Свою назву отримав від скорочення терміну «Stereolithography», оскільки спочатку застосовувався саме в цій технології тривимірного друку.
Файл типу ASCII STL починається з рядка:
solid name
де name — необов'язковий рядок (але якщо name опущено, після solid все одно має бути пропуск). Файл продовжується довільним числом описів трикутників такого вигляду:
facet normal ni nj nk outer loop vertex v1x v1y v1z vertex v2x v2y v2z vertex v3x v3y v3z endloop endfacet
де кожне n і v — число з рухомою комою у форматі: знак, мантиса, «e», знак, порядок, наприклад «-2.648000e-002». Файл завершується рядком:
Оскільки файл ASCII STL може бути великим, існує двійкова версія цього формату. Файл починається із заголовка з 80 символів (який зазвичай нехтується, але не може починатися зі 'solid', оскільки з цієї послідовності починається файл ASCII STL). Після заголовка йде 4-байтове беззнакове ціле число (little-endian), що вказує на кількість трикутних граней у файлі. Після цього йдуть дані, що характеризують кожен із трикутників.
Кожен трикутник описують дванадцятьма 32-бітовими числами з рухомою комою: 3 числа для нормалі та по 3 числа на кожну з трьох вершин для координат X/Y/Z. Далі йдуть 2 байти беззнакового 'short', яке називається 'attribute byte count'. У звичайному файлі має дорівнювати нулю, оскільки більшість програм не розуміє інших значень[5].
Числа з рухомою комою подають у вигляді числа IEEE з рухомою комою та мають зворотний порядок байтів, хоча цього не зазначено в документації.
UINT8[80] – заголовок UINT32 – число трикутників для кожного з трикутників REAL32[3] – вектор нормалі REAL32[3] – вершина 1 REAL32[3] – вершина 2 REAL32[3] – вершина 3 UINT16 – attribute byte count end
Існує принаймні 2 способи додавання інформації про колір:
- VisCAM і SolidView використовують 2 байти 'attribute byte count' у кінці опису кожного трикутника для зберігання 15 бітів кольору RGB:
- біти від 0 до 4 — рівень інтенсивності для синього (від 0 до 31)
- біти від 5 до 9 — рівень інтенсивності для зеленого (від 0 до 31)
- біти від 10 до 14 — рівень інтенсивності для червоного (від 0 до 31)
- якщо біт 15 дорівнює 1, колір використовується
- якщо біт 15 дорівнює 0, колір не використовується (для сумісності зі стандартним STL)
- Materialise Magics працює інакше. Він використовує 80 байтів заголовка для подання загального кольору. Також там може міститись інформація про матеріал. Колір кожної грані описують у 'attribute byte count' як:
- біти від 0 до 4 — рівень інтенсивності для червоного (від 0 до 31)
- біти від 5 до 9 — рівень інтенсивності для зеленого (від 0 до 31)
- біти від 10 до 14 — рівень інтенсивності для синього (від 0 до 31)
- якщо біт 15 дорівнює 0, то грань має свій колір
- якщо біт 15 дорівнює 1, то використовується загальний колір.
У двійковій та ASCII-версіях STL нормаль грані має бути одиничним вектором, спрямованим від об'єкта. У більшості програм її можна встановити в (0,0,0), і програма автоматично розрахує нормаль на основі порядку вершин трикутника, використовуючи правило правої руки. Деякі завантажувачі STL (наприклад, STL плагін для Art of Illusion) звіряють нормалі у файлі з розрахованими за правилом правої руки і попереджають про розбіжності. Інше програмне забезпечення може нехтувати це і використовувати лише правило правої руки.
- Невисока точність геометрії[6] (у версії ASCII можна задавати довільну точність).
- Великий обсяг файлу для складних моделей[6].
- ADEM CAD
- ABViewer[en]
- Meshlab
- Blender
- Kompas 3D[7]
- SketchUp
- T-FLEX CAD
- Autodesk Inventor CAD
- SolidWorks
- Sharp3D
- ANSYS SpaceClaim Direct Modeler
- Cinema 4D
- FreeCAD
- SolveSpace може експортувати STL
- Cura[en]
- PrusaSlicer
- AMFF (формат файлу)[en] (Additive Manufacturing File Format)
- PLY (формат файлу) (Polygon File Format, Stanford Triangle Format.)
- ↑ STL (.stl) — Wolfram Mathematica 8 Documentation. Архів оригіналу за 20 жовтня 2011. Процитовано 22 жовтня 2011.
- ↑ Wohlers Associates. Архів оригіналу за 30 квітня 2012. Процитовано 22 жовтня 2011.
- ↑ Mechanisms and Mechanical Devices. Архів оригіналу за 26 вересня 2014. Процитовано 2 жовтня 2017.
- ↑ STL file has been widely accepted as a de facto standard file format for the rapid prototyping industry[недоступне посилання]
- ↑ Burns, Marshall. Automated Fabrication. — Prentice Hall, 1993. — ISBN 978-0-13-119462-5.
- ↑ а б https://webspace.utexas.edu/reyesr/titanium/stl/stlmarch17.htm [Архівовано 2014-05-15 у Wayback Machine.] This conversion usually creates a much larger file with less accuracy than the original 3D model.
- ↑ KOMPAS-3D Home. ascon.net. Архів оригіналу за 26 вересня 2019. Процитовано 27 вересня 2019.