$fn = $preview? 32 : 72; // arm 1 rotate([0,0,90]) arm1(); // arm 2 thinkness=3; width = 10; bore = 4; rotate([0,0,180]) { translate([0,0,thinkness]) arm2(); translate([0,0,-thinkness]) arm2(); } // arm 3 translate([-25,0,0]) rotate([0,0,90]) arm3(); // arm 4 translate([0,65,thinkness]) arm4(); translate([0,65,-thinkness]) arm4(); module arm(holes, width, thinkness, bore){ difference(){ hull(){ cylinder(h=thinkness, d=width,center=true); for(hole = holes){ translate([hole,0,0]) cylinder(h=thinkness, d=width,center=true); } } for(hole = holes){ translate([hole,0,0]) cylinder(h=thinkness*2, d=bore,center=true); } } } module arm1(){ arm([0,65],width=10, thinkness=3, bore=4); } module arm2(){ arm([0,25],width, thinkness, bore); } module arm3(){ arm([0,65],width=10, thinkness=3, bore=4); } module arm4(){ arm([-25,0,50], width, thinkness, bore); }