STL (формат файла)
STL (от англ. stereolithography) — формат файла, широко[4][5] используемый для хранения трёхмерных моделей объектов для использования в аддитивных технологиях. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. STL-файл может быть текстовым (ASCII) или двоичным. Свое название получил от сокращения термина «Stereolithography», поскольку изначально применялся именно в этой технологии трехмерной печати.
STL | |
---|---|
Сравнение форматов STL и CAD | |
Расширение |
.stl |
MIME-тип | application/sla [1] |
Разработчик | 3D Systems[d][3] |
Опубликован | 1987[2] |
Тип формата | 3д-модели |
Стандарт(ы) | "StereoLithography Interface Specification" |
Медиафайлы на Викискладе |
ASCII STLПравить
Файл типа 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». Файл завершается строкой:
endsolid name
Двоичный форматПравить
Поскольку файл ASCII STL может быть очень большим, существует двоичная версия этого формата. Файл начинается с заголовка из 80 символов (который обычно игнорируется, но не должен начинаться с 'solid', так как с этой последовательности начинается файл ASCII STL). После заголовка идет 4-байтовое беззнаковое целое число (little-endian), указывающее количество треугольных граней в данном файле. После этого идут данные, характеризующие каждый треугольник, в свою очередь.
Каждый треугольник описывается двенадцатью 32-битными числами с плавающей запятой: 3 числа для нормали и по 3 числа на каждую из трёх вершин для координат X/Y/Z. После идут 2 байта беззнакового 'short', который называется 'attribute byte count'. В обычном файле должно быть равно нулю, так как большинство программ не понимает других значений.[6]
Числа с плавающей запятой представляются в виде числа IEEE с плавающей запятой и имеют обратный порядок байтов, хотя это не указано в документации.
UINT8[80] – Header UINT32 – Number of triangles foreach triangle REAL32[3] – Normal vector REAL32[3] – Vertex 1 REAL32[3] – Vertex 2 REAL32[3] – Vertex 3 UINT16 – Attribute byte count end
Цвета в двоичном STLПравить
Существует как минимум 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) сверяют нормали в файле с рассчитанными по правилу правой руки и предупреждают при несовпадении. Другое ПО может игнорировать и использовать только правило правой руки.
НедостаткиПравить
Поддержка приложениямиПравить
- ADEM CAD
- ABViewer
- Meshlab
- Blender
- Kompas 3D[8]
- SketchUp
- T-FLEX CAD
- Autodesk Inventor CAD
- SolidWorks
- Sharp 3D
- ANSYS SpaceClaim Direct Modeler
- Cinema 4D
- FreeCAD
- SolveSpace может экспортировать STL
- Cura
См. такжеПравить
- AMFF (формат файла)[en] (Additive Manufacturing File Format)
- PLY (формат файла)[en] (Polygon File Format, Stanford Triangle Format.)
ПримечанияПравить
- ↑ STL (.stl) — Wolfram Mathematica 8 Documentation (неопр.). Дата обращения: 22 октября 2011. Архивировано 20 октября 2011 года.
- ↑ Wohlers Associates (неопр.). Дата обращения: 22 октября 2011. Архивировано 30 апреля 2012 года.
- ↑ http://guides.archaeologydataservice.ac.uk/g2gp/3d_2-3
- ↑ Mechanisms and Mechanical Devices (неопр.). Дата обращения: 2 октября 2017. Архивировано 26 сентября 2014 года.
- ↑ 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.
- ↑ 1 2 https://webspace.utexas.edu/reyesr/titanium/stl/stlmarch17.htm Архивная копия от 15 мая 2014 на Wayback Machine This conversion usually creates a much larger file with less accuracy than the original 3D model.
- ↑ KOMPAS-3D Home (неопр.). ascon.net. Дата обращения: 27 сентября 2019. Архивировано 26 сентября 2019 года.
СсылкиПравить
Для улучшения этой статьи по информационным технологиям желательно:
|