UltKit

STL, OBJ ali 3MF: kateri format 3D datoteke izbrati?

Uporabite STL za enobarvni tisk, ki ga morate le razrezati, OBJ, kadar ima model teksture za upodabljanje ali igralni pogon, in 3MF, kadar ga vaš rezalnik podpira in želite, da se enote, barve in več delov ohranijo na poti. Format določa, kateri metapodatki potujejo skupaj z mrežo; nikoli pa ne določa, ali je sama mreža brezhibna.

Jonas WeberJonas WeberUrednik spletne zmogljivosti
Posodobljeno 12 min branja
Namizni 3D tiskalnik v prozornem ohišju na beli mizi, ob njem prenosnik s 3D modelom in pisani natisnjeni deli, med njimi reliefni zemljevid in rdeč zobnik

STL: seznam trikotnikov in nič drugega

STL so leta 1987 zasnovali za prve stereolitografske naprave podjetja 3D Systems in to se pozna na zasnovi. Datoteka je preprost seznam trikotnikov, vsak je opisan z normalo ploskve in tremi oglišči. Skupne tabele oglišč ni, zato se oglišče, ki se dotika šestih trikotnikov, zapiše šestkrat. Polja za enoto prav tako ni: koordinata 25 lahko pomeni milimetre, palce ali metre, skoraj vsi slicerji pa predvidevajo milimetre. Barva, tekstura in imena delov v osnovnem formatu nimajo mesta, zato ga še vedno berejo vsi slicerji, CAD-programi in tiskarske storitve.

STL obstaja v dveh zapisih. ASCII STL vse izpiše kot besedilo, z vrsticami, kot so facet normal, outer loop in vertex 12.5 0 3.2, zato ga lahko odprete v urejevalniku besedila in preberete števila. Binarni STL se začne z 80-bajtno glavo in 4-bajtnim številom trikotnikov, nato vsak trikotnik shrani kot dvanajst 4-bajtnih števil s plavajočo vejico in 2-bajtno polje atributov: natanko 50 bajtov na trikotnik. Zato je velikost lahko predvideti. Model z milijon trikotniki ima v binarni obliki okoli 50 MB, ASCII različica iste mreže pa je običajno štiri- do šestkrat večja, ker vsaka števka postane znak.

Preprostost je hkrati prednost in past. STL ne pove, ali je bil mišljen kot en del ali trije, ali je bil izvožen v palcih ali ali trikotniki res obdajajo polno telo. Slicer to ugiba iz surovih koordinat, in ko zgreši, dobite del, ki je 25,4-krat premajhen, ali manjkajočo steno. Za enobarven del, ki ste ga sami oblikovali in izvozili v milimetrih, nič od tega ni pomembno, STL pa ostaja format, ki ga je najmanj verjetno zavrnjen.

OBJ: poligoni, UV in spremna datoteka z materiali

OBJ izvira iz podjetja Wavefront Technologies, katerega programska oprema Advanced Visualizer ga je uporabljala konec osemdesetih let, v devetdesetih pa se je razširil kot besedilni format, ki ga lahko izmenjuje skoraj vsak 3D-program. Za razliko od STL hrani seznam oglišč in ploskve gradi iz indeksov, zato je skupno oglišče shranjeno enkrat, ploskve pa so lahko trikotniki, štirikotniki ali večji poligoni. Vrstice, ki se začnejo z v, vsebujejo položaje, vt koordinate tekstur (UV), vn normale in f ploskve. Skupine (g) in objekti (o) poimenujejo dele, zato OBJ prestane izmenjavo z Blenderjem, Mayo ali ZBrushem z ohranjeno strukturo.

Videz je zunaj datoteke .obj. Vrstica mtllib navede spremljevalno datoteko .mtl, vrstice usemtl pa ploskvam dodelijo materiale. Datoteka .mtl hrani barve, kot je Kd (difuzna), in kaže na slike tekstur z vnosi, kot je map_Kd wood.png. Teksturiran OBJ so zato vsaj tri datoteke: geometrija, knjižnica materialov in ena ali več slik, vse povezane z relativno potjo. Če pošljete samo .obj, prejemnik vidi sivi model. Ta ločitev je uporabna v igričarskih in VFX-delotokih, kjer umetniki zamenjajo teksture, ne da bi se dotaknili geometrije, hkrati pa je najpogostejši razlog, da preneseni model izgleda napačno.

