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

STL-файл

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

История

Формат STL был разработан компанией 3D Systems в 1987 году для использования в технологии стереолитографии, которая была одной из первых коммерчески доступных технологий 3D-печати. Создателем формата считается Чарльз Халл, основатель 3D Systems и изобретатель стереолитографии. Изначально STL предназначался для передачи данных от САПР к стереолитографическим установкам, где лазерный луч засвечивал жидкий фотополимер, послойно формируя объект.

В 1990-е годы, с развитием других технологий аддитивного производства (FDM, SLS, SLA и других), STL стал де-факто стандартным форматом для 3D-печати. Его простота и открытость способствовали широкому распространению, несмотря на наличие более совершенных форматов (например, OBJ, AMF, 3MF). В 2009 году была опубликована спецификация формата, уточняющая его синтаксис и структуру.

Структура и формат

STL-файл представляет собой описание поверхности трёхмерного объекта с помощью треугольников (фасеток). Каждый треугольник задаётся координатами трёх своих вершин в трёхмерном пространстве (X, Y, Z) и вектором нормали, указывающим направление наружу от поверхности. Вектор нормали необходим для определения ориентации грани (лицевая или изнаночная сторона) и используется для корректного отображения и расчётов в программном обеспечении.

Существует два основных варианта формата:

  • ASCII-формат (текстовый): Человекочитаемый, но занимает значительно больше места (примерно в 5–6 раз больше, чем двоичный). Начинается со строки solid <имя>, содержит последовательность ключевых слов facet normal, outer loop, vertex, endloop, endfacet и заканчивается строкой endsolid <имя>. Используется для отладки и проверки файлов.
  • Двоичный формат (binary): Компактный и быстрый для обработки. Начинается с 80-байтового заголовка (обычно содержит имя модели, но может быть пустым), за которым следует 4-байтовое целое число без знака, указывающее количество треугольников. Далее идут 50-байтовые блоки для каждого треугольника: 12 байт на вектор нормали (3 числа с плавающей запятой по 4 байта), 36 байт на координаты трёх вершин (9 чисел с плавающей запятой по 4 байта) и 2 байта, которые обычно не используются (атрибуты).

Ограничения формата

  • Только геометрия: STL не хранит информацию о цвете, текстуре, материале, прозрачности, весе, имени детали или других свойствах. Это делает его непригодным для задач, где важна визуализация или физические характеристики.
  • Треугольная аппроксимация: Любая криволинейная поверхность представляется набором плоских треугольников. Чем больше треугольников, тем точнее аппроксимация, но тем больше размер файла. Это приводит к появлению «ступенчатости» на изогнутых поверхностях.
  • Замкнутость: Для корректной 3D-печати модель должна быть «водонепроницаемой» (герметичной), то есть все треугольники должны образовывать замкнутую оболочку без разрывов, дыр и пересечений. Нарушение этого правила (например, несовпадение рёбер треугольников) приводит к ошибкам при печати.
  • Отсутствие единиц измерения: В STL-файле не указываются единицы измерения (миллиметры, дюймы и т. д.). Интерпретация масштаба зависит от программного обеспечения и настроек слайсера (программы, преобразующей 3D-модель в инструкции для принтера).

Применение

3D-печать

Основная и наиболее массовая область применения STL-файлов — это 3D-печать. Практически все слайсеры (например, Cura, PrusaSlicer, Simplify3D, Slic3r) поддерживают импорт STL-файлов для последующей генерации G-кода. Пользователи загружают STL-модели на специализированные платформы (Thingiverse, MyMiniFactory, Cults3D и другие), делятся ими и скачивают для печати.

Системы автоматизированного проектирования (САПР)

Большинство современных САПР (SolidWorks, AutoCAD, Fusion 360, Blender, FreeCAD и другие) позволяют экспортировать трёхмерные модели в формат STL. При экспорте пользователь может задать точность аппроксимации (разрешение), что влияет на количество треугольников и качество модели. Экспорт в STL часто используется для передачи моделей из САПР в программы для 3D-печати или для визуализации.

Быстрое прототипирование и инжиниринг

