Открыть сервис

Формат STL

STL (от англ. stereolithography или Standard Tessellation Language) — это формат файла для хранения трёхмерной геометрии объектов, широко используемый в аддитивных технологиях (3D-печати), системах автоматизированного проектирования (САПР) и компьютерной графике. Он описывает поверхность трёхмерной модели как набор непересекающихся треугольников (триангуляцию), каждый из которых задаётся координатами трёх вершин и вектором нормали, указывающим внешнюю сторону поверхности. Формат не хранит информацию о цвете, текстуре, материале или масштабе, что делает его простым и универсальным, но ограниченным по функциональности.

История

Формат STL был разработан компанией 3D Systems в 1987 году для использования в технологии стереолитографии — одном из первых методов 3D-печати. Создателем формата считается Чарльз Халл, основатель 3D Systems и изобретатель стереолитографии. Первоначально STL расшифровывался как Stereolithography Interface Specification, но позже закрепилась расшифровка Standard Tessellation Language.

В 1980-х годах STL стал де-факто стандартом для обмена данными между САПР и 3D-принтерами благодаря своей простоте и лёгкости реализации. С развитием аддитивных технологий в 1990-х и 2000-х годах формат получил массовое распространение, однако его ограничения (отсутствие поддержки цвета, текстур, точных кривых) привели к появлению альтернативных форматов, таких как OBJ, AMF и 3MF. Тем не менее, STL остаётся наиболее распространённым форматом в любительской и профессиональной 3D-печати.

Структура файла

Файл STL может быть представлен в двух вариантах: текстовом (ASCII) и двоичном (binary).

ASCII-формат

Текстовый формат STL начинается со строки solid <имя>, за которой следуют описания треугольников. Каждый треугольник задаётся ключевым словом facet normal, за которым указываются три компонента вектора нормали (X, Y, Z). Затем следует блок outer loop, содержащий три вершины (vertex), каждая с координатами X, Y, Z. Завершается треугольник ключевым словом endfacet. Файл заканчивается строкой endsolid <имя>.

Пример фрагмента ASCII STL: `` solid cube facet normal 0.0 0.0 1.0 outer loop vertex 0.0 0.0 1.0 vertex 1.0 0.0 1.0 vertex 0.0 1.0 1.0 endloop endfacet ... endsolid cube ``

ASCII-формат читается человеком, но занимает значительно больше места (в 5–10 раз) по сравнению с двоичным.

Двоичный формат

Двоичный STL начинается с 80-байтового заголовка (обычно содержит имя модели или произвольную информацию, часто не используется). За ним следует 4-байтовое целое число без знака (uint32), указывающее количество треугольников. Далее для каждого треугольника записываются:

Таким образом, каждый треугольник занимает 50 байт. Двоичный формат компактен и быстрее обрабатывается программным обеспечением.

Ограничения и недостатки

Несмотря на широкое распространение, формат STL имеет ряд существенных ограничений:

Применение

Основная область применения STL — 3D-печать. Большинство слайсеров (программ, преобразующих 3D-модель в G-код для принтера) поддерживают этот формат. STL также используется в:

Альтернативные форматы

С развитием аддитивных технологий появились более совершенные форматы:

Несмотря на преимущества альтернатив, STL остаётся популярным благодаря простоте, широкой поддержке и устоявшейся экосистеме программного обеспечения.

Интересные факты

Источники

  1. 3D Systems, Inc. — Stereolithography Interface Specification (1988).
  2. ASTM F2915-12 — Standard Specification for Additive Manufacturing File Format (AMF).
  3. 3D Manufacturing Format (3MF) Consortium — 3MF Specification.
  4. Чалмерс, Дж. — «3D-печать: практическое руководство» (2020).
  5. Официальная документация слайсеров Cura и PrusaSlicer.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →