powered by CADENAS

Social Share

STL (формат файла) (11435 views - 3D Printing Dictionary)

STL (от англ. stereolithography) — формат файла, широко используемый для хранения трёхмерных моделей объектов для использования в аддитивных технологиях. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. STL-файл может быть текстовым (ASCII) или двоичным. Свое название получил от сокращения термина "Stereolithography", поскольку изначально применялся именно в этой технологии трехмерной печати.
Go to Article

STL (формат файла)

STL (формат файла)

STL
Сравнение форматов STL и CAD
Расширение

.stl

MIME-тип

application/sla [1]

Разработчик

3D Systems[d][2]

Опубликован

1987[3]

Тип формата

3д-модели

Стандарт(ы)

"StereoLithography Interface Specification"

STL (от англ. stereolithography) — формат файла, широко[4][5] используемый для хранения трёхмерных моделей объектов для использования в аддитивных технологиях. Информация об объекте хранится как список треугольных граней, которые описывают его поверхность, и их нормалей. 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 байтовое беззнаковое целое число, указывающее количество треугольных граней в данном файле. После этого идут данные, характеризующие каждый треугольник, в свою очередь.

Каждый треугольник описывается двенадцатью 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), сверяют нормали в файле с рассчитанными по правилу правой руки и предупреждают при несовпадении. Другое ПО может игнорировать и использовать только правило правой руки.

Недостатки

  • Невысокая точность геометрии.[7] (В ASCII версии можно задавать произвольную точность.)
  • Большой объем файла для сложных моделей.[7]

Поддержка приложениями

  • Meshlab
  • Blender 3D
  • Kompas 3D v17

См. также



This article uses material from the Wikipedia article "STL (формат файла)", which is released under the Creative Commons Attribution-Share-Alike License 3.0. There is a list of all authors in Wikipedia

3D Printing Dictionary

OpenLAB, Fablab, OpenSCAD, FreeCAD, BRL-CAD, RhinocerosCAD, LibreCAD, Vectary, 123D, TinkerCAD, Wings 3D, MOI3D, leapfrog 3D, Geomagic, Paint3D, STLfinder, Yeggi, Yobi3D, 3D Shape Search, PARTcloud, Thingiverse, GrabCAD, AMF, Additive Manufacturing, STL, Stereolitography, Mesh, MeshMixer, Free Download, lowpoly, 3D voxel,things, digital design, physical objects, rapid prototyping, 3D objects, 3D printing, reprap, fabrication, laser cutter,abs