OBJ ima enako slepo pego pri merilu kot STL: hrani gola števila brez enote. Večina orodij za modeliranje zapiše metre ali centimetre, slicerji pa berejo milimetre, zato lahko OBJ iz trgovine z igričarskimi sredstvi prispe z napako 10- ali 1.000-krat. Za tisk OBJ ne doda ničesar, kar bi slicer uporabil, razen barve po oglišču v nekaterih orodjih, zato je pri tiskanju umetniškega modela običajno najpreprosteje obdržati teksture za upodabljanje in slicerju poslati čisto mrežo. V nasprotno smer je pretvorba STL v OBJ najkrajša pot iz tiskalnega modela v delotok upodabljanja ali iger.

3MF: paket ZIP, narejen za tiskanje

3MF je leta 2015 objavil 3MF Consortium, skupina, ki jo je ustanovil Microsoft skupaj s podjetji iz industrije tiska in CAD. Datoteka .3mf je arhiv ZIP, isti vsebnik, kot je opisan v članku ZIP proti RAR proti 7z. Če jo preimenujete v .zip, najdete datoteko XML 3D/3dmodel.model z mrežo, datoteko vrst vsebine, datoteke odnosov ter pogosto sličice in konfiguracijo slicerja. Vsak model navede svojo enoto (mikron, milimeter, centimeter, palec, čevelj ali meter), zato težave z merilom, ki pesti STL in OBJ, preprosto ni. Barve, osnovni materiali, več objektov in njihova razporeditev na tiskalni plošči so del specifikacije.

Specifikacija zahteva tudi, da so mreže mnogoterne in dosledno usmerjene: vsak rob si deli natanko dva trikotnika, vsi pa so obrnjeni navzven. Izvozniki, ki upoštevajo pravila, ne morejo zapisati odprte geometrije s samoprekrivanjem, ki jo STL brez težav prenaša. Podpora med sodobnimi orodji je široka. PrusaSlicer, Bambu Studio, OrcaSlicer in UltiMaker Cura berejo 3MF, PrusaSlicer in Bambu Studio shranita celoten projekt kot .3mf z nastavitvami tiska in poslikanimi barvami, Microsoftova aplikacija 3D Builder v sistemu Windows pa ga odpre neposredno. Šibka točka so starejša strojna programska oprema, portali tiskarskih farm in CAD-uvozniki, ki še vedno pričakujejo STL; za te pretvorite 3MF v STL in sprijaznite se, da dodatki ostanejo za vami.

from ↓ · to →UnitsColorTexturesVeč delovNastavitve tiskaPravilo mnogoternosti
STL– STL to Units: no– STL to Color: no– STL to Textures: no– STL to Več delov: no– STL to Nastavitve tiska: no– STL to Pravilo mnogoternosti: no
OBJ– OBJ to Units: noOBJ to Color: yesOBJ to Textures: yesOBJ to Več delov: yes– OBJ to Nastavitve tiska: no– OBJ to Pravilo mnogoternosti: no
3MF3MF to Units: yes3MF to Color: yes3MF to Textures: yes3MF to Več delov: yes3MF to Nastavitve tiska: yes3MF to Pravilo mnogoternosti: yes
supported not offeredVrstice so formati, stolpci pa to, kar lahko datoteka sama nosi. Barve in teksture v OBJ potrebujejo ločeno datoteko .mtl in slike; teksture v 3MF izhajajo iz razširitve za materiale. Nekatera orodja zapišejo barvo v neuporabljene bajte binarnega STL, vendar tega noben standard ne pokriva.
Vrsta 3D-tiskalnikov z odprtim ogrodjem na lesenih mizah, najbližji ima na tiskalni plošči več modrih valjastih delov
Fotografija: Unsplash

Izbira formata glede na nalogo

Pravi format je odvisen od tega, kam gre datoteka naprej, ne od tega, kateri je novejši. Če je naslednja postaja slicer in je del enobarven, je STL povsem v redu in ga še vedno razumejo vsi forumi, knjižnice modelov in tiskarske storitve. Če je naslednja postaja program za upodabljanje, igralni pogon ali modelirno orodje drugega umetnika, OBJ ohrani UV-je, normale in poimenovane skupine, ki jih STL zavrže, njegova besedilna oblika pa omogoča preprost pregled težav.

3MF upraviči svoje mesto, ko datoteka nosi več kot geometrijo. Večbarvni tisk, poslikan v Bambu Studiu, plošča z dvanajstimi deli, razporejenimi za eno opravilo, del, oblikovan v palcih, ali projekt, ki ga želite znova odpreti z isto višino plasti in zapolnitvijo, vse to zahteva 3MF, ker noben drug format tukaj ne more hraniti teh podatkov. Če datoteko pošiljate na več destinacij, obdržite najbogatejšo različico kot glavno kopijo in iz nje izvozite preprostejše s pretvornikom 3D modelov, namesto da bi pretvorbe verižili.

STL za preproste tiske

En del, ena barva, izvožen v milimetrih. Odpre se v vsakem slicerju, uvoznem pogovornem oknu CAD in obrazcu za nalaganje tiskarske storitve.

OBJ za teksturirane modele

UV-ji, normale in poimenovane skupine za Blender, Mayo, Unity ali Unreal. Datoteko .mtl in slike tekstur priložite zraven.

3MF za sodobne slicerje

Prave enote, barve, več objektov in nastavitve tiska v enem ZIP-u. Izvorni projektni format programov PrusaSlicer in Bambu Studio.

Pet načinov, kako gre 3D datoteka narobe

Večina spodletelih tiskov in pokvarjenih uvozov, ki jih pripisujejo formatu, so v resnici težave v mreži ali v tem, kar je prejemni program predpostavil o njej. STL je najbolj izpostavljen, ker ne nosi metapodatkov za odkrivanje napak; OBJ ima enaki težavi z merilom in manjkajočimi datotekami; 3MF se jim večinoma izogne že po zasnovi, čeprav lahko površen izvoznik še vedno zapiše slabo mrežo. Odprite spodnje vrstice, da vidite, kako se posamezna napaka kaže in od kod običajno izvira.

Nemnogoterna mreža

Robovi, ki si jih deli en trikotnik ali trije ali več, vrzeli med površinami ali stene z ničelno debelino. Slicer prikaže manjkajoče plasti, naključne luknje ali opozorilo o odprtih robovih. Vzrok je v modeliranju ali izvozu, pogosto pri združevanju delov, ki se samo dotikajo.

Obrnjene normale

Nekateri trikotniki so obrnjeni navznoter. Upodabljalniki prikažejo črne ali prosojne lise, slicerji pa lahko območje obravnavajo kot prazen prostor. Težavo odpravi ukaz za ponovni izračun normal v Blenderju, Meshmixerju ali popravljalnem orodju slicerja.

Zamenjava milimetrov in palcev

Del, narisan v palcih, v slicerju, ki predvideva milimetre, prispe 25,4-krat premajhen; centimetri, prebrani kot milimetri, dajo napako 10-krat. STL in OBJ ne moreta zabeležiti enote, zato jo nastavite pri izvozu ali pretvorbi.

Manjkajoča datoteka .mtl ali teksture

OBJ, ki se naloži siv ali škrlaten, je izgubil knjižnico materialov ali slike ali pa poti v datoteki .mtl kažejo na mapo v računalniku prvotnega avtorja. Vse datoteke obdržite v eni mapi in jih skupaj zapakirajte v ZIP.

Ogromne datoteke ASCII STL

Podroben sken, shranjen kot ASCII STL, lahko preseže več sto megabajtov, kar upočasni slicerje in preseže omejitve nalaganja. Ponoven izvoz iste mreže kot binarni STL jo skrči na približno petino, ne da bi spremenil en sam trikotnik.

Kako velike so običajno datoteke posameznih formatov

