module linkage(length) { width=4; height=3; capHeight=4; holeRad = 0.6; difference() { union() { translate([0,-width/2,0]) { cube([length,width,height]); } cylinder(h=capHeight,r=width/2, $fn=100); translate([length,0,0]) { cylinder(h=capHeight,r=width/2, $fn=100); } } translate([ 0,0,-.1]) { cylinder(h=capHeight+.2,r=holeRad, $fn=100); } translate([length,0,-.1]) { cylinder(h=capHeight+.2,r=holeRad, $fn=100); } } } //len = 15; // crank arm //len = 39.35; // EF and BH //len = 50; // CD //len = 61.9; // CH //linkage(len); // BED //difference() //{ // union() // { // translate([-29,0,0]) { linkage(55.8); } // translate([0,-5,0]) { rotate(90,[0,0,1]) { linkage(5+29.8); } } // } // translate([-5,-10-2,-2]) { cube([10,10,10]); } //} // FHG difference() { union() { translate([-24.8,0,0]) { linkage(65.7-2); } translate([0,-5,0]) { rotate(90,[0,0,1]) { linkage(5+27); } } } translate([-5,-10-2,-2]) { cube([10,10,10]); } }