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 файл начинается со строки:
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
Существует как минимум 2 способа добавления информации о цвете:
В двоичной и ASCII версиях STL нормаль грани должна быть единичным вектором, направленным от объекта. В большинстве программ она может быть установлена в (0,0,0), и программа автоматически рассчитает нормаль на основе порядка вершин треугольника, используя правило правой руки. Некоторые STL загрузчики (к примеру, плагин STL для Art of Illusion), сверяют нормали в файле с рассчитанными по правилу правой руки и предупреждают при несовпадении. Другое ПО может игнорировать и использовать только правило правой руки.
Для улучшения этой статьи по информационным технологиям желательно: |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .