Monday, February 14, 2011

Printing small holes in small features

In which your narrator discovers an out-of-the-box method of making small holes for pinned hinges in small features.

Recently, Chris Palmer blogged an exquisite article on the pitfalls of getting the diameters right in holes made in objects. It related very closely to a problem I was having in developing a printed robot hand.

Previously, I'd had no trouble in that the joints between the phalanges of the robotic fingers were very large and printed.

I loved this approach, but sadly had to abandon it simply because the large contact areas between the phalanges created excessive friction and because the number of things that I needed to have happening in a phalang made the large joints unhelpful.  The need for smaller, more compact hinged joints brought to mind the work of Frank Davies with his Sarrus Linkage positioning system.

Frank used pinned hinges to great effect.

As I was designing such pinned hinges into my phalanges, I soon discovered that the substantial pins that Frank was able to use were too large for the delicate phalanges that I was working on.  In fact, I finally settled on using simple paper clips (0.84 mm diameter) for the pins in my work.

In designing the joints, I followed the usual Reprap gambit and simply included the pin holes in the STLs for the parts.

The only problem with this approach was that both the hole and the hinge joint that it was seated in were very small.  The joint had a radius of only 3 mm and the hole 0.42 mm.  

Ordinarily Reprappers use a few print paths around the perimeter and then infill the rest. I design using thin walled parts glued together after printing, an approach that lets me create fine featured parts that are fast to print.  With a feature this small, however, print roads radiating out from the pin hole very quickly clash with print roads radiating in from the joint.

It's bad design practice to let a hot print head hover for extended periods of time over or near a small feature.  You want the head doing the feature then going far away quickly so that the molten plastic thread has a chance to cool a bit before the next layer is applied.  If you don't get this your small feature becomes a featureless blob.

Print road clashing between the pin hole and outer perimeter of the hinge had me fiddling around with print road width for the better part of a week with indifferent results.  Yesterday, however, an out-of-the-box solution to the problem finally hit me.  I'd do better at printing the pin hole if I simply didn't include it in the STL, something like this.

Basically, I just plugged the hole.  What that did is to limit the print road propagation to those radiating inwards from the outside perimeter of the hinge.   Since I don't use infill because of the problems getting the perimeter roads to match with the infill roads, for the first few millimeters of the print had no hole due to the use of perimeter roads to completely fill the layer.

Once I had the roads calculated I pulled up the .PNG images for the completely filled layers.  You can see the bit that will fill the pin hole circled in red.  

It was a simple matter to pull the images into Paint and remove the inconvenient loop from the images and then continue processing the images into Gcode.  

By calculating the width of the print roads appropriately, I was able to get the proper diameter for the pin correct on the first try.

The annoying part of this whole epiphany was that it took me over a week and dozens of trial prints to see the simple way of solving the problem.