Initial import WIP
This commit is contained in:
100
headmount.scad
Normal file
100
headmount.scad
Normal file
@@ -0,0 +1,100 @@
|
||||
/* */
|
||||
include <BOSL/constants.scad>
|
||||
include <BOSL/shapes.scad>
|
||||
include <BOSL/transforms.scad>
|
||||
include <inserts/inserts.scad>
|
||||
|
||||
/* [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();
|
||||
Reference in New Issue
Block a user