You know that thing on reddit where you see someone's broken print
or pile of spaghetti and you jokingly ask
"stl?"
Can we all stop doing that now? It's not funny.
It's just mean, poor etiquette, and tiresome.
You should be asking for the 3mf. Obviously.
So,
Allow me to introduce 3mf files, there's been some rumblings lately as to why you should use them so,
what are they?
I spend a lot of time wading through gcode and if you watch my vids you'll know that
I constantly tell you that they are human readable and we can learn stuff from them.
STL files, are not, I don't think, human readable and we can't learn stuff from them. At
least when I open one up in a text editor it just looks like this.
Now on initial glance if you open up a 3mf file in a text editor you get the same thing.
But they hide a not so secret secret, if you haven't used 3mf or you have but
never looked up how they work then prepare to have your mind blown.
Rename the file....to a zip...and.....Oh look. It's just a zip file.
Inside the zip file you find various folders but the primary one is the
3D folder which contains a 3dmodel.model file, I'll get onto the others in a moment.
This 3dmodel file IS human readable, in fact it's in XML.
If you're a programmer like me or maybe a programmer who can actually program unlike me
than you will be well aware of xml but let me run anyone else through it.
It's essentially a markup language not a true programming language,
that is to say you have no loops or tests, just data arranged between tags like so.
The X in xml means extensible which bugs me because that starts with an E
in xml you can make up the tags as you go along. but I think there's a lot of focus in the design
of 3mf to really leverage the extensibility of XML, that is to say futureproof the file format.
So if we look at the file anyway, we can see that it has vertices and triangles within a mesh tag,
and really this isn't a lot different to stl, which may be disappointing because you're still
somewhat constrained to basically triangles rather than mathematical shapes like NURBS
which I'm not going to get into because I have very little understanding myself
but it's a thing that fusion 360 for example works in. Apparently.
Of course you can improve the resolution of your printed object by increasing the
density of the mesh which is why we don't have issues when 3d printing with STLs,
I'm sure you've noticed at least that some stls are notably more polygonal than others,
this is probably just down to the resolution of the triangles and the same will apply to
3mf files, but remember that 3mf files are zip archives so they take up less space,
although honestly I think that's the weakest reason to use them since even an insanely
detailed stl is nothing in this day and age where me speaking this sentence will take up
magnitudes more bandwidth than the file size of a benchy in stl.
Now I've been using 3mf files for the whole of this 10 day series, because I knew I would end
on this episode and need to say something about how well they work. Good planning...for a change.
I have to say that overall I noticed almost no difference from stl, almost, I'll get to that in a
second, but in terms of using 3mf it's not much of an adaptation. Cura and Prusaslicer both happily
import these, in fact Prusaslicer wants you to use them as per the vid I will link below, but yes
they are already implemented and work fine. Fusion 360 can export them and the sharp eyed among you
may have noticed the recent change in F360 to have a save as mesh menu now rather than the old
save as stl, apparently this is why. OpenSCAD also supports it, blender I think you can but
I did demonstrate my ability level on blender back on day 4 so I won't try to back that assertion up.
The point I'm making is that this file format is already well established and ready for you to use.
About the almost. Look at the file structure again,
notice this object tag here. I nearly didn't notice this when I was preparing
a multi part stl to print from cura, which I'd made in fusion. I'm used to multi piece
stls being awkward but I found I could edit the pieces separately. This is the biggest benefit
You can include things like part colour but firstly nearly nobody has printers capable
of doing anything with that, secondly I found that for example paint.net here,
yes I know, me neither, but since microsoft were involved in creating this spec I thought
I'd have a look - and when you set a colour it does export it into the file but as a texture
so that's pretty useless from a current technology standpoint, even if the slicer
supported colour and even if your printer was an RGB printer and you are a mister moneybags.
But you get the point. 3MF has a lot of potential upsides, most of which admittedly aren't being
consistently applied yet between softwares even though there's literally a spec for this,
and most of which are of limited use right now because we just don't have the right hardware
or I guess mindset in the slicers, which were almost certainly designed with stl in mind.
So....well why should you use it now, in 2021? Firstly and foremostly I think it comes down to
adoption. If nobody uses this file format then it will never be catered for and its features will
never be a priority for software. Secondly, well, I've already
mentioned the smaller file sizes Thirdly, I haven't mentioned the
better geometry mainly because I don't entirely understand it but apparently there's that.
And finally, the human readability and multiple file and object capability.
It does feel like a file format appropriate to this age of 3d printing.
Do you know what's coming though?
That's right. A But.
BUT.
I have some concerns.
Firstly, it comes down to I suppose association of presets.
One of the things I didn't mention yet that is often used as a selling point for 3MF is the
ability to store slicer settings, supports, etc. If you think about how we work, the slicer does
a lot of this when it generates the gcode, and it's done from presets that are based on
your printer. Now I know a lot of that is cross compatible, indeed I've printed gcode from one
printer on another and it's often fine but I'm pretty sure that if you give it more
than a moment's thought you start to cringe at the idea of some presets that could end up or
currently end up in a 3MF file that are specific to someone's printer in their bedroom, but they
share that to you and it's absolutely not suitable for yours. How do you store such information
in a file and get around this? No idea. I did have a brief look at how cura deals
with it and I must say I don't like it. But let me be clear, this isn't an issue
when you take a file from a CAD because it doesn't store this information by default.
Secondly though and slightly more worryingly, watch this.
If you imported this file and sliced and printed it you would be in trouble.
Cura gave me no warnings or prompts to tell me that the file contains temperature information way
outside of safe operation, and the import option was confusing enough and quite limiting too,
I had just two options, to overwrite who knows what,
or to strip most of the benefits of 3MF out and import just the mesh by the looks of it.
I'll be honest, I think that needs addressing somehow. If you share a 3MF file on thingiverse
you could include settings that might damage a printer, which is not cool.
Worth noting while I'm talking about this that you can do the same in gcode
so that's definitely something you should never use from untrustworthy sources too
as you would get even less visibility of printer breaking instructions.
So once again I have to stop to keep the video length down
but I think you get a decent idea of what 3MF is, and what it isn't.
If you're asking me to call whether you should use it, I'm going to say a solid
YES on your own designs. But I'm going to say a cautious maybe on designs you download from
other people. If you load a 3MF file up and cura wants you to import the profile stuff
like you just saw then chances are it's been saved from a slicer and you probably
don't want that, but in most cases I assume 3MF files would have been made in a CAD so they would
not contain printer overwriting settings. But it certainly does raise some questions doesn't it.
So back to my joke at the beginning, maybe you should just be asking for the stl after all.
And on that note, I will both bid you farewell - and - thank
you for sticking around for ten days of these videos, if indeed you have.
If you haven't then a link to the playlist should appear in a moment so go watch them.
Thank you for watching!