diff --git a/bracket.scad b/bracket.scad index 340a2bb..2659dd3 100644 --- a/bracket.scad +++ b/bracket.scad @@ -18,7 +18,7 @@ LegOff = 19; LegGap=4; /* [Render Options] */ -part=""; // [both, back, head_corner_rear, head_corner_front, foot_cross_front, foot_cross_rear, head_cross_front, head_cross_rear ] +part=""; // [both, back, head_corner_rear, head_corner_front, foot_corner_front, foot_corner_rear, head_cross_front, foot_cross_front, foot_cross_rear ] model = "none"; // ["none", "corner_leg", "center_leg"] plate = false; mate = false; @@ -81,6 +81,41 @@ module head_front() { } } +module foot_front() { + blockz= footcrossyz + 2*10; // 95; + difference() { + right(19/2-4)cuboid([platfoot_x+16+LegOff,platfoot_y+footboard_y,blockz], fillet=3, edges=EDGES_FRONT+EDGES_Y_ALL, align=V_FRONT+V_TOP); + back(.01)platfoot(); + // Screw Holes + rx= 5 + headpost_x/2; + bz = -40; + bl = 58 - bz; + up(blockz/2)zspread(n=3, l=blockz-10) + right(rx+LegOff) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=bl, bz=bz, drop=true, sh=0); + up(blockz/2)left(30) zspread(n=2, l=blockz-10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=bl, bz=bz, drop=true, sh=0); + } +} + +module foot_rear() { + z = footcrossyz + 2*10; + difference() { + union() { + left(19/2+4)back(footboard_y) cuboid([platfoot_x+16+19,headpost_y+footboard_y, z], fillet=3, edges=EDGES_BACK+EDGES_Y_ALL, align=V_FRONT+V_TOP); + fwd(10)up(z/2)right(40-4)rotate([90,0,-45])rotate_extrude(angle=360) left(18) circle(d=10); + } + footboard(); + headpost(y=2*headpost_y); + left(44)up(z/2)cuboid([50, 150, footcrossyz]); // crossbar + // Screw Holes + rx = 5 + headpost_x/2; + right(rx)up(z-5) screw_channel(); + right(rx)up(z/2) screw_channel(); + right(rx)up(5) screw_channel(); + left(50)up(z-5) screw_channel(); + left(50)up(5) screw_channel(); + } +} + module head_cross_rear() { difference() { cuboid([platmid_x+20, 25+10, 42], fillet=3,align=V_BACK); @@ -152,6 +187,15 @@ if (part == "head_cross_front") { rot = plate ? -90 : 0; xrot(rot) head_rear(); +} else if (part == "foot_corner_front") { + rot = plate ? -90 : 0; + xrot(rot) + foot_front(); +} else if (part == "foot_corner_rear") { + rot = plate ? -90 : 0; + xrot(rot) + foot_rear(); + if (mate) { fwd(headpost_x) left(19) %foot_front(); } } else if (part == "both") { fwd(platfoot_y+LegGap+13) left(LegOff)head_front(); head_rear();