Files
drybox-ng/pc4m10.scad
2024-03-18 18:02:05 -04:00

59 lines
1.4 KiB
OpenSCAD

/* */
include <BOSL/shapes.scad>
include <BOSL/transforms.scad>
include <BOSL/threading.scad>
PART=""; // [inner, clear, part]
SEAT_DEPTH=3.50;
SEAT_DIAMETER=6.30;
SEAT_HOLE=3;
/* [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 pc4M10_inner(back_h=13, back_d = 12, orient=ORIENT_Z, align=V_CENTER) {
orient_and_align([back_d,back_d,5.82+back_h], orig_align=V_BOTTOM, orient=orient, align=align) {
difference() {
union() {
threaded_rod(
d=9.728,
l=5.81,
pitch=.907,
internal=true,
align=V_BOTTOM
);
}
down(5.82)difference() {
cyl(d=SEAT_DIAMETER, h=SEAT_DEPTH, align=V_TOP);
cyl(d=SEAT_HOLE, h=SEAT_DEPTH+.01, align=V_TOP);
}
}
down(5.81)cyl(d1=back_d,d2=SEAT_HOLE,h=back_h+.02, align=V_BOTTOM);
}
}
module pc4M10(cd = 12, h=18.8, orient=ORIENT_Z, align=V_CENTER) {
orient_and_align([12,12,18.8],orient=orient, align=align, orig_orient=ORIENT_ZNEG)
down(h/2)difference() {
up(.01)cyl(d=cd,h=h, align=V_TOP);
pc4M10_inner(align=V_TOP);
}
}
module pc4M10_clear(cd = 12, extra=15, orient=ORIENT_Z, align=V_CENTER) {
orient_and_align([12,12,extra+18.8],orient=orient, align=align, orig_orient=ORIENT_ZNEG)
cyl(d=cd-.01, h=extra+18.8);
}
if (PART == "clear") pc4M10_clear(align=V_TOP);
if (PART == "part") pc4M10(align=V_TOP);