Sunday, February 12, 2012

Sears--Haack Body for Mini-Estes

We have a little company here in Dayton that does print on demand (Fabbr) with Makerbots. They specialize in printing RepRap kits, but I think I'm going to see if they can print me a little rocket to use with Estes mini-motors.
The 1/4 and 1/2 A motors are 13 mm in diameter and 44 mm long.

The first thing you need to print a part with these hobby printers is an stl file. I followed a some-what torturous route to generating one.
First I made a little python script to find the minimum volume Sears-Haack body that would fit a 13x44 mm cylinder. The bold black curve is the minimum volume body; it happens to have a length of twice the motor length.
As you can see in the script, I also dumped an svg file of that curve. This is easily imported into Blender. Then the svg curve must be converted into a Mesh, and the Spin method applied to generate the body of revolution.
I played with the number of steps to get a mesh that looked like it had surface faces with near unit aspect ratio (not that it really matters, but old habits die hard).

Now I should be able to add some fins and export an stl from Blender for my rapid prototyping friends to play with. The design goal for this rocket will be to have positive static margin with the motor in the rocket, but neutral or negative static margin once the ejection charge pops it out the back (that way it does a tumble recovery).

Update: To turn the surface mesh generated above into a real solid that can be printed requires a couple of extra steps. First, all of the faces should be selected in Edit mode, then choose the Mesh-->Solidify, this method allows you to select a thickness for the extrusion to generate a volume grid from the surface grid. After that, the quadrilateral cells need to be converted into tetrahedrons. With all of the faces selected, this is done by simply typing CTRL-T.
For some reason the stl exported from Blender did not work. I exported a ply format file from Blender instead, and then imported it into meshlab, which then exports to a variety of formats, stl included.

Update: The fine folks at fabbr printed me one in ABS on one of their makerbots.


Well, it looks like I need to bump out the inner diameter just a bit; I over-sized it, but not quite enough.

Update: Shapeways managed to print one of the thin-wall bodies; it's a very nice part.

Update: Static fire of the little ABS Sears-Haack motor carrier. Enlarged the crack caused by the initial motor load; caused another crack on the opposite side of the fuselage; breaks introduced around the ringfin. The ejection charge successfully kicked the motor out the back.

Update: Bumped out the inner diameter to make loading the motor easier. Also made the outer diameter slightly smaller (now 20mm). The ringfin is twice as long, and cantelevered further aft to improve stability. The three support fins that connect the fuselage and the ringfin are thicker as well.

I've been playing with Blender's mesh Boolean operations to combine all the parts, but I've found that those methods usually result in really heinous meshes from a 3D-printing perspective. All sorts of overlapping faces with normals pointing everywhere. The best method I've found is just to Join all the parts into one object (without doing any Boolean ops), and then exporting the mesh in something meshlab can read (.ply). Then I use meshlab's Filters-->Cleaning and Reparing-->Remove Faces from Non Manif Edge. This usually results in a part that Shapeways is happy with (watertight geometry with consistent normals). After removing the non-manifold faces, if the normals need to be re-oriented use Filters-->Normals, Curvatures and Orientation-->Re-Orient all faces coherently in meshlab, and finally export the .stl for printing.


  1. The shapeways tutorials recommend leaving a hole so that the powder can be removed from interior cavities. So this part should work pretty well with the selective laser sintering process that they use. I ordered a couple out of their white nylon material, and their transparent material.

  2. Well, that original part had 0.35mm thick walls, and the minimum wall thickness Shapeways recommends for the white nylon material is 1mm. Here's an updated part with thicker walls (and a ring fin!). I haven't even done a back of the envelope on the static stability, and it looks a little iffy, but I think I'm just going to print it and fly it.

  3. Updated post to include motor fit check on ABS printed part: not quite ready for prime time.

  4. Updated to include picture of Shapeways print in their "Transparent--Detail" material.

  5. Updated post to include pictures of damage caused by static fire test.

  6. Updated post to include Mk2 geometry, and more details about Blender/Meshlab/Shapeways work-flow.

  7. I found another mini-motor part on thingiverse: PicoRocket.

  8. I don't know much about aerodynamics, but I've been very curious about these things.

    Wouldn't it be better to optimize for minimal surface area than volume (skin friction drag)? Maybe that comes out the same?

    And wouldn't it be better to wrap the engine in a cylinder of minimum width, then just cut off the front of a sears-haack body and stick that on the front of the cylinder? Minimize maximum cross section? If you need to wrap an aerodynamic shape around a cylinder, is there any reason not to have the center... cylindrical?

  9. darxus, thanks for your comment. You're right; minimizing the wetted area is a good rule of thumb for streamlined bodies.

    I think there are lots of ways you could optimize the shape; the best way depends on what performance parameter you care about most.

    It's a little silly to begin with to use this shape for a mini-estes rocket. The shape is based on an area distribution for minimum wave drag. This is really not a factor for anything powered by a 1/2A Estes blackpowder motor. If you really want to optimize for this low Mach regime you'd likely have nice, big round leading edges (think of a teardrop). Sharp edges only make sense for Mach>1.

  10. > Sharp edges only make sense for Mach>1.

    I disagree. I've been frustrated by how much solid info I've been able to find, but I suspect a Sears Haack body is ideal at all speeds. It's just not as important at much lower speeds. I know the rounded front is popular for well below mach one, and I suspect it's probably good enough for most things, but I feel like that largely comes from people assuming wing shape is optimized for minimal drag, when the rounded leading edge of wings actually has more to do with avoiding sudden stalling as the angle of attack increases.

    Best point I can give you is how sharp the leading edges of solar race cars have gotten. And one of the problems with that is the sharper it gets, the more careful you need to be with exactly how high that edge is relative to the widest cross section.

    Most of my interest in aerodynamics is related to trying to design a ridiculous car:

  11. You're right that leading edge separation is a problem. Nothing in flight maintains a constant angle of attack. I imagine a car would be able to maintain angle of attack at tighter tolerances, but wind blowing in any direction not parallel with the road will cause the same sort of problems in the side-slip plane. One of the other things that might make sharp edges attractive even at Mach<1 is really low Reynolds numbers (much lower than a car at high-way speeds). The answer, like most things, is "it depends".

  12. Another model rocket part on Thingiverse: fin fixture.

  13. The folks at Stanford have a tutorial up demonstrating shape optimization of a 2D airfoil to achieve minimum drag (wave and pressure, but not skin friction since they are solving the inviscid governing equations).

  14. Derivative model on thingiverse with improved attachment for the fin: Rocket v1