Friday, February 21, 2014

Day 179 - Tricolor Borromean rings

Yesterday we mentioned that you could print a three-color model of the Borromean rings by printing the rings separately and placing the first and second in and around the third right before it closed up. We did that today, using more elliptical rings to make the assembly easier:


STL file, horizontal ring: http://www.makerhome.blogspot.com/day179_borr_ellipse_piece12.stl
STL file, vertical ring: http://www.makerhome.blogspot.com/day179_borr_ellipse_piece3.stl
Thingiverse link: http://www.thingiverse.com/make:67200

Settings: MakerWare .3mm/low on a Replicator 2 with the first two rings laying flat with no support or raft, and the third ring printing vertically with both raft and support. We used the custom slicing profile from Day 110, which made a very thin one-layer sheet up the center of the interior of the vertical ring. When we added the first two rings near the end of the print, this support sheet had to come out, which led to a few stray threads in subsequent rows that had to be removed. Files for the horizontal and vertical files are separately here because in later models, the orientation of the third piece will be important.

Technical notes, OpenSCAD flavor: The code is very simple; much like it was for Day 178, but with a less circular function for the rings. Remove the comments for the piece you want to print.

// mathgrrl Borromean 
// thanks to kitwallace for tubify module!

// an ellipse
function f(t) = 
[ 25*cos(t),
 15*sin(t),
 0
];

module tubify(r,step,end) {
for (t=[0: step: end+step]) {
hull() {
translate(f(t)) sphere(r);
translate(f(t+step)) sphere(r);
       }
   }
};


////////////////////////////////////////////////////////////
// Borromean ellipses - all together
////////////////////////////////////////////////////////////

/*
// set faces
$fn=36;

// make the three rings
rotate([0,0,0]) rotate([45,45,0])
color("red") tubify(r=3.5,step=10,end=360);
rotate([0,0,120]) rotate([45,45,0])
color("yellow") tubify(r=3.5,step=10,end=360);
rotate([0,0,240]) rotate([45,45,0])
color("blue") tubify(r=3.5,step=10,end=360);
*/

////////////////////////////////////////////////////////////
// Borromean ellipses - one at a time
////////////////////////////////////////////////////////////

// set faces
$fn=36;

// ellipse ring
// print two of these
tubify(r=3.5,step=10,end=360);

// final ellipse ring
// print one standing up and pause to assemble
//rotate([0,90,0]) tubify(r=3.5,step=10,end=360);