3D models drawn in Blender work great in a computer animated virtual world but don’t always when brought into a slicer for 3D printing. Slicers require something which makes sense in the real world. And the real world is far less forgiving, as I’ve found out with my own projects which use 3D printed parts.
Our [Brian Benchoff] already talked about making parts in Blender with his two-part series (here and here) so consider this the next step. These are the techniques I’ve come up with for preparing parts for 3D printing before handing them off to a slicer program. Note that the same may apply to other mesh-type modeling programs too, but as Blender is the only one I’ve used, please share your experiences with other programs in the comments below.
I’ll be using the latest version of Blender at this time, version 2.79b. My printer is the Crealty CR-10 and my slicer is Cura 3.1.0. Some of these steps may vary depending on your slicer or if you’re using a printing service. For example, Shapeways has instructions for people creating STLs from Blender for uploading to them.
Fixing Shape Issues
Slicers will often highlight a few issues with your part such as if a section of it hangs out in mid-air with no support under it. But Blender can also show you these things, allowing you to fix them before getting to the slicer and thereby avoiding going back and forth between the two programs.
Some of this is done through the Mesh Analysis panel in the Properties region (the area on the right in the 3D View which you bring up by press N).
Here we’re showing it highlighting overhangs, anything in the range of 0° to 45°. The red area is the bottom of the part and will be sitting on the print bed so it won’t be a problem. The areas in blue, however, can be fixed by increasing their angle as measured from the horizontal.
Other issues available by clicking on the Type dropdown are:
Sharp – These are edges or points where faces meet which may be too sharp to print well.
Distortion – A three-sided polygon will always have a flat surface but Blender supports polygons with any number of sides, called n-gons. These can be flat but they can also be distorted such that different sections of their face point in different directions. This may confuse some slicers.
Intersect – This is where one section of a part is inside another section. In the example shown, I made a knob by simply jamming a cylinder partway into the side of vertical face such that one end is inside the mesh but not connected to it.
Thickness – This is a section which may be too thin to print, perhaps a thin wall.
Fixing Problems In The Mesh
Other things which may confuse a slicer are usually more problems with the mesh which aren’t visible or are inside the part. Luckily Blender has tools to help with that too.
Many of these issues come under the heading, non-manifold geometry, or geometry which cannot exist in the real world. Examples are:
vertices or edges which are not connected to any faces, perhaps left over when deleting vertices but missing some
duplicate geometry, perhaps left over when pressing E to extrude a face, thereby creating a new face, but then deciding not to pull it away after all and then deleting only parts of it or none at all
holes in the side of your object, perhaps where an edge is actually two unconnected edges but looks like a single one
geometry left completely enclosed inside an object.
Before exporting anything for 3D printing, you should go into Edit mode, set your Viewport Shading to Wireframe, and make sure none of your geometry is selected. Then do Select > Select all by trait to get a menu of tools which will select types of any problem geometry listed above.
The most likely culprits it’ll show you will be unnecessary geometry inside so simply delete it while being careful to not delete stuff you still need. For example, when deleting an interior face with some edges still connected to the outer surface, use Only Faces and Only Edges & Faces in the Delete menu.
Another frequent culprit is incorrect normals. Normals are indicated by lines which point perpendicular to a polygon. The lines are shown emitting from one side of the polygon and the other side has a dot. You want all the normals on the outside of the object to be pointing in the same direction otherwise slicers may get confused. On the right in the illustration is the object in Cura and you can see that the hole is missing. A good habit before exporting is to select everything in Edit mode and then go the Tool Shelf, the Shading/UVs tab, and select Recalcuate to make all normals point in the same direction.
N-Gons Are Bad For Slicers
I’ve found that checking for and fixing the above-mentioned problems works but that you can be a little bit forgetful about doing so if you convert n-gons to triangles before exporting your objects for the slicer. In Blender you do this by selecting everything in Edit mode and then doing Mesh -> Faces -> Triangulate Faces (Ctrl-T).
Scaling And Exporting
The odds are good that the scale you’ll be drawing your part in will be different from the scale used by your slicer. Once you’re ready to export the part to an STL, OBJ, or whatever format of file works with your slicer, you have a choice of either scaling the part in Blender and then exporting or exporting it as is and then scaling it in the slicer. I most often do the former.
Scaling in Blender: before
Scaling in Blender: after
The very first part I printed on my CR-10 was a filament guide which I downloaded from Thingiverse as an STL file. When opened in Cura it needed no scaling. So when I was ready to print the first part of my own design, I created a new Blender file from scratch and imported the filament guide. I then appended my part, an eyeball to which a Pi Camera can be attached (File -> Append, drill down to the eyeball Object in the file). The filament guide was around five centimeters long and the eyeball appeared tiny by comparison so it was clear that the eyeball needed to be rescaled. Multiplying all the scale values by ten did the job. I then deleted the filament guide and exported my eyeball as an OBJ (smoothness on rounded shapes seems to be lacking in Blender’s STLs when opened in Cura).
I then saved that Blender file with the properly scaled eyeball. Now whenever I’m ready to slice a part, I open that file, append the new part, do whatever scaling is needed, delete the eyeball, and export the part.
That seems a lot clunkier than simply exporting the part directly from the Blender file in which I created the part in the first place and then rescaling it in Cura. And you’re probably right. However, I almost always create multiple interlocking parts and there doesn’t seem to be any way to tell Blender to export just one of them.
A Few Final Tips
Depending on the modifiers, you may want to apply them before some of the steps mentioned above. The Mirror modifier is one good example.
There have also been Blender Add-ons which consolidate many of the above steps into one place. Go to the list of Add-ons by doing File -> User Preferences and search for “3D print” to find any.
Many of the above problems stem from the fact that Blender is a mesh-type modelling program rather than a solids-based one like SolidWorks and FreeCAD. But for free-form or sculpted 3D objects, Blender shines. By keeping in mind the above tips when making your models and checking with Blender’s tools before exporting, printing should go smoothly.