The Subsurface Modifier For Mechanical Designs

Okay so you’ve got Blender and you’re trying to model something with lots of drill holes and Blender’s solid boolean operations are driving you up the wall.  Meshes hash into mounds of needle-like triangles quickly, and needle-like triangles break the boolean engine.  Nature of the beast, I’m afraid, Blender is a mesher.  And meshers aren’t anything like SolidWorks or OpenSCAD, which can handle hundreds of boolean operations without batting an eyelash.

But let’s say you’re not in love with coding object positions by hand and SolidWorks isn’t in the budget.  Now what?

Subsurface Modifier to the rescue.

Now even a judicious use of the Subsurface Modifier isn’t going to make everything easy, but it can get a lot of your print jobs way closer to that SolidWorks beveled look, let you punch holes in your meshes with relative ease, and dramatically reduce the number of vertices you have to fiddle with.

For this you’ll need a few tricks, so to make them easier to “get” we’ll start in 2D topology, with a flat plane:

This plane’s simplest description is four points.  Makes sense.  Now, let’s switch on the subsurf modifier:

Okay, weird, right?  Our plane is now an octagon.  Blender has subdivided the plane into four quadrilateral faces (or Quads as you’ll hear the meshers say) and rounded them off.  If you turn up the number of subdivisions in the subsurf panel, you’ll see that this octagon is really approximating a circle:

Now if you’re trying to do something mechanical you’re thinking, well that’s kind of useless unless I want to do talking animals or trees or possibly certain very abstract shapes, how am I supposed to do anything with sharp edges?  Answer, by telling the subdivider to make the edge sharper, which is easier than it sounds.  Hit ctrl-r for the ring-cut function, and when the mouse pointer is near an edge, it’ll draw a line showing where it’ll cut.  Click once, and you are now sliding that edge back and forth.  Slide it up close to one side like this:

Which you can quickly extend to getting a square back:

Which great, you’re thinking, we just did with nine quads what we could have done with one.  But now we get to the useful bit– punching a square out of this mesh creates a circular hole.  Any time you are working with a mesh defined like this one, circular holes require almost no vertices to get satisfactorally round results.

With ctrl-r and the subsurf modifier, you can get away with designing your entire project as though it had no soft edges and all circles were squares, then adding the subsurf at the end and “sharpening up” the corners you want sharp.

For example, here’s a sort of cylindrical goblet with a square hole punched through the side:

(I removed two faces, extruded once to get some surface area back and then stitched the two holes together with the f-key command.)

With the subsurface modifier, it gets smoothed off into this:

Which is pretty cool, but it’s missing some sharp edges that I wanted.  The ring-cut tool lets me sharpen up a lot of edges, like the ones highlighted:

With some fiddling, I was even able to square up the hole on the side.  Important benefit here: if you have two parts which need to fit together, sharpening up their edges where the original meshes touch will move vertices towards the places they need to be for a mate.  I’ve used this at my job to press-fit parts together, and it works!

2 Comments »

  1. Erik de Bruijn Said,

    July 6, 2010 @ 4:13 am

    In Blender 2.5, to get into this feature, select the wrench tab (on the right). Under modifiers, click “Add modifier” and then click “subdivision surface”.
    I liked this video tutorial on the subject: http://www.youtube.com/watch?v=ckOTl2GcS-E

    One question, how do you get these subsurface features to an exported STL? Or does that require another operation? Somehow blender 2.5 (Alpha 2) doesn’t export to STL (at least not from the menu anymore).

  2. Jeremydeath Said,

    July 6, 2010 @ 12:14 pm

    There is another way to create sharp edges in blender while using the subsurf modifier. This is the crease command (Shift+e). By selecting an edge or face on the mesh, you can crease it by pressing Shift+e and then selecting the crease value (0-1). This command lets you change the sharpness of an edge without increasing the number of polygons in the model and it lets you create models like this:
    http://img130.imageshack.us/img130/4250/blendersubsurf.jpg

Leave a Comment