$fn=50; //scale([1.4,1.4,1.4]){ translate([0,0,5]){ pin(); } translate([45,15,8]){ rotate([0,0,90]){ socket(); } } //} module socket(){ difference(){ union(){ translate([0,6.7,0]){ rotate([90,0,0]){ cylinder(r=7.5,h=3,center=true); } } translate([0,-6.7,0]){ rotate([90,0,0]){ cylinder(r=7.5,h=3,center=true); } } translate([0,-6.7,-4]){ cube([15,3,8],center=true); } translate([0,6.7,-4]){ cube([15,3,8],center=true); } translate([0,8,-8]){ difference(){ cylinder(r=7.5,h=2.5); translate([0,3.5,-1]){cylinder(r=2,h=5);} } } translate([0,-8,-8]){ difference(){ cylinder(r=7.5,h=2.5); translate([0,-3.5,-1]){cylinder(r=2,h=5);} } } translate([0,0,-6.5]){ cube([15,15,3],center=true); } } rotate([90,0,0]){ cylinder(r=5.4,h=32,center=true); } translate([2,0,5]){ rotate([0,20,0]){ cube([6,20,10],center=true); } } translate([-2,0,5]){ rotate([0,-20,0]){ cube([6,20,10],center=true); } } } } module pin(){ render(){ rotate([90,0,0]){ cylinder(r=5,h=16,center=true); } /*difference(){ sphere(r=15); translate([0,0,-22]){cube([20,20,20],center=true);} }*/ minkowski(){ translate([50,0,0]){ difference(){ cube([100,8,8],center=true); cube([92,7,9],center=true); } for(k=[0:16:80]){ translate([k-45,0,0]){ rotate([0,0,45]){ cube([1,10,8],center=true); } translate([8,0,0]){ rotate([0,0,-45]){ cube([1,10,8],center=true); } } } } } sphere(r=1); } translate([97,0,2]){ rotate([0,35,0]){ difference(){ cylinder(r=2,h=15); translate([0,0,5]){cylinder(r=1,h=20);} } } } } translate([3,0,5]){ rotate([0,-60,0]){ difference(){ cylinder(r=4,h=2); translate([0,0,-0.1]){cylinder(r=2,h=3);} } } } }