STL против 3MF для многоцветной печати
Скачали красивую модель, а на печати она вышла одноцветной серой болванкой? Часто виноват сам формат файла. STL физически не умеет хранить цвет — в нём есть только треугольники. 3MF умеет почти всё: цвета, материалы, отдельные детали и даже единицы измерения. Разберём, почему для многоцветной FDM-печати 3MF — не «модный», а единственно рабочий формат, и почему мультицветную сборку стоит хранить именно в нём.
Содержание
- STL хранит только геометрию — ни цвета, ни материалов, ни единиц. Чтобы передать мультицвет, пришлось бы делать по отдельному STL на каждый цвет.
- 3MF — это ZIP-контейнер (OPC), в который упакованы цвета, материалы, несколько независимых тел и явные единицы измерения.
- Мультицвет отдают в 3MF: каждая деталь едет со своим цветом филамента через basematerials, а мультицвет в одном теле — через per-triangle атрибут pid/p1.
- 3MF сам требует манифолда — поэтому watertight-меш это не опция, а условие существования корректного файла.
- По разным оценкам 3MF обычно на 30–60% компактнее эквивалентного бинарного STL (вторичные источники, не пункт спецификации).
STL: только треугольники — и всё
STL — самый старый и универсальный формат FDM-печати. Он хранит поверхность модели как «суп из треугольников»: список граней, у каждой три вершины и нормаль. И на этом всё. В STL физически негде записать цвет, материал, единицы измерения, метаданные или несколько отдельных тел — стандарт этого просто не предусматривает.
Из-за этого многоцветную деталь в один STL не упаковать. Классический обход — экспортировать по STL на каждый цвет и вручную совмещать их в слайсере по общему нулю координат. Работает, но хрупко: сдвинулся ноль — детали разъехались.
Отдельная застарелая боль STL — единицы. Формат не пишет, миллиметры это или дюймы, поэтому одна и та же модель то приезжает в 25,4 раза больше, то во столько же раз меньше. 3MF эту путаницу закрывает, потому что единицы в нём заданы явно.
- цвет и назначенные материалы — нет
- единицы измерения (мм/дюймы) — нет
- несколько тел в одной сцене — нет
- метаданные (автор, лицензия) — нет
3MF: не файл, а контейнер
3MF (3D Manufacturing Format) устроен принципиально иначе. Это не «один файл с треугольниками», а OPC-контейнер — по сути ZIP-архив с XML-частями внутри. Спецификация прямо требует, чтобы это был ZIP. Если распаковать .3mf как обычный архив, вы физически увидите: [Content_Types].xml, папку _rels с файлом .rels и главную часть 3D/3dmodel.model — это и есть минимальный скелет любого 3MF.
В этот контейнер помещается всё, чего не хватало STL: цвета и материалы, несколько независимых тел в одной сцене, метаданные и явные единицы измерения. Один файл — вся сборка целиком.
Приятный бонус: по разным оценкам 3MF обычно на 30–60% компактнее эквивалентного бинарного STL — за счёт ZIP-сжатия и более экономной модели данных. Это вторичные данные, а не пункт спецификации, но на практике файл почти всегда легче.
| Что несёт файл | STL | 3MF |
|---|---|---|
| Геометрия (треугольники) | да | да |
| Цвет и материалы | нет | да |
| Единицы измерения | нет | да, явно |
| Несколько тел в сцене | нет | да |
| Метаданные | нет | да |
| Контейнер | плоский файл | ZIP (OPC) |
Почему для мультицвета берут 3MF
Когда модель режут по цветовым зонам и добавляют snap-fit замки, на выходе получается не одна деталь, а сборка из нескольких тел — каждое под свой филамент. Донести до слайсера «какая деталь каким цветом печатается» умеет только 3MF.
Каждая деталь уезжает в 3MF отдельным объектом со своим цветом филамента: цвет прописан через блок basematerials и displaycolor в формате #RRGGBBAA. Слайсер (Bambu Studio, PrusaSlicer, Cura) открывает готовую сборку, где цвета уже назначены — не нужно вручную красить каждое тело.
Второй режим — мультицвет внутри одного тела. Здесь цвет задаётся не на деталь, а на каждый треугольник через атрибут pid/p1. Так один объект печатается несколькими цветами сменой филамента, без физической разрезки — подробнее в статье про мультицвет без AMS на одном экструдере.
Два пути к многоцвету — и оба живут в 3MF
Многоцветную модель получают двумя способами, и 3MF поддерживает оба.
Первый — разрезать модель на детали по цветовым зонам, каждую напечатать своим филаментом и защёлкнуть snap-fit замками. Цвет получается физической сборкой, без AMS и без покраски. Как именно проходит рез — в статье как разрезать модель на цветные детали.
Второй — оставить одно тело и красить его сменой филамента по слоям или по треугольникам. Разница между «сменой по слою» и «резкой на детали» разобрана отдельно: смена филамента по слою против деталей. В обоих случаях носителем цвета выступает 3MF, а не STL.
Ловушка экспорта: почему цвет теряется молча
Казалось бы, экспорт 3MF есть в любой mesh-библиотеке — берите и пользуйтесь. Но здесь спрятана тихая ловушка.
Популярные библиотеки для 3D-моделей при экспорте в 3MF нередко объявляют в файле блок материалов, но сами цвета деталей в него не записывают. Файл формально правильный и спокойно открывается — но все детали приезжают серыми: цвет теряется молча, без единой ошибки. Заметите, только когда откроете сборку в слайсере и не поймёте, куда делись цвета.
Поэтому после экспорта всегда открывайте 3MF в слайсере и проверяйте, что у каждой детали свой цвет. В редакторе BunnySplit, который мы разрабатываем, запись 3MF мы делаем своим кодом — чтобы назначенный цвет каждой детали доезжал до слайсера, а не «выпадал» по дороге.
Золотой мостик: 3MF сам требует watertight
И вот главное, что связывает формат с печатной готовностью. Стандарт 3MF не принимает любой «суп из треугольников». Для объектов типа model он требует манифолдности: каждое ребро граничит ровно с одним другим треугольником, ориентация согласована, нормали смотрят наружу. Иначе это просто не валидный 3MF-объект.
Значит проверка на цельный объём, которая бракует дырявые и самопересекающиеся меши, — не перестраховка, а прямое требование формата. Корректный 3MF-объект по стандарту — это «watertight + manifold».
Что такое герметичный меш, какие бывают дефекты и как их чинят — в статье что такое watertight-меш и почему без него не печатается.
На чём основаны цифры
Соединения считают не «на глаз». Зазор замка складывается из посадки (по умолчанию 0.30 мм на сторону) и компенсации усадки материала — PLA 0.3%, PETG 0.5%, ABS 0.7% — а прогиб защёлки закладывают с запасом не меньше двукратного по пределу деформации пластика (PLA около 4%, PETG около 7%). Геометрия консольных защёлок следует инженерному канону snap-fit Bayer/Covestro «Snap-Fit Joints for Plastics».
Числа — из инженерных справочников по FDM; величины snap-fit — по Bayer/Covestro. Материал подготовила редакция BunnySplit.
Частые вопросы
Чем 3MF лучше STL для многоцветной печати?
STL хранит только геометрию — треугольники, и всё. В нём негде записать цвет, материал или несколько отдельных деталей. 3MF везёт всё это в одном ZIP-контейнере: каждая деталь со своим цветом филамента, единицы измерения заданы явно, а слайсер открывает готовую сборку с уже назначенными цветами.
Почему в STL нет цвета?
Так устроен формат: STL описывает поверхность как список треугольников (вершины плюс нормаль) и не предусматривает полей под цвет, материал или единицы. Это не баг, а изначальная простота формата — он создавался только под форму. Для цвета нужен контейнер вроде 3MF.
Можно ли сделать многоцветную печать из STL?
Косвенно — да, но неудобно: придётся экспортировать по отдельному STL на каждый цвет и вручную совмещать их в слайсере по общему нулю координат. Это хрупко. 3MF решает задачу в один файл: несколько тел, у каждого свой цвет, ничего не разъезжается.
3MF действительно меньше STL по размеру?
По разным оценкам 3MF обычно на 30–60% компактнее эквивалентного бинарного STL — за счёт ZIP-сжатия и более экономной структуры данных. Это практическое наблюдение из вторичных источников, а не пункт спецификации, но на деле файл почти всегда легче.
Какой формат открывать в Bambu Studio или PrusaSlicer для цвета?
3MF. Именно он передаёт слайсеру и геометрию, и назначение цветов: каждая деталь приходит со своим филаментом (basematerials), а мультицвет в одном теле — через атрибуты на треугольниках. STL цвета не донесёт — детали откроются серыми.
Нужна цветная печать без возни?
На BunnySplit мастера печатают на заказ: подберут материал и цвет, сделают постобработку и покраску. Или купите готовое изделие в каталоге.
Печатаете на заказ? Продавайте свои модели и услуги на BunnySplit