79 lines
2.3 KiB
OpenSCAD
79 lines
2.3 KiB
OpenSCAD
|
|
/* */
|
||
|
|
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 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();
|