git.haldean.org h1a / master base.scad
master

Tree @master (Download .tar.gz)

base.scad @masterraw · history · blame

include <dims.scad>

bid = 149;
bod = 7.75 * 25.4;
bh = 200;
taper = 20;
top_thick = 25.4 * 2;
armw = 50;
armh = 15;
armnotch = 5;
arms = 3;
otod_pad = 1.8;

module shell() {
    difference() {
        cylinder(h=bh, r1=bod/2, r2=bod/2-taper);
        translate([0, 0, -2*eps]) cylinder(h=bh - top_thick, r=bid/2);
    }
}

difference() {
    union() {
        intersection() {
            for (i = [0 : arms-1]) {
                rotate([0, 0, i * 360/arms]) {
                    difference() {
                        translate([-armw/2, 0, -armh + armnotch]) cube([armw, bod/2, armh]);
                        for (i = [2 : 5])
                            translate([i % 2 == 0 ? 6 : -6, (i+4.5) * (bid/22), -armh])
                                cylinder(h=2*armh, r=3.5);
                    }
                }
            }
            translate([0, 0, -2 * armh + armnotch]) cylinder(h=armh * 2, r=bod/2-1);
        }
        translate([0, 0, -armh + armnotch]) {
            difference() {
                cylinder(h=armh*2, r=otod/2+wall_thickness + otod_pad);
                translate([0, 0, armh + 2*eps]) cylinder(h=armh + 2*eps, r=(otod + otod_pad)/2);
                translate([-channel_w/2, 0, armh+2*eps]) cube([channel_w, otod+eps, armh]);
            }
        }
    }
    shell();
}