STL (от ) — формат файла, широкоSTL file has been widely accepted as a de facto standard file format for the rapid prototyping industry используемый для хранения трёхмерных моделей объектов для использования в аддитивных технологиях. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. STL-файл может быть текстовым (ASCII) или двоичным. Своё название получил от сокращения термина «Stereolithography», поскольку изначально применялся именно в этой технологии трёхмерной печати.
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'. В обычном файле должно быть равно нулю, так как большинство программ не понимает других значений.
Числа с плавающей запятой представляются в виде числа IEEE с плавающей запятой и имеют обратный порядок байтов, хотя это не указано в документации.
UINT8 – Header UINT32 – Number of triangles
foreach triangle REAL32 – Normal vector REAL32 – Vertex 1 REAL32 – Vertex 2 REAL32 – 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) сверяют нормали в файле с рассчитанными по правилу правой руки и предупреждают при несовпадении. Другое ПО может игнорировать и использовать только правило правой руки.
Недостатки Невысокая точность геометрии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. (в версии ASCII можно задавать произвольную точность). Большой объём файла для сложных моделей.
Поддержка приложениями ADEM CAD ABViewer Meshlab Blender Kompas 3D SketchUp T-FLEX CAD Autodesk Inventor CAD SolidWorks Sharp 3D ANSYS SpaceClaim Direct Modeler Cinema 4D FreeCAD SolveSpace может экспортировать STL Cura PrusaSlicer
См. также (Additive Manufacturing File Format) PLY (формат файла) (Polygon File Format, Stanford Triangle Format.)
Примечания
Ссылки The StL Format Free STL Viewer for Google Chrome
Категория:Графические форматы Категория:Форматы файлов 3D-графики Категория:Форматы файлов САПР