Velikost izhaja iz strukture. Binarni STL je določen na 50 bajtov na trikotnik, zato ga lahko izračunate pred izvozom. ASCII STL vsako oglišče ponovi kot besedilo in običajno je štiri- do šestkrat večji od binarnega. OBJ vsako skupno oglišče shrani enkrat in se nanj sklicuje z indeksom, zato je pri tipični zaprti mreži manjši od ASCII STL in približno na ravni binarnega STL, večji pa je, če nosi tudi UV-je in normale. 3MF shrani indeksiran XML in ga nato stisne v ZIP-u, zato je za isto geometrijo običajno najmanjši od vseh treh.

Spodnje vrednosti so tipične za zaprto mrežo s približno 500.000 trikotniki, na primer podrobno figurico. Dejanske datoteke se razlikujejo glede na natančnost koordinat in izvoznik, zato jih obravnavajte kot velikostne rede, uporabne, ko tiskarska storitev omejuje nalaganje ali je STL, izvožen iz 3MF, nekajkrat večji.

Binarni STL (500.000 trikotnikov × 50 bajtov)
≈ 25 MB
ASCII STL, ista mreža, tipično
≈ 100–150 MB
OBJ brez UV-jev, tipično
≈ 15–30 MB
3MF po stiskanju ZIP, tipično
≈ 5–12 MB

Kaj pretvorba popravi in česa nikoli ne bo

Pretvorba prebere trikotnike iz enega vsebnika in jih zapiše v drugega. Vse, kar ciljni format lahko izrazi, se prenese; vse, česar ne more, se izgubi. Zato je pretvorba STL v OBJ za geometrijo brez izgub, 3MF v STL izgubi barve, enote in razporeditev plošče, OBJ v STL pa teksture in imena delov. V 3D-orodjih UltKit so dodatne odločitve izrecne: Enote modela pretvorniku sporočijo, katero merilo uporablja vir, Navpična os rešuje razliko med osjo Y navzgor in osjo Z navzgor med igralnimi pogoni in slicerji, Združi v eno mrežo pa določa, ali ločeni deli ostanejo ločeni.

Česar nobena pretvorba ne naredi, je popravilo mreže. Če ima STL luknjo, jo ima tudi OBJ, ki ga iz njega naredite, izvoznik 3MF pa jo bo bodisi zavrnil bodisi vseeno zapisal. Popravilo je ločen korak v orodju za mreže ali vgrajenem popravljalniku slicerja in ga je najbolje opraviti enkrat, v glavni datoteki, preden izvozite karkoli drugega. Enako velja za merilo: pretvorba ne more vedeti, da je bil del mišljen v palcih, če ji tega ne poveste. Podrobnost deluje podobno: STL z malo poligoni postane OBJ ali 3MF z malo poligoni, zato ob pomembni kakovosti znova izvozite iz izvornega modela.

Kaj naredi sprememba formata

  • Iste trikotnike prenese v vsebnik, ki ga sprejme drug program
  • Uporabi enoto, ki jo izberete pri Enote modela, in odpravi napako merila 25,4× ali 10×
  • Z možnostjo Navpična os zavrti model med osjo Y navzgor in osjo Z navzgor
  • Skrči ASCII STL, tako da zapiše binarnega
  • Ohrani ali združi ločene dele, odvisno od možnosti Združi v eno mrežo

Kaj pusti popolnoma nespremenjeno

  • Luknje, odprte robove in nemnogoterno geometrijo
  • Obrnjene ali nedosledne normale
  • Dele s samoprekrivanjem in stene z ničelno debelino
  • Podrobnosti, ki so se izgubile ob prvem izvozu mreže
  • Barve in teksture, ko jih ciljni format ne podpira

Tabela za odločanje: STL, OBJ ali 3MF

Pri tem vprašanju se vedno pojavita še dva formata. STEP (ISO 10303) hrani natančna telesa in površine namesto trikotnikov, zato je pravi format, kadar se mora del vrniti v Fusion 360, SolidWorks ali FreeCAD za urejanje. GLB, binarna oblika formata glTF 2.0 skupine Khronos, zapakira mrežo z materiali in teksturami v eno datoteko v metrih in je format za prikaz modela na spletu ali v AR na Androidu.

