$fn = 40; height = 5; //hinge(); //end(); //plate(); clamp(); module clamp(){ difference(){ union(){ hull(){ cylinder(d=10,h=20); translate([-8,-5,10])rotate([-90,0,0])cylinder(d=8,h=10); } translate([0,-6.5,5])rotate([-90,0,0])cylinder(d=5,h=13); translate([0,-6.5,15])rotate([-90,0,0])cylinder(d=5,h=13); } cylinder(d=5,h=22); translate([-8,-6,10])rotate([-90,0,0])cylinder(d=3,h=12); translate([-8,-3,10])rotate([-90,45,0])cutout(); translate([-8,-3,10])rotate([-90,-45,0])cutout(); translate([0,-6.5,5])rotate([-90,0,0])cylinder(d=2.5,h=13); translate([0,-6.5,15])rotate([-90,0,0])cylinder(d=2.5,h=13); } } module cutout(){ union(){ cylinder(d=10,h=6); translate([-10,-5,0])cube([10,10,6]); } } module plate() { difference() { union() { hull() { translate([0, 0, 0])cylinder(d = 20, h = height); translate([0, 20, 0])cylinder(d = 20, h = height); translate([50, 0, 0])cylinder(d = 20, h = height); translate([50, 20, 0])cylinder(d = 20, h = height); translate([25, 40, 0])cylinder(d = 20, h = height); translate([25, 60, 0])cylinder(d = 20, h = height); } } translate([0, 0, -0.01])cylinder(d = 4.5, h = height + 0.02); translate([0, 20, -0.010])cylinder(d = 4.5, h = height + 0.02); translate([50, 0, -0.01])cylinder(d = 4.5, h = height + 0.02); translate([50, 20, -0.010])cylinder(d = 4.5, h = height + 0.02); translate([25, 40, -0.01])cylinder(d = 4.5, h = height + 0.02); translate([25, 60, -0.010])cylinder(d = 4.5, h = height + 0.02); // mounting holes translate([15, 10, 0])cylinder(d = 5, h = height + 0.01); translate([35, 10, 0])cylinder(d = 5, h = height + 0.01); translate([15, 30, 0])cylinder(d = 5, h = height + 0.01); translate([35, 30, 0])cylinder(d = 5, h = height + 0.01); translate([15, 10, 2])cylinder(d = 10, h = height + 0.01); translate([35, 10, 2])cylinder(d = 10, h = height + 0.01); translate([15, 30, 2])cylinder(d = 10, h = height + 0.01); translate([35, 30, 2])cylinder(d = 10, h = height + 0.01); // central shaft bearing translate([25, 20, 0])cylinder(d = 11, h = height + 0.01); // toy motor translate([25 + 17.5 / 2, -1, 0])cylinder(d = 3, h = height + 0.01); translate([25 - 17.5 / 2, -1, 0])cylinder(d = 3, h = height + 0.01); translate([25, 8, 0])cylinder(d = 4.3, h = height + 0.01); translate([25, 33, 0])cylinder(d = 3, h = height + 0.01); // profile translate([25, 0, 0])cylinder(d = 5, h = height + 0.01); } } module hinge() { difference() { hull() { cylinder(d = 20, h = 3); translate([20, 0, 0])cylinder(d = 20, h = 3); translate([10, -10, 12])rotate([-90, 0, 0])cylinder(d = 10, h = 20); } cylinder(d = 5.5, h = 20); translate([20, 0, 0])cylinder(d = 5.5, h = 20); hull() { translate([0, 0, 3])cylinder(d = 10, h = 20); translate([20, 0, 3])cylinder(d = 10, h = 20); } translate([10, -10, 12])rotate([-90, 0, 0])cylinder(d = 4.5, h = 20); } } module end() { difference() { hull() { cylinder(d = 10, h = 9.5); translate([0, 0, 4.75])rotate([0, 90, 0])cylinder(d = 8, h = 15); } cylinder(d = 5, h = 10); translate([4, 0, 4.75])rotate([0, 90, 0])cylinder(d = 5, h = 15); } }