STLViewer

Чому існує 3MF

STL допоміг зробити 3D-друк масовим, але майже не зберігає контекст: у ньому немає явних одиниць виміру, матеріалів, текстур, структури збірки чи виробничих метаданих. До того ж геометрія зберігається як набір не пов'язаних між собою трикутників, тому помилки експорту та відновлення сітки стали звичною частиною процесу.

Консорціум 3MF був створений у 2013 році — спочатку з ініціативи Microsoft, за підтримки Autodesk, HP, Materialise, Stratasys, 3D Systems, Siemens, Dassault Systemes і PTC — щоб замінити цей підхід відкритим, безроялтійним стандартом, спеціально створеним для адитивного виробництва. У 2025 році 3MF було стандартизовано як ISO/IEC 25422:2025, тобто офіційно визнано міжнародним форматом обміну даними для 3D-виробництва.

Контейнер: ZIP і XML

Файл .3mf — це не один документ. Це стандартний ZIP-архів, що відповідає Open Packaging Conventions (OPC), тому самому формату пакування, який використовують .docx і .xlsx. Якщо перейменувати .3mf на .zip, його вміст можна відкрити будь-яким архіватором.

Типовий вміст включає:

  • [Content_Types].xml — маніфест, який пояснює програмі, як інтерпретувати частини пакета
  • _rels/.rels — файл зв'язків, що вказує парсеру на головну модель
  • 3D/3dmodel.model — основний XML-документ із геометрією, ресурсами, метаданими та інструкціями побудови
  • Metadata/ — необов'язкові мініатюри, print ticket-и та дані проєкту, специфічні для слайсера
  • Вбудовані текстури — необов'язкові файли PNG або JPEG, на які посилаються розширення матеріалів

На перший погляд XML може здаватися важчим за бінарний STL, але ZIP-стиснення дуже добре працює з повторюваними числовими даними. На практиці стиснений 3MF часто менший за еквівалентний STL, хоча містить значно більше інформації.

Індексована сітка замість «супу з трикутників»

STL записує кожен трикутник, явно дублюючи координати всіх трьох вершин. Сусідні трикутники не мають спільних записів вершин, тому одна й та сама точка може зберігатися багато разів. Це збільшує розмір файла й підвищує ризик дрібних розбіжностей з плаваючою комою між сусідніми трикутниками.

3MF використовує індексовану трикутну сітку. Вершина визначається один раз у спільному списку, а трикутники посилаються на неї за цілим індексом. Така структура зменшує дублювання й підтримує узгоджену топологію сітки. Формат спроєктований навколо герметичної manifold-геометрії, тому сумісні експортери уникають багатьох проблем зі зламаними сітками, типовими для STL.

Це більше, ніж просто геометрія

Головний файл 3dmodel.model має структуровану організацію, а не плоский набір даних. На верхньому рівні модель 3MF зазвичай містить:

  • <metadata> з даними про автора та застосунок
  • <resources> з повторно використовуваними об'єктами, сітками, компонентами, матеріалами, текстурами та іншими визначеннями
  • <build> з фактичними екземплярами, розміщеними на платформі друку

Це розділення важливе. Модель може описати один об'єкт лише один раз, а потім багаторазово розмістити його в секції build, застосовуючи трансформації положення, обертання чи масштабу. Завдяки цьому повторювані деталі та багатокомпонентні макети набагато ефективніші, ніж дублювання сирих трикутних даних.

3MF також підтримує компонентні збірки, тому один файл може описувати багатодетальну модель без поділу на окремі експорти.

Одиниці, кольори, матеріали й текстури

На відміну від STL, 3MF зберігає одиницю виміру прямо у файлі, наприклад millimeter або inch. Це прибирає класичну проблему, коли модель імпортується в неправильному масштабі.

Залежно від використаних розширень 3MF також може містити:

  • Базові матеріали з визначеннями кольорів sRGB
  • Призначення властивостей на трикутник або вершину
  • UV-текстури через вбудовані файли PNG або JPEG
  • Опис багатоматеріальних і композитних матеріалів
  • Поверхневі дані у стилі PBR, як-от шорсткість, металічність і напівпрозорість

Саме тому слайсери дедалі частіше віддають перевагу 3MF як формату проєкту: він зберігає не тільки модель, а й значну частину наміру друку.

Екосистема розширень

Базова специфікація 3MF навмисно лишається компактною, а ширші можливості додаються через розширення з окремими просторами імен, які старіші парсери можуть безпечно ігнорувати. Найважливіші з них:

  • Materials and Properties — кольори, текстури та багатші описи матеріалів
  • Beam Lattice — легке подання ґратчастих і стрижневих структур, які як звичайні трикутні сітки були б величезними
  • Slice — попередньо обчислені контури шарів для виробничих сценаріїв
  • Production — ідентифікатори та метадані для багатокомпонентних виробничих процесів
  • Secure Content — шифрування пакета для захищених виробничих даних

Така модель розширень дає формату змогу розвиватися, не ламаючи прості переглядачі, яким потрібна лише сітка.

Підтримка інструментами

Сучасні слайсери, зокрема Bambu Studio, PrusaSlicer, Cura, OrcaSlicer та IdeaMaker, підтримують 3MF. Багато з них використовують його не лише для геометрії, а й для налаштувань проєкту, розкладки на столі, модифікаторів і профілів друку.

Підтримка з боку CAD також помітно покращилася. Fusion 360, SolidWorks, Autodesk Inventor та інші інструменти проєктування можуть експортувати 3MF, а бібліотеки на кшталт lib3mf спрощують програмне читання й створення цього формату.

Перегляд 3MF у STLViewer

STLViewer зосереджується на сітці всередині пакета 3MF і рендерить її як звичайну 3D-модель. Геометрія відображається; специфічні для слайсера налаштування, підтримки та інші виробничі метадані зазвичай ігноруються.

Тому STLViewer зручний, коли потрібно швидко переглянути форму, поділитися моделлю посиланням або перевірити, що файл .3mf справді містить очікувану геометрію, не відкриваючи повний проєкт у слайсері.

Дивіться також