Kris

3MF против STL: гид по граблям — почему опытные печатники советуют отказаться от STL?

3D-печать3MFSTLСлайсерыКонвертация форматов

На прошлой неделе в нашем чате новичок спросил: «Почему модель, скачанная с MakerWorld, не открывается в Cura и сыпет ошибками?» На самом деле за этим стоит неизбежный выбор в мире 3D-печати: использовать ли древний STL или современный 3MF?

Если вы всё ещё ломаете голову, в каком формате сохранять модели, вот наше практическое руководство по граблям.

Сравнение характеристикТрадиционный STLСовременный 3MF
История появления1987 год, неупорядоченный список треугольных граней2015 год, сжатый контейнер на основе XML
Физические единицыБез единиц (часто приводит к ошибкам масштаба в десятки раз)Чётко указаны миллиметры, сантиметры или дюймы
Многоцветность и материалыЧистая геометрия, стандарт не поддерживает цветНативная поддержка многоцветных сопел, параметров и материалов
Целостность сеткиЛегко появляются дыры, пересечения и инвертированные нормалиСпецификация требует замкнутости, максимально дружелюбен к слайсерам
Размер файлаЛегко достигает десятков и сотен мегабайтВстроенное ZIP-сжатие, обычно на 50–80% меньше

Место преступления: как традиционный STL разрушает вашу печать?

Принцип работы STL до безобразия прост: модель обтягивается бесчисленным множеством крошечных треугольников. Это приводит к нескольким «повседневным катастрофам», от которых подскакивает давление:

  1. Внезапное уменьшение в 10 или 25,4 раза: внутри STL-файла не хранятся «единицы измерения» — только голые цифры. Если вы нарисовали куб 10x10 в SolidWorks и экспортировали в дюймах, в файле запишется просто «10». Слайсер (например, PrusaSlicer или Cura) по умолчанию читает миллиметры, и ваша модель автоматически уменьшится в 25,4 раза. Скорая помощь: вручную задайте масштаб 2540% (дюймы в мм) или 1000% (см в мм) в настройках слайсера.
  2. Детали разлетаются по всему столу: когда вы делаете меха с подвижными суставами или многоцветной окраской, после экспорта в STL либо все детали намертво сплавляются в одну кучу и их не разделить по цветам, либо вы тупите над десятками файлов с хаотичными именами. Всё потому, что STL не поддерживает дерево сцены (Scene Graph) — информация о сборке теряется полностью.
  3. Ошибки слайсинга и дыры: из-за погрешностей чисел с плавающей запятой между треугольниками STL часто возникают микроскопические щели. Вы с нетерпением жмёте «Слайсинг», а софт выдаёт «Обнаружены неманifoldные рёбра» или, что хуже, — после печати обнаруживается, что на поверхности не хватает куска.

Дискретизация треугольной сетки STL и аппроксимация поверхности полигонами

Почему 3MF так хорош? По сути, это ZIP-архив

3MF (3D Manufacturing Format) — это современный стандарт, разработанный совместно Microsoft, Bambu Lab, Prusa и другими гигантами. Файл .3mf — это, по сути, ZIP-архив с изменённым расширением. Внутри аккуратно уложены XML-сетки геометрии, текстуры материалов и даже позиции на столе и параметры слайсинга.

Он изначально содержит единицы измерения, поддерживает многоцветность, а спецификация требует, чтобы модель была замкнутой и manifold. Это полностью лечит базовые болезни STL. Более того, благодаря современным алгоритмам сжатия та же модель в 3MF занимает вдвое меньше места, а то и меньше.

Многочастная сборка 3MF и иерархия многоцветных слоёв

Гик-трюк: как спасти Bambu 3MF, который не открывается в Cura?

Вернёмся к вопросу из начала статьи. Многие 3MF-модели из сообщества — это «рабочие файлы», сохранённые в Bambu Studio или OrcaSlicer. Внутри не только модель, но и фирменные технологические узлы Bambu (например, приватные конфигурационные файлы .bbl). А Cura честно пытается разобрать файл по универсальному стандарту Microsoft и, столкнувшись с незнакомыми приватными расширениями, просто вылетает с ошибкой.

Метод грубой силы:

  1. Переименуйте скачанный .3mf в .zip.
  2. Распакуйте архив и найдите папку Metadata.
  3. Удалите XML-файлы с приватными настройками слайсера (обычно достаточно оставить корневой 3D/3dmodel.model с основной сеткой и превью-изображение в корне).
  4. Выделите все оставшиеся файлы, упакуйте их обратно в ZIP и переименуйте расширение обратно в .3mf. Вуаля — у вас чистая геометрическая 3MF, которую прочитает любой слайсер.

Если возиться с переименованием и распаковкой вручную лень, проще всего воспользоваться браузерным инструментом Any3D для конвертации 3MF в STL. Файлы не загружаются на сервер, конвертация происходит локально за секунды, а заодно вычищаются все «токсичные» для совместимости элементы.

Ответы на ключевые вопросы из практики

Если 3MF такой хороший, почему так много старых моделей в STL?

Историческая инерция. Многие старые ЧПУ-станки и ранние 3D-программы вообще не имеют импорта 3MF. STL, хоть и громоздкий, но как текстовый файл (txt) — открывается практически везде. Если нужно «освежить» старую модель, используйте инструмент Any3D для конвертации STL в 3MF, чтобы обернуть её в современный контейнер.

Сохранится ли многоцветная окраска после конвертации 3MF в STL?

Однозначно нет. Стандартный STL — это голый «глиняный болван», который даже нормали вершин хранит крайне неэффективно, не говоря уже о цвете. Если нужно передать цветную сетку между программами, используйте OBJ с MTL-текстурами, VRML или даже GLB.

Как быстро проверить сетку на повреждения?

Перед слайсингом можно открыть модель в онлайн-просмотрщике 3D Any3D в режиме каркаса и пробежаться глазами по углам на предмет чёрных линий. Или сразу загрузить в анализатор моделей Any3D, чтобы проверить габариты и статус manifold — это сэкономит часы на брак и электроэнергию.

Я печатаю по мелочи для себя — нужно ли мне переходить на 3MF?

Если ваша модель — это простой куб, подставка для ручек и без разделения по цветам, STL вполне достаточно. Но как только вы начинаете работать со сборными моделями, многоцветной печатью или файлами больше 50 МБ, выработайте привычку сохранять в 3MF — ваш жёсткий диск и слайсер скажут спасибо.

Поддержите нас