l=90; l_bar=12.5; w=70; h=3; mt=h; $fn=100; hole_l=76.6; hole_w=61.72; hole_dia=4; arc_offset=-8; module square(){ difference(){ cube([l,w,mt],center=true); for (x = [-hole_l/2,+hole_l/2], y = [-hole_w/2,+hole_w/2]) translate([x,y,0]){ cylinder(r=hole_dia/2,h=h+0.2,center=true); translate([0,0,h-h/2])cylinder(r=hole_dia,h=h+0.2,center=true); } cube([l*0.85,w*0.75,mt+0.2],center=true); translate([l_bar,0,0])#cube([l,w+0.1,mt+0.2],center=true); //easier mounting bar } } module bracket(){ difference(){ rotate([90,0,0])cube([hole_l+mt*2,mt,hole_dia*2],center=true); for (x = [-hole_l/2,+hole_l/2]) translate([x,0,0]){ cylinder(r=hole_dia/2,h=h+0.2,center=true); // translate([0,0,h-h/2])cylinder(r=hole_dia,h=h+0.2,center=true); } } difference(){ rotate([90,0,0])translate([0,arc_offset,0])cylinder(h=hole_dia*2,r=hole_l/2-mt,center=true); rotate([90,0,0])translate([0,arc_offset,0])cylinder(h=hole_dia*2+0.1,r=hole_l/2-mt*1.5,center=true); translate([0,0,-l/4-mt/2])cube([l,hole_dia*2+0.1,l/2],center=true); } } translate([100,0,0])square(); //translate([0,mt/2,0])rotate([-90,0,0])bracket();