STLViewer

Dlaczego 3MF istnieje

STL pomógł spopularyzować druk 3D, ale przenosi bardzo mało kontekstu: nie zapisuje jawnie jednostek, materiałów, tekstur, struktury złożeń ani metadanych produkcyjnych. Geometrię zapisuje też jako zbiór niepowiązanych trójkątów, przez co błędy eksportu i naprawa siatki są częstym elementem pracy.

Konsorcjum 3MF powstało w 2013 roku — początkowo z inicjatywy Microsoftu, przy wsparciu firm takich jak Autodesk, HP, Materialise, Stratasys, 3D Systems, Siemens, Dassault Systemes i PTC — aby zastąpić ten workflow otwartym, bezpłatnym standardem zaprojektowanym pod produkcję addytywną. W 2025 roku 3MF został ustandaryzowany jako ISO/IEC 25422:2025, zyskując status międzynarodowego formatu wymiany danych dla wytwarzania 3D.

Kontener: ZIP i XML

Plik .3mf nie jest pojedynczym dokumentem. To standardowe archiwum ZIP zgodne z Open Packaging Conventions (OPC), czyli tym samym modelem pakowania, którego używają pliki .docx i .xlsx. Jeśli zmienisz rozszerzenie .3mf na .zip, możesz obejrzeć jego zawartość w zwykłym programie do archiwizacji.

Typowa zawartość obejmuje:

  • [Content_Types].xml — manifest mówiący programom, jak interpretować poszczególne części pakietu
  • _rels/.rels — plik relacji wskazujący parserowi główny model
  • 3D/3dmodel.model — główny dokument XML z geometrią, zasobami, metadanymi i instrukcjami budowy
  • Metadata/ — opcjonalne miniatury, print tickety i dane projektu zależne od slicera
  • Osadzone tekstury — opcjonalne pliki PNG lub JPEG używane przez rozszerzenia materiałów

Na pierwszy rzut oka XML może wydawać się cięższy niż binarny STL, ale kompresja ZIP bardzo dobrze radzi sobie z powtarzalnymi danymi liczbowymi. W praktyce skompresowany 3MF jest często mniejszy od równoważnego STL, a jednocześnie niesie znacznie więcej informacji.

Siatka indeksowana zamiast „zupy trójkątów”

STL zapisuje każdy trójkąt, jawnie podając współrzędne wszystkich trzech wierzchołków. Sąsiednie trójkąty nie współdzielą rekordów wierzchołków, więc ten sam punkt może być zapisany wielokrotnie. To zwiększa rozmiar pliku i ułatwia powstawanie drobnych rozbieżności zmiennoprzecinkowych między sąsiednimi trójkątami.

3MF używa indeksowanej siatki trójkątów. Wierzchołek jest definiowany raz we wspólnej liście, a trójkąty odwołują się do niego przez indeks całkowity. Taka struktura zmniejsza duplikację i utrzymuje spójną topologię siatki. Format został zaprojektowany wokół szczelnej, manifoldowej geometrii, więc zgodne eksportery eliminują wiele problemów z uszkodzonymi siatkami typowych dla STL.

To coś więcej niż sama geometria

Główny plik 3dmodel.model ma uporządkowaną strukturę, a nie płaską listę danych. Na najwyższym poziomie model 3MF zwykle zawiera:

  • <metadata> z informacjami o autorze i aplikacji
  • <resources> z obiektami wielokrotnego użytku, siatkami, komponentami, materiałami, teksturami i innymi definicjami
  • <build> z właściwymi instancjami umieszczonymi na płycie roboczej

Ten podział ma znaczenie. Model może zdefiniować jeden obiekt tylko raz, a potem umieścić go wielokrotnie w sekcji build, stosując transformacje pozycji, obrotu i skali. Dzięki temu powtarzalne części i układy wielu obiektów są znacznie wydajniejsze niż duplikowanie surowych danych trójkątów.

3MF obsługuje też złożenia oparte na komponentach, więc jeden plik może opisywać model wieloczęściowy bez rozbijania go na osobne eksporty.

Jednostki, kolory, materiały i tekstury

W przeciwieństwie do STL, 3MF zapisuje jednostkę miary bezpośrednio w pliku, na przykład millimeter albo inch. To eliminuje klasyczny problem importu modelu w złej skali.

W zależności od użytych rozszerzeń 3MF może też przechowywać:

  • Materiały bazowe z definicjami kolorów sRGB
  • Przypisania właściwości do trójkątów lub wierzchołków
  • Tekstury UV przez osadzone pliki PNG lub JPEG
  • Definicje wielu materiałów i materiałów kompozytowych
  • Dane powierzchniowe w stylu PBR, takie jak szorstkość, metaliczny wygląd czy przezroczystość

To jeden z powodów, dla których slicery coraz częściej preferują 3MF jako format projektu: może zachować zarówno model, jak i dużą część intencji druku.

Ekosystem rozszerzeń

Podstawowa specyfikacja 3MF pozostaje celowo niewielka, a bogatsze możliwości są dodawane przez rozszerzenia z własnymi przestrzeniami nazw, które starsze parsery mogą bezpiecznie pominąć. Najważniejsze z nich to:

  • Materials and Properties — kolory, tekstury i bogatsze definicje materiałów
  • Beam Lattice — lekki zapis struktur kratowych i prętowych, które jako zwykłe siatki trójkątów byłyby ogromne
  • Slice — wstępnie obliczone kontury warstw dla workflow produkcyjnych
  • Production — identyfikatory i metadane dla wieloczęściowych procesów wytwórczych
  • Secure Content — szyfrowanie pakietu dla chronionych danych produkcyjnych

Taki model rozszerzeń pozwala formatowi rozwijać się bez psucia prostych czytników, które potrzebują tylko siatki.

Wsparcie narzędzi

Nowoczesne slicery, takie jak Bambu Studio, PrusaSlicer, Cura, OrcaSlicer i IdeaMaker, obsługują 3MF. Wiele z nich używa go nie tylko do geometrii, ale także do ustawień projektu, układu na stole, modyfikatorów i profili druku.

Wsparcie po stronie CAD również wyraźnie się poprawiło. Fusion 360, SolidWorks, Autodesk Inventor i inne narzędzia projektowe potrafią eksportować 3MF, a biblioteki programistyczne takie jak lib3mf ułatwiają parsowanie i generowanie tego formatu.

Wyświetlanie 3MF w STLViewer

STLViewer koncentruje się na siatce zawartej w pakiecie 3MF i renderuje ją jak każdy inny model 3D. Geometria jest widoczna; ustawienia zależne od slicera, podpory i inne metadane produkcyjne są zazwyczaj ignorowane.

Dzięki temu STLViewer dobrze sprawdza się, gdy chcesz szybko obejrzeć sam kształt, udostępnić model linkiem albo sprawdzić, czy plik .3mf rzeczywiście zawiera oczekiwaną geometrię bez otwierania pełnego projektu slicera.

Zobacz też