Za tri formate, ki jih obravnava ta članek, spodnja tabela povzema izbiro glede na cilj. Če ustrezata dve vrstici, izberite format, ki nosi več informacij, in preprostejšega izvozite pozneje; pretvorba iz 3MF v STL je enostavna, ponovna izdelava izgubljenih barv ali enot pa je ročno delo.

Izberite glede na to, kam gre datoteka naprej
PrimerNajboljši formatZakaj
Enobarven del za poljubni slicerSTL (binarni)Univerzalna podpora; slicer ne potrebuje ničesar drugega
Nalaganje v knjižnico modelov ali tiskarsko storitevSTL, poleg tega 3MF, če je ponujenSTL je vedno sprejet; 3MF ohrani enote in barve
Večbarven ali večmaterialni tisk3MFEdini format tukaj, ki za slicerje hrani barve in materiale po delih
Plošča z več deli in nastavitvami tiska3MFRazporeditev objektov in nastavitve slicerja shrani v eni datoteki
Del, oblikovan v palcih3MFNavede enoto, zato se nič ne pomnoži z 25,4
Teksturiran model za Blender, Unity ali UnrealOBJ (+ .mtl in slike)Ohrani UV-je, normale in dodelitve materialov
Hiter pregled v urejevalniku besedilaOBJ ali ASCII STLNavadno besedilo, ki ga preberete vrstico za vrstico
Stara strojna programska oprema ali programi, ki navajajo samo STLSTLOdstranite dodatke in pošljite mrežo

Ključne ugotovitve

  • STL hrani samo trikotnike: brez enot, brez barv, v binarni obliki pa 50 bajtov na trikotnik.
  • OBJ doda UV-je, normale in poimenovane skupine, vendar so njegove barve in teksture odvisne od ločene datoteke .mtl in slikovnih datotek.
  • 3MF je ZIP z XML-jem, ki beleži enote, barve, več objektov in nastavitve tiska ter zahteva zaprte mreže.
  • Uporabite STL za preproste enobarvne tiske, OBJ za teksturirane modele v umetniških in igričarskih delotokih ter 3MF, kadar ga vaš slicer podpira.
  • Pretvorba spremeni vsebnik, ne mreže: luknje in normale popravite v orodju za mreže, enoto pa nastavite sami.
DeliXFacebookWhatsAppTelegram

Pogosta vprašanja

Ali 3MF nadomešča STL?

Počasi, ko gre za delovne tokove tiskanja. PrusaSlicer in Bambu Studio projekte že shranjujeta kot 3MF, vendar STL ostaja format, ki ga sprejmeta vsako orodje in vsaka knjižnica modelov, zato bosta formata soobstajala še več let.

Ali lahko binarni STL shrani barvo?

Ne na standarden način. Nekateri programi zapišejo barvo v 2-bajtno polje atributov vsakega trikotnika, vendar ga večina programov za rezanje (slicerjev) prezre, zato uporabite 3MF ali OBJ, kadar je barva pomembna.

Zakaj je moj OBJ po prenosu siv?

Datoteka .mtl ali slike tekstur so ostale zunaj mape ali pa poti v datoteki .mtl kažejo na mape, ki jih v vašem računalniku ni. Datoteke .obj, .mtl in slike shranite v isto mapo ter model znova naložite.

Ali da ASCII ali binarni STL natančnejši tisk?

V praksi nobeden ne tiska natančneje. Oba opisujeta iste trikotnike; binarni zapis shranjuje koordinate kot 32-bitna števila s plavajočo vejico, ASCII pa kot besedilo, binarne datoteke pa so običajno nekajkrat manjše.

Ali lahko OBJ za tiskanje pretvorim nazaj v STL?

Da. Trikotniki se prenesejo nespremenjeni, UV-koordinate, materiali in teksture pa se izgubijo, ker jih STL ne podpira. Nato preverite merilo, saj so datoteke OBJ iz modelirnih orodij pogosto v metrih ali centimetrih.

Kateri format uporabiti, če model delim z drugimi za tiskanje?

Ponudite STL za najširšo združljivost, če pa ima model več delov, barve ali je bil zasnovan v palcih, ob njem dodajte še 3MF, da uporabniki s sodobnim programom za rezanje dobijo celotno nastavitev.

Berite naprej