STL (формат файла)
| Расширение |
|
|---|---|
| MIME |
|
| Разработан |
3D Systems |
| Опубликован |
1987[2] |
| Тип формата |
3д-модели |
| Стандарт(ы) |
"StereoLithography Interface Specification" |
STL (от англ. stereolithography) — формат файла, широко[3][4] используемый для хранения трехмерных моделей объектов для использования в технологиях быстрого прототипирования, обычно, методом стереолитографии. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. STL-файл может быть текстовым (ASCII) или двоичным.
Содержание |
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 байтовое беззнаковое целое число, указывающее количество треугольных граней в данном файле. После этого идут данные, характеризующие каждый треугольник, в свою очередь.
Каждый треугольник описывается двенадцатью 32 битными числами с плавающей запятой: 3 нормали и по 3 на каждую из трех вершин для X/Y/Z координат. После идут 2 байта беззнакового 'short', который называется 'attribute byte count'. В обычном файле должно быть равно нулю, так как большинство программ не понимают других значений.[5]
Числа с плавающей запятой представляются в виде 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), сверяют нормали в файле с рассчитанными по правилу правой руки и предупреждают при не совпадении. Другое ПО может игнорировать и использовать только правило правой руки.
Недостатки [править]
См. также [править]
- AMFF (формат файла) (англ.) (Additive Manufacturing File Format)
- PLY (формат файла) (англ.) (Polygon File Format, Stanford Triangle Format.)
Примечания [править]
- ↑ STL (.stl) - Wolfram Mathematica 8 Documentation
- ↑ http://www.wohlersassociates.com/apr92cae.html
- ↑ Mechanisms and Mechanical Devices ... - Neil Sclater - Google Books
- ↑ http://www.emeraldinsight.com/journals.htm?articleid=1455161 . 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 This conversion usually creates a much larger file with less accuracy than the original 3D model.
Ссылки [править]
| Это заготовка статьи о программном обеспечении. Вы можете помочь проекту, исправив и дополнив её. |
Для улучшения этой статьи по информационным технологиям желательно?:
|
| Языки разметки и форматы файлов векторной графики | |||||
|---|---|---|---|---|---|
| По типу |
|
||||
| См. также | Web3D · Web3D Consortium · Linden Scripting Language | ||||