Friday, December 18, 2020

Adventures In The Third Dimension

I am not new to the 3D printing world.  The makerspace at work has several printers, and I have made many excellent things with them. My problem is that I am currently banished from the office due to COVID and social distancing and all that jazz. (Tho I prefer to think of it as being isolated for the good of the realm).   The way things are going I would not be surprised if I was not allowed back for another year.

This will not do.  So I have recently acquired for my shop a new tool: a Prusa Mini 3D printer.  Now I can make anything I want, smaller than 7 inches cubed, from the comfort of my own home.  I don't even have to put on pants!

 Now I just need to learn to make the most of it.

Using the work 3D printers I have made some interesting stuff over the last couple years.   However  I've made have all been models made by other people.  There is a large community of modelers, and there are a large number of models available for free, and many more available for sale.   

To maximize the potential of this new tool I wanted to learn how to make my own models.  To that end I spent the better part of this morning learning how to do exactly that.  That is what I set out to do when I got up this morning.

I started with the 3D model tool called Blender.  Why? Its free, its capable, and its installed already! I don't know it well... I've only done a couple tutorials, but it seemed a decent weapon with which to attack my goal.  I will note that 3D modelling is exponentially more complicated than Photoshop (which is 2D, and blissfully uncomplex in comparison).  My learning curve is steep, yo.

 My goal was to print *something*, not *the best thing*, so I went with putting a couple primitives together.   Primitives are simple shapes that can be used as starting blocks.  Things like cubes, cylinders, spheres, cones, and a monkey named Suzanne.

Not even kidding.. an actual cylinder!  I'm gonna use the heck out of that one!

I made a quick model by putting the monkey head (its there as a fun thing) on a plinth made out of two cylinders (told ya!).  The cool thing about 3D is that really low rez cylinders look like octagons, which is what I used. (put another way an octagon is an 8 sided cylinder).

This took a little bit of learning, but because I was just using pre-made shapes, it was really just complicated dragging and dropping.

So far so good.  My 3D printer software, PrusaSlicer, takes a file format called .STL, which stands for Ess Tee Ell (I leave the real answer as homework for my readers).  Blender exports that natively.  Easy Peasy.

Think of PrusaSlicer like a printer driver.  It translates a 3D object into instructions for a 3D printer.  3D objects are, basically, a whole lot of triangles stuck together to make a shape.  3D printers print by drawing a layer of plastic with a line of melted plastic, moving up a bit, and drawing the next layer  Slicers translate the 3D shape into the path the print head takes to make the object.

So I export the monkey as a .STL file, and import it in to PrusaSlicer.  All this goes well, except my model is 0.1mm tall. (For the Americans reading this, 0.1mm is "a really frickin small fraction of an inch".

What gives, says I.  I actually said "What the [censor] is this [excrement based censor]", but this is a fucking family blog so I can't use such salty language.

I did some digging and it turns out that Blender measurement units don't translate into units for any other things.  In Photoshop, depending on what your dots-per-inch value (normally 78-300) you can guess how big a thing would be when its printed by how many pixels across it is.  In Blender all of this is a lie.  It turns out I needed to set the units for the "screen", which is what blender calls the view of the object.  I also need to set the scale. 

It is entirely non-intuitive to me at this point, but thanks to some Googling I learned that I needed to pick a unit of measurement (I picked millimeters, cause my Slicer works in mm), and set the scale to 0.001 (why?  Dunno.  I mean a millimeter is 0.001 of a meter, but if I select millimeters, why isn't the scale 1?  This is one of the mysteries of the universe we have yet to uncover).

Once I got my units set right, I scaled up the model to an appropriate size for printing.

Then I did the export/import dance (Blender crashes if my slicer is running, so the dance is export, close Blender, open PrusaSlicer, import).

I finally got a view in PrusaSlicer that looks like this.

Now I am in standard 3D printing territory.  I scaled the monkey smaller to make the print time shorter.  I also used a coarser 0.15mm for the layers  (fine printing is 0.05mm) to speed up the print (remember my goal is to make *a* thing I designed, not a *pretty* thing, so sacrificing fidelity for time is a fair trade).

I also needed to add supports to the model.  Supports are bits of plastic that are printed in such a way that they break off easily, but are there to support printing parts that hang off in mid air, like the ears and the bottom of the nose.   This is all standard 3D printing stuff and done with a quick press of a button.  The upside is that this is the thing that will actually print:


I copied the final file to a USB key and moved it to the printer.

If you never seen a 3D printer work, its fascinating to watch.  I could watch if for hours.   It starts with a blank sheet, like this.


Then it lays down the first layers.  You can see here the sparse supports on the outside, and the solid plinth in the middle.

As it prints you can see the slices of the monkey mouth start to take shape.  It prints objects hollow, but adds a little bit of plastic, called infill, to the middle, to give everything some strength.

90 minutes later the print is finished.

Now its time to remove the supports, so I took the print to my work bench and selected a few implements of destruction.  Time to dig the monkey out of its shell.

This is the final result.   You can see that its a little rough, which is the trade off I made.  But dude, its a frickin thing that didn't exist 2 hours ago in any form whatsoever, and now I can hold it in my hand. Making it prettier is just a matter of picking a finer print resolution next time and waiting a bit longer for the result.

Some people are disappointed by the predictions of the future from days past because we don't have flying cars.  But in the space of two hours I used a computer that is more powerful than (I am guessing) the sum of the processing power of the planet when I was born, and used a globally connected network that brings the sum of all human knowledge to my fingertips, to design something from scratch and make it reality using, essentially, a robot.   And all it cost me was 10 cents in plastic and electricity, and 2 hours of my time.

The future is now.

The only downside is having to remove all the supports, which is only because we can't control gravity yet (which, really, is one of the reasons we don't have flying cars).

I don't know about you, but I am calling this project a success.   I mounted the monkey on my 3D printer as a memento of the first time I made a real thing of my very own out of  bits on a computer screen.