Thingiverse link: http://www.thingiverse.com/thing:440001
Settings: We optimized this design for printing on a Replicator 2 with .3mm layer height and no raft, no supports. If your printer is different then you may need different clearances in your model. You can use the Thingiverse link to open the model in Customizer and set your own side length, border width, hinge clearance, and snap tolerance.
Technical notes, platform/raft edition: These hinge/snap net models print best without a raft. You can print them with a raft, but it will take 50% as long and then another 25% longer for you to peel off the raft bits. (Note that although you can print these with rafts if for some reason you want/have to, you cannot print these models with supports or the hinges will not work correctly.) If you're printing on an acrylic build plate with PLA, like the standard plate that comes with the MakerBot Replicator 2, then you have an excellent build surface for printing without a raft. If you're printing with a glass platform on the Replicator, or with some other printers, then you may not be able to print without a raft. For me at least, PLA never sticks to the glass, and I need glass+tape+raft to make prints work on the glass build plate (see Day 214). In any case, make sure your build platform is very level before you try printing a large hinge/net model, or the outer pieces will be deformed and hinges and snaps may fail.
Technical notes, OpenSCAD edition: Using the same hinge, snap, poly_maker, and attach modules as on Day 344, we assembled the tetrahedron as follows:
// center triangle
union(){
poly_maker(sides=3);
attach(type=2,side=1,sides=3);
attach(type=2,side=2,sides=3);
attach(type=1,side=3,sides=3);
}
// next triangle
translate([ (length/tan(180/3)+jump)*cos(180/3),
(length/tan(180/3)+jump)*sin(180/3),
0])
rotate(180/3,[0,0,1])
union(){
poly_maker(sides=3);
attach(type=2,side=2,sides=3);
attach(type=1,side=3,sides=3);
}
// next next triangle
translate([ 0,
2*(length/tan(180/3)+jump)*sin(180/3),
0])
rotate(2*180/3,[0,0,1])
union(){
poly_maker(sides=3);
attach(type=1,side=2,sides=3);
attach(type=2,side=3,sides=3);
}
// next next next triangle
translate([ (length/tan(180/3)+jump)*cos(180/3),
3*(length/tan(180/3)+jump)*sin(180/3),
0])
rotate(3*180/3,[0,0,1])
union(){
poly_maker(sides=3);
attach(type=2,side=1,sides=3);
attach(type=2,side=2,sides=3);
}