diff --git a/horizontal_angle_bracket.scad b/horizontal_angle_bracket.scad new file mode 100644 index 0000000..86f0286 --- /dev/null +++ b/horizontal_angle_bracket.scad @@ -0,0 +1,92 @@ +$fn=33; + +height=40; +hwidth=40; +thickness=5; + +vthickness=20; +vwidth=40.3; +vheight=80; + +M3HoleDiam=3.4; + +holedistance=10; + +horizontalcenterholes=true; + +difference() { + frame(); + holes(); +} + +module frame(){ + // left tile + cube([hwidth,thickness,height]); + translate([0,thickness,0]) sidetriangle(); + translate([0,thickness,height - thickness]) sidetriangle(); + + // left to back tile + translate([hwidth,0,0]) cube([thickness, vthickness, height]); + + // left triangle + translate([hwidth,thickness,height]) rotate([90, 0, 90]) middletriangle(); + + // covers upper edge of above + translate([hwidth, vthickness, 0]) cube([vwidth + thickness * 2, thickness, vheight]); + +// right to back tile + translate([hwidth + vwidth + thickness,0,0]) cube([thickness, vthickness, height]); + + // right triangle + translate([hwidth + vwidth + thickness,thickness,height]) rotate([90, 0, 90]) middletriangle(); + +// right tile + translate([hwidth + vwidth + thickness * 2, 0, 0]) cube([hwidth,thickness,height]); + + translate([hwidth * 2 + vwidth + thickness * 2,thickness,thickness]) rotate([0, 180,0 ]) sidetriangle(); + translate([hwidth * 2 + vwidth + thickness * 2,thickness,height]) rotate([0, 180,0 ]) sidetriangle(); + +} + +module middletriangle(){ + linear_extrude(thickness) polygon([[0,0], [vthickness-thickness, 0], [vthickness-thickness, vheight-height]]); +} + +module sidetriangle() { + linear_extrude(5) polygon([[0,0], [hwidth, 0], [hwidth, vthickness]]); +} + +module holes() { + // left holes + leftholes(); + + // right holes + translate([hwidth + vwidth + thickness * 2,0,0]) leftholes(); + + // center holes + translate([hwidth + thickness,vthickness,0]) centerholes(); +} + +module leftholes(){ + translate([holedistance, 0, holedistance]) XM3Hole(); + translate([hwidth - holedistance, 0, holedistance]) XM3Hole(); + translate([holedistance, 0, height - holedistance]) XM3Hole(); + translate([hwidth - holedistance, 0, height - holedistance]) XM3Hole(); +} + +module centerholes() { + translate([holedistance, 0, holedistance]) XM3Hole(); + translate([vwidth - holedistance, 0, holedistance]) XM3Hole(); + translate([holedistance, 0, vheight - holedistance]) XM3Hole(); + translate([vwidth - holedistance, 0, vheight - holedistance]) XM3Hole(); + + if(horizontalcenterholes){ + // center holes + translate([vwidth - holedistance, 0, vheight / 2]) XM3Hole(); + translate([holedistance, 0, vheight / 2]) XM3Hole(); + } +} + +module XM3Hole() { + rotate([270,0,0])cylinder(h=thickness, d=M3HoleDiam); +} \ No newline at end of file