Thing-O-Matic: Triple Cylinder Thing

My buddy Mark One asked me to make a golf-ball sized Thing that’s the intersection of three mutually orthogonal cylinders. He claims I (subtractively) machined one from solid plastic, many many years ago, but I cannot imagine I ever had that level of machine shop fu; right now, I’m not sure how I’d fixture the thing.

Cylinder Thing - solid model

Cylinder Thing - solid model

It’s much easier with a 3D printer…

Of course, spheroids aren’t printable without support, but you can chop one in half to reveal the nice, flat interior surfaces, then add holes for alignment pegs. Using 0.50 infill makes for a compact mesh inside the ball:

Cylinder Thing - building

Cylinder Thing - building

Smooth a few imperfections from the mating surfaces and add four pegs (the other two are busy propping the right-hand half off the countertop). Somewhat to my surprise, the alignment holes came out a perfect push fit for the 2.9 mm actual-OD filament with my more-or-less standard 0.2 mm HoleWindage Finagle Constant. This also uses the 1.005 XY scale factor to adjust for ABS shrinkage, not that that matters in this case:

Cylinder Thing - alignment pegs

Cylinder Thing - alignment pegs

Then solvent-bond everything together forever more:

Cylinder Thing - clamped

Cylinder Thing - clamped

The seam is almost imperceptible around the equator, perhaps because I didn’t slobber solvent right up to the edge. I did print one without the alignment pegs and demonstrated that you (well, I) can’t glue a spheroid without fixturing the halves; that one goes in my Show-n-Tell heap.

The 0.33 mm Z resolution produces sucky North and South poles; the East, West, Left, and Right poles are just fine, as are the eight Tropical Vertices. After mulling for a bit, I rotated a cylindrical profile upward:

Cylinder Thing Rotated - solid model

Cylinder Thing Rotated - solid model

The obvious contour lines fit the cylinder much better, although you can see where better Z resolution would pay off:

Cylinder Thing - rotated

Cylinder Thing - rotated

This was at 0.33 mm x 0.66 mm, 200 °C, 30 & 100 mm/s, 2 rpm. No delamination problems; I applied a wood chisel to persuade those big flat surfaces to part company with the Kapton tape.

The OpenSCAD source code:

// Three intersecting cylinders
// Ed Nisley KE4ZNU - Oct 2011

Layout = "Build";			// Show Build

//- Extrusion parameters must match reality!
//  Print with +1 shells and 3 solid layers
//  Use infill solidity = 0.5 or more...

ThreadThick = 0.33;
ThreadWidth = 2.0 * ThreadThick;

HoleWindage = 0.2;

Protrusion = 0.1;			// make holes end cleanly

//------ Model dimensions

CylDia = 2*IntegerMultiple(40.0/2,ThreadThick);
CylRad = CylDia/2;

echo(str("Actual diameter: ",CylDia));

Angle = [45,0,0];			// rotate to choose build orientation

$fn=128;

AlignPegDia = 2.90;

//-------

function IntegerMultiple(Size,Unit) = Unit * ceil(Size / Unit);

module PolyCyl(Dia,Height,ForceSides=0) {			// based on nophead's polyholes

  Sides = (ForceSides != 0) ? ForceSides : (ceil(Dia) + 2);

  FixDia = Dia / cos(180/Sides);

  cylinder(r=(FixDia + HoleWindage)/2,h=Height,$fn=Sides);
}

module ShowPegGrid(Space = 10.0,Size = 1.0) {

  Range = floor(50 / Space);

	for (x=[-Range:Range])
	  for (y=[-Range:Range])
		translate([x*Space,y*Space,Size/2])
		  %cube(Size,center=true);

}

//------- Model bits & pieces

module OneCyl() {
  cylinder(r=CylRad,h=CylDia,center=true);
}

module ThreeCyl() {
  intersection() {
	OneCyl();
	rotate([90,0,0]) OneCyl();
	rotate([0,90,0]) OneCyl();
  }
}

module HemiThing() {
  difference() {
	rotate(Angle)
	  ThreeCyl();
	translate([0,0,-CylRad])
		cube(CylDia,center=true);
	for (Index = [0:3])
	  rotate(Index*90)
		translate([CylRad/2,0,-Protrusion])
		  PolyCyl(AlignPegDia,5+Protrusion);
  }
}

//---------

ShowPegGrid();

if (Layout == "Show")
  ThreeCyl();

if (Layout == "Build") {
  translate([CylRad,CylRad,0])
	HemiThing();

  translate([-CylRad,-CylRad,0])
	  HemiThing();
}

,

  1. #1 by smellsofbikes on 2011-10-15 - 14:05

    That’s completely awesome. I’ve written multiple web pages about that shape. They’re really hard to do by subtractive machining, and I’m totally envious of you having one.
    They sure do roll funny.

    • #2 by Ed on 2011-10-15 - 14:54

      They sure do roll funny.

      That’s what Mark One remembers: if you drop one (at least the solid one I allegedly made long ago) on a concrete floor, it rebounds with a random spin that makes it leap off in a random direction after the next bound, with more speed than you’d expect. It keeps doing that until it vanishes underneath the largest and most immovable chunk of furniture in the room.

      We established that these don’t rebound well on laminate flooring. I was loathe to beat up a Presentation Quality Item, so I’ll let him try it out on his basement floor…

  2. #3 by Brent on 2011-10-15 - 14:50

    Sir! I request that you push the design to Thingiverse. Sir!

    • #4 by Ed on 2011-10-15 - 16:49

      Every time I think of writing stuff up for Thingiverse, I feel a nap comin’ on strong.

      Knowing the weird assortment of stuff I build, do you think it’d be OK to upload a picture or two, the OpenSCAD code, a brief description, and a pointer back here “for more details”? That would be a lot like link whoring, if I were actually making money off this blog…

      Given that I’ve never had much success building stuff directly from Other People’s STL, I’m loathe to inflict mine on them. Opinion needed: what works for you?

  3. #5 by Brian on 2011-10-15 - 17:43

    To do what you say as link W is probably the best use – Because…. You don’t HOG their space, you give a good representation, you supply code, *.stl, a nice blurb so others that are fast and creative can duplicate or start to get into what you have done. If there is appreciable research materials, test results and detailed step-by-steps with videos and, yada, yada, yadda – then on your blog you spill all the stuff with the mess, the trials and pains, resources, costs, etc,. It is what others effectively do with their code repositories and masses of files. That is IF you are not —- SELLING!

    Give what people can use – If they want to visit, hang out and enjoy the full meal then place the link to your blog. Then you do not have to —- Yawn…. take a nap.

  4. #6 by Brent Crosby on 2011-10-15 - 20:39

    ” . . . do you think it’d be OK to upload a picture or two, the OpenSCAD code, a brief description, and a pointer back here “for more details”?”

    Yes. Of course.Thingiverse is easy that way. I see cool stuff you make and think it would be good to spread that love ;)

  1. Improved Alignment Pin Hole for Split 3D Prints | The Smell of Molten Projects in the Morning