Откуда взялся STL
Формат придумала компания 3D Systems в 1987 году для стереолитографии, отсюда и название. Задача была простая: передать машине форму детали без чертежа и истории построения. Машина светом отверждала смолу слой за слоем, и ей нужна была только оболочка. Поэтому файл хранит только оболочку, разбитую на плоские треугольники, а каждый треугольник записан тремя вершинами и нормалью.
Простота сделала STL общим языком 3D-печати: его понимают и слайсеры, и CAD-программы, и большинство сервисов, которые принимают заказы на печать. Расширение у таких файлов .stl, а внутри бывает один из двух вариантов записи: двоичный или текстовый.
Двоичный STL байт за байтом
Двоичный вариант устроен строго:
- 80 байт заголовка, в нём может быть любой текст, программы его пропускают;
- 4 байта с числом треугольников;
- по 50 байт на каждый треугольник: 12 чисел с плавающей точкой по 4 байта (нормаль и три вершины) и 2 байта атрибута, которые стандарт оставил пустыми.
Отсюда формула размера: 84 + 50 × N байт. Наша тестовая сфера из 9 024 треугольников весит ровно 451 284 байта. Числа записаны в порядке little-endian и держат около семи значащих цифр, для печати этого хватает с запасом.
Текстовый STL (ASCII) и чем он тяжелее
Текстовый файл начинается словом solid с именем модели. Каждый треугольник занимает 7 строк: facet normal, outer loop, три строки vertex, endloop и endfacet. В конце стоит endsolid.
| Двоичный | ASCII | |
|---|---|---|
| Байт на треугольник | 50 | около 280–300 |
| Можно прочитать глазами | нет | да |
| Модель на 100 000 граней | около 5 МБ | примерно 28–30 МБ |
Цифры для ASCII мы измерили сами: файл из другой программы занял 80 861 байт на 288 треугольников, наш экспорт сферы 2 723 685 байт. Кубик с целыми координатами весит всего 108 байт на грань, так что размер зависит от числа знаков после запятой.
Чего в STL нет: единиц, цвета, деталей сборки
Стандарт не хранит единицы измерения. Слайсеры по привычке читают числа как миллиметры, и деталь из дюймовой CAD внезапно оказывается в 25,4 раза меньше. Цвета в стандарте тоже нет, как и материалов, имён частей и точных кривых: окружность превращается в многоугольник.
Если всё это нужно, выбирайте другой формат. Проект для слайсера с единицами и цветом хранит 3MF, точную геометрию для CAD хранит STEP.
STL и соседние форматы: что выбрать
| Формат | Что хранит | Когда выбирать |
|---|---|---|
| STL | только треугольники | любой слайсер, сервис печати, обмен сеткой |
| 3MF | сетку, единицы, цвет, материалы | проект печати в современном слайсере |
| OBJ | многоугольники, текстурные координаты, материалы в .mtl | графика, текстурированные модели |
| STEP | точные поверхности, сборку, единицу длины | CAD, передача детали конструктору |
Сетку можно перевести из одного формата в другой кнопкой «Конвертировать». Точные поверхности из сетки обратно не восстановить: STEP, записанный из STL, состоит из тех же плоских треугольников.
Как проверить STL файл перед печатью
Откройте файл в окне выше и включите Инфо. Строка «Замкнутая сетка» должна показывать «Да»: тогда у модели нет дыр и слайсер поймёт, где у неё внутренность. Габариты сразу подскажут, не перепутаны ли дюймы и миллиметры. Число частей покажет, сколько отдельных оболочек лежит в файле: иногда в один STL сохраняют сразу несколько деталей.
Чтобы перевести ASCII в двоичный вид и обратно, нажмите Конвертировать и выберите нужный STL. Другие способы открыть файл описаны на странице чем открыть STL, а сам просмотр живёт на главной.
Вопросы и ответы
Что такое STL файл?
Это 3D-модель, записанная набором треугольников. Она описывает только форму поверхности, без единиц, цвета и истории построения.
Какая программа открывает файлы STL?
Слайсеры, CAD-программы и просмотрщики. Без установки STL открывается в браузере, на этом сайте.
Как узнать размер STL файла заранее?
Для двоичного STL умножьте число треугольников на 50 и добавьте 84 байта. Миллион треугольников даёт около 48 МБ.
Можно ли сохранить цвет в STL?
Стандарт этого не предусматривает. Для цветной модели сохраните её в 3MF или GLB.
Двоичный или ASCII: что выбрать?
Для печати двоичный: он в 5,6–6 раз меньше. ASCII пригодится, если хочется заглянуть в координаты обычным текстовым редактором.
Какое расширение у файла STL?
Файлы имеют расширение .stl. Внутри может быть двоичная запись или текст, программы различают их сами по первым байтам.