commit a41550d4b21207dbd0000a2022ea89f14c1bf4b7 Author: Stephen J Carpenter Date: Mon Feb 3 16:45:08 2025 -0500 Initial import WIP diff --git a/bracket.scad b/bracket.scad new file mode 100644 index 0000000..cfb2868 --- /dev/null +++ b/bracket.scad @@ -0,0 +1,78 @@ +/* */ +include +include +include +include + +/* [Params] */ +platfoot_x = 50.44; +platfoot_y = 25.42; +headpost_x = 38.08; +headpost_y = 38.08; +footboard_y=19; +footboard_z=130; + +/* [Render Options] */ +render_fs=.4; +render_fn=0; +render_fa=.4; + +// Set Render Options +$fs= ($preview) ? $fs : render_fs; +$fn= ($preview) ? $fn : render_fn; +$fa= ($preview) ? $fa : render_fa; + + +module platfoot(x=platfoot_x, y=platfoot_y, z=260, align=V_FRONT) { + cuboid([x,y,z], align=align); +} +module footboard(x=100, y=footboard_y, z=footboard_z, align=V_BACK+V_BOTTOM) { + cuboid([x,y,z], align=align); +} +module headpost(x=headpost_x, y=headpost_y, z=260, align=V_FRONT) { + cuboid([x,y,z], align=align); +} + +module screw_channel() { + back(19.2)cyl(d=6, h=10, orient=ORIENT_Y,align=V_FRONT); + back(9)cyl(d=3.5, h=100, orient=ORIENT_Y, align=V_FRONT); +} + +module head_rear() { + difference() { + back(footboard_y) cuboid([platfoot_x+2*12,headpost_y+footboard_y+4,95], fillet=3, edges=EDGES_BACK+EDGES_Y_ALL, align=V_FRONT+V_TOP); + footboard(); + headpost(y=2*headpost_y); + left(44)up(95/2)cuboid([50, 150,25]); // crossbar + // Screw Holes + right(40-10)up(95-10) screw_channel(); + right(40-10)up(95/2) screw_channel(); + right(40-10)up(10) screw_channel(); + left(40-10)up(95-10) screw_channel(); + left(40-10)up(10) screw_channel(); + } + fwd(10)up(95/2)right(40)rotate([90,0,-45])rotate_extrude(angle=360) left(18) circle(d=10); +} + +module head_front() { + difference() { + cuboid([platfoot_x+2*12,platfoot_y+footboard_y,95], fillet=3, edges=EDGES_FRONT+EDGES_Y_ALL, align=V_FRONT+V_TOP); + back(.01)platfoot(); + // Screw Holes + right(40-10)up(95-10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + right(40-10)up(95/2) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + right(40-10)up(10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + left(40-10)up(95-10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + left(40-10)up(10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + } +} +//fwd(headpost_y+4) head_front(); +//head_rear(); + + +//%footboard(); +//%headpost(); +//%fwd(headpost_y+4)platfoot(); + +fwd(2)head_front(); +back(2) rotate([-90,0,0]) fwd(footboard_y) head_rear(); diff --git a/headmount.scad b/headmount.scad new file mode 100644 index 0000000..5bdde1c --- /dev/null +++ b/headmount.scad @@ -0,0 +1,100 @@ +/* */ +include +include +include +include + +/* [Params] */ +platfoot_x = 50.44; +platfoot_y = 25.42; +headpost_x = 38.08; +headpost_y = 38.08; +footboard_y=19; +footboard_z=130; + +/* [Render Options] */ +render_fs=.4; +render_fn=0; +render_fa=.4; + +// Set Render Options +$fs= ($preview) ? $fs : render_fs; +$fn= ($preview) ? $fn : render_fn; +$fa= ($preview) ? $fa : render_fa; + + +module platfoot(x=platfoot_x, y=platfoot_y, z=260, align=V_FRONT) { + cuboid([x,y,z], align=align); +} +module footboard(x=100, y=footboard_y, z=footboard_z, align=V_BACK+V_BOTTOM) { + cuboid([x,y,z], align=align); +} +module headpost(x=headpost_x, y=headpost_y, z=260, align=V_FRONT) { + cuboid([x,y,z], align=align); +} + +module headcross(x=260, y=headpost_y, z=headpost_y, align=V_FRONT) { + cuboid([x,y,z], align=align); +} + +module screw_channel() { + back(19.2)cyl(d=6, h=10, orient=ORIENT_Y,align=V_FRONT); + back(9)cyl(d=3.5, h=100, orient=ORIENT_Y, align=V_FRONT); +} + +module head_rear() { + difference() { + back(footboard_y) cuboid([platfoot_x+2*12,headpost_y+footboard_y+4,95], fillet=3, edges=EDGES_BACK+EDGES_Y_ALL, align=V_FRONT+V_TOP); + footboard(); + headpost(y=2*headpost_y); + left(44)up(95/2)cuboid([50, 150,25]); // crossbar + // Screw Holes + right(40-10)up(95-10) screw_channel(); + right(40-10)up(95/2) screw_channel(); + right(40-10)up(10) screw_channel(); + left(40-10)up(95-10) screw_channel(); + left(40-10)up(10) screw_channel(); + } + fwd(10)up(95/2)right(40)rotate([90,0,-45])rotate_extrude(angle=360) left(18) circle(d=10); +} + +module head_front() { + difference() { + cuboid([platfoot_x+2*7,platfoot_y+footboard_y,95], fillet=3, edges=EDGES_FRONT+EDGES_Y_ALL, align=V_FRONT+V_TOP); + back(.01)platfoot(); + // Screw Holes + right(40-10)up(95-10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + right(40-10)up(95/2) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + right(40-10)up(10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + left(40-10)up(95-10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + left(40-10)up(10) rotate([-90,0,0]) rotate([0,0,180]) m4s_clear(bl=30, bz=-15, drop=true, sh=0); + } +} +//fwd(headpost_y+4) head_front(); +//head_rear(); + +module head_wall(orient=ORIENT_Z, align=V_FRONT+V_TOP) { + orient_and_align([headpost_x, footboard_y, 60], align=align, orient=orient) { + difference() { + cuboid([headpost_x,footboard_y,60], fillet=3, edges=EDGES_BACK+EDGES_Y_ALL); + // anchor hole + cyl(d=6.8, h=footboard_y/2+1, orient=ORIENT_Y, align=V_FRONT); + back(-.9)cyl(d=15, h=footboard_y/2+1, orient=ORIENT_Y, align=V_BACK); + // screw holes + up(15) right(.01+headpost_x/2)yrot(90) zrot(0) m4s_clear(bl=30, bz=-20, sh=0, drop=true); + down(15) right(.01+headpost_x/2)yrot(90) zrot(0) m4s_clear(bl=30, bz=-20, sh=0, drop=true); + up(15) left(.01+headpost_x/2)yrot(-90) zrot(0) m4s_clear(bl=30, bz=-20, sh=0, drop=true); + down(15) left(.01+headpost_x/2)yrot(-90) zrot(0) m4s_clear(bl=30, bz=-20, sh=0, drop=true); + } } +} + + +head_wall(orient=ORIENT_Y, align=V_CENTER); + +//%footboard(); +//%headpost(); +//%headcross(); +//%fwd(headpost_y+4)platfoot(); + +//fwd(2)head_front(); +//back(2) rotate([-90,0,0]) fwd(footboard_y) head_rear();