module reflect(axises) { children(); mirror(axises) children(); } socket_thickness = 10; rod_diameter = 17; screw_diameter = 6; screw_head_diameter = 12; screw_countersink = 6.5; $fn = 40; difference() { // base scale([4/3, 3/4, 1]) cylinder(r=rod_diameter, h=socket_thickness); // rod socket translate([0, rod_diameter/4, 0]) { cylinder(d=rod_diameter, h=socket_thickness); translate([-rod_diameter/2, 0, 0]) cube([rod_diameter, rod_diameter, socket_thickness]); } // screw holes reflect([1, 0, 0]) translate([rod_diameter*7/8, 0, 0]) { cylinder(d=screw_diameter, h=socket_thickness); translate([0, 0, socket_thickness-screw_countersink]) cylinder(d1=screw_diameter, d2=screw_head_diameter, h=screw_countersink); } }