Watertight и 3MF

STL против 3MF для многоцветной печати

Обновлено: июль 2026Проверил инженер редакции

Скачали красивую модель, а на печати она вышла одноцветной серой болванкой? Часто виноват сам формат файла. STL физически не умеет хранить цвет — в нём есть только треугольники. 3MF умеет почти всё: цвета, материалы, отдельные детали и даже единицы измерения. Разберём, почему для многоцветной FDM-печати 3MF — не «модный», а единственно рабочий формат, и почему мультицветную сборку стоит хранить именно в нём.

Содержание
  1. STL: только треугольники — и всё
  2. 3MF: не файл, а контейнер
  3. Почему для мультицвета берут 3MF
  4. Два пути к многоцвету — и оба живут в 3MF
  5. Ловушка экспорта: почему цвет теряется молча
  6. Золотой мостик: 3MF сам требует watertight
  7. Частые вопросы
Коротко
  • 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-сжатия и более экономной модели данных. Это вторичные данные, а не пункт спецификации, но на практике файл почти всегда легче.

Что несёт файлSTL3MF
Геометрия (треугольники)дада
Цвет и материалынетда
Единицы измерениянетда, явно
Несколько тел в сцененетда
Метаданныенетда
Контейнерплоский файлZIP (OPC)

Почему для мультицвета берут 3MF

Когда модель режут по цветовым зонам и добавляют snap-fit замки, на выходе получается не одна деталь, а сборка из нескольких тел — каждое под свой филамент. Донести до слайсера «какая деталь каким цветом печатается» умеет только 3MF.

Каждая деталь уезжает в 3MF отдельным объектом со своим цветом филамента: цвет прописан через блок basematerials и displaycolor в формате #RRGGBBAA. Слайсер (Bambu Studio, PrusaSlicer, Cura) открывает готовую сборку, где цвета уже назначены — не нужно вручную красить каждое тело.

Второй режим — мультицвет внутри одного тела. Здесь цвет задаётся не на деталь, а на каждый треугольник через атрибут pid/p1. Так один объект печатается несколькими цветами сменой филамента, без физической разрезки — подробнее в статье про мультицвет без AMS на одном экструдере.

3MF доносит до слайсера не только форму, но и «какая деталь каким филаментом» — этого STL сделать не может в принципе.

Два пути к многоцвету — и оба живут в 3MF

Многоцветную модель получают двумя способами, и 3MF поддерживает оба.

Первый — разрезать модель на детали по цветовым зонам, каждую напечатать своим филаментом и защёлкнуть snap-fit замками. Цвет получается физической сборкой, без AMS и без покраски. Как именно проходит рез — в статье как разрезать модель на цветные детали.

Второй — оставить одно тело и красить его сменой филамента по слоям или по треугольникам. Разница между «сменой по слою» и «резкой на детали» разобрана отдельно: смена филамента по слою против деталей. В обоих случаях носителем цвета выступает 3MF, а не STL.

Ловушка экспорта: почему цвет теряется молча

Казалось бы, экспорт 3MF есть в любой mesh-библиотеке — берите и пользуйтесь. Но здесь спрятана тихая ловушка.

Популярные библиотеки для 3D-моделей при экспорте в 3MF нередко объявляют в файле блок материалов, но сами цвета деталей в него не записывают. Файл формально правильный и спокойно открывается — но все детали приезжают серыми: цвет теряется молча, без единой ошибки. Заметите, только когда откроете сборку в слайсере и не поймёте, куда делись цвета.

Поэтому после экспорта всегда открывайте 3MF в слайсере и проверяйте, что у каждой детали свой цвет. В редакторе BunnySplit, который мы разрабатываем, запись 3MF мы делаем своим кодом — чтобы назначенный цвет каждой детали доезжал до слайсера, а не «выпадал» по дороге.

Стандартный экспорт популярных библиотек отдаёт серые детали — цвет теряется без ошибки. Проверяйте цвета в слайсере до печати, а не после.

Золотой мостик: 3MF сам требует watertight

И вот главное, что связывает формат с печатной готовностью. Стандарт 3MF не принимает любой «суп из треугольников». Для объектов типа model он требует манифолдности: каждое ребро граничит ровно с одним другим треугольником, ориентация согласована, нормали смотрят наружу. Иначе это просто не валидный 3MF-объект.

Значит проверка на цельный объём, которая бракует дырявые и самопересекающиеся меши, — не перестраховка, а прямое требование формата. Корректный 3MF-объект по стандарту — это «watertight + manifold».

Что такое герметичный меш, какие бывают дефекты и как их чинят — в статье что такое watertight-меш и почему без него не печатается.

3MF по стандарту требует манифолда — поэтому 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