STL-файлы используются в процессах быстрого прототипирования для создания физических прототипов деталей и изделий. В инженерных расчётах (например, метод конечных элементов) STL может применяться для создания сетки, хотя для этой цели чаще используются более специализированные форматы.

Компьютерная графика и анимация

Хотя STL не предназначен для хранения текстур и цветов, он может использоваться в некоторых программах для 3D-моделирования и анимации (например, Blender, 3ds Max) как простой формат для импорта/экспорта геометрии. Однако для полноценной работы с визуализацией обычно применяются более функциональные форматы (OBJ, FBX, COLLADA).

Обработка и исправление ошибок

STL-файлы, особенно созданные вручную или полученные из сложных САПР, часто содержат ошибки, которые делают их непригодными для 3D-печати. К распространённым проблемам относятся:

  • Незамкнутые оболочки: Наличие отверстий или разрывов в сетке.
  • Пересекающиеся грани: Треугольники, которые проходят друг через друга.
  • Несовпадающие нормали: Векторы нормали, направленные внутрь модели, а не наружу.
  • Вырожденные треугольники: Треугольники с нулевой площадью (например, когда все три вершины лежат на одной прямой).
  • Избыточные вершины: Дублирующиеся вершины, которые не соединены с соседними треугольниками.

Для исправления таких ошибок существуют специализированные программы и инструменты, встроенные в слайсеры и САПР:

  • Netfabb (Autodesk) — мощный инструмент для анализа и ремонта STL-файлов.
  • Meshmixer (Autodesk) — бесплатная программа для редактирования и ремонта сеток.
  • Blender — универсальный 3D-редактор с функциями для работы с сетками.
  • Curaслайсер, имеющий встроенный модуль для исправления некоторых ошибок.
  • PrusaSlicer — слайсер с функцией автоматического ремонта.

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

Несмотря на широкое распространение, STL имеет ряд недостатков, что привело к появлению более современных форматов:

  • OBJ — формат, поддерживающий хранение геометрии (полигоны), цветов, текстур и нормалей. Широко используется в компьютерной графике.
  • AMF (Additive Manufacturing File Format) — стандарт ASTM ISO/ASTM 52915, разработанный специально для аддитивного производства. Поддерживает цвета, материалы, текстуры, градиенты, а также более сложные геометрические примитивы (например, кривые).
  • 3MF (3D Manufacturing Format) — формат, разработанный консорциумом 3MF Consortium (Microsoft, HP, Autodesk, Stratasys и другие). Ориентирован на устранение недостатков STL: поддерживает цвета, материалы, метаданные, сжатие, а также обеспечивает целостность данных. Активно внедряется в Windows и программное обеспечение для 3D-печати.
  • STEP (ISO 10303) — стандартный формат для обмена данными между САПР, хранящий не только геометрию, но и параметрическую информацию, допуски, сборки и другие инженерные данные. Не используется непосредственно для 3D-печати, но может быть конвертирован в STL.

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

  • Название «STL» часто расшифровывают как «Standard Triangle Language» или «Standard Tessellation Language», хотя официально это аббревиатура от «stereolithography».
  • Формат STL является открытым и не защищён патентами, что способствовало его широкому распространению.
  • В двоичном формате STL последние 2 байта каждого треугольника зарезервированы для атрибутов, но в подавляющем большинстве случаев они не используются и заполняются нулями.
  • Для создания STL-файла можно использовать не только САПР, но и 3D-сканеры, которые преобразуют сканированные данные в сетку треугольников.
  • Существуют онлайн-сервисы и программы для конвертации STL-файлов в другие форматы (например, OBJ, 3MF, PLY) и обратно.

Источники

  • Спецификация формата STL (3D Systems, 1987, 2009).
  • ISO/ASTM 52915:2016 — Standard Specification for Additive Manufacturing File Format (AMF).
  • 3MF Consortium Specification.
  • Документация к программам Cura, PrusaSlicer, Netfabb, Blender.
  • Материалы сайтов All3DP, 3D Printing Industry, Wikipedia (англоязычная версия).

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

На главную BFOmetr →