diff --git a/intval_alt.scad b/intval_alt.scad new file mode 100644 index 0000000..2906f6e --- /dev/null +++ b/intval_alt.scad @@ -0,0 +1,374 @@ +BODY_X = 135; +BODY_Y = 140; +BODY_Z = 68; +BOLEX_X = BODY_X; +BOLEX_Y = BODY_Y; +BOLEX_Z = BODY_Z; + +STEPPER_W = 42.5; +STEPPER_VOID_D = 22.5; +STEPPER_H = 8; +STEPPER_THICKNESS = 5; +STEPPER_BOLTS = 21.6; +STEPPER_CORNER = 60.1; +STEPPER_BOTTOM = 6; + +PANEL_Z = 3; +PANEL_X = BOLEX_X; +PANEL_Y = 96; + +PANEL_OFFSET_Z = 42; +PANEL_OFFSET_X = 0; +PANEL_OFFSET_Y = 20; + +FRONT_SPACING_Z = 64; + +SHAFT_POSITION_X = (BOLEX_X / 2) - 25.5; +SHAFT_POSITION_Y = (BOLEX_Y / 2) - 47.6; + +module rounded_cube (cube_arr = [1, 1, 1], d = 0, center = false) { + off_x = 0; + off_y = 0; + r = d/2; + union () { + cube([cube_arr[0] - d, cube_arr[1], cube_arr[2]], center = center); + cube([cube_arr[0], cube_arr[1] - d, cube_arr[2]], center = center); + translate ([1 * (cube_arr[0] / 2) - r , 1 * (cube_arr[1] / 2)- r, 0]) cylinder(r = r, h = cube_arr[2], center = center); + translate ([-1 * (cube_arr[0] / 2) + r, -1 * (cube_arr[1] / 2) + r, 0]) cylinder(r = r, h = cube_arr[2], center = center); + translate ([1 * (cube_arr[0] / 2) - r, -1 * (cube_arr[1] / 2) + r, 0]) cylinder(r = r, h = cube_arr[2], center = center); + translate ([-1 * (cube_arr[0] / 2) + r, 1 * (cube_arr[1] / 2)- r, 0]) cylinder(r = r, h = cube_arr[2], center = center); + } +} + +module panel () { + difference () { + rounded_cube([PANEL_X, PANEL_Y, PANEL_Z], d = 8, center = true); + //stepper void + translate([0 , -PANEL_OFFSET_Y, 0]) { + translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, 0]) stepper_void(); + } + //arduino void + translate([0 , -PANEL_OFFSET_Y, 0]) translate([-20, 15, 20]) arduino(); + //window for frame counter + translate([(PANEL_X / 2) - 32, (PANEL_Y / 2) - 8, 0]) cube([16, 16, 4], center = true); + //front supports + translate([56.8, (FRONT_SPACING_Z / 2) + 2.1, 0]) cylinder(r = 5 / 2, h = 16, center = true); + translate([56.8, (FRONT_SPACING_Z / 2) + 2 - FRONT_SPACING_Z, 0]) cylinder(r = 5 / 2, h = 16, center = true); + + } + +} + + +//mothballed, mount stepper directly to board +/*module stepper_mount () { + $fn = 60; + difference () { + rounded_cube([STEPPER_W + (STEPPER_THICKNESS * 2), STEPPER_W + (STEPPER_THICKNESS * 2), STEPPER_H + STEPPER_BOTTOM], d = 8, center = true); + translate([0, 0, STEPPER_BOTTOM / 2 + 0.1]) { + difference() { + cube([STEPPER_W, STEPPER_W, STEPPER_H], center = true); + for (i = [0:4]) { + rotate([0, 0, 45 + (i * (360 / 4))]) { + translate([STEPPER_CORNER / 2, 0, 0]) cube([3, 3, STEPPER_H * 2], center = true); + } + } + } + } + for (i = [0:4]) { + rotate([0, 0, 45 + (i * (360 / 4))]) { + translate([STEPPER_BOLTS, 0, 0]) { + cylinder(r = 1.5, h = 20, center = true); + translate([0, 0, -6]) cylinder(r = 5.6 / 2, h = 3, center = true); + } + } + } + //disk void + translate([0, 0, -1.9]) cylinder(r = STEPPER_VOID_D/ 2, h = 2, center = true, fn = 200); + cylinder(r = 5.5 / 2, h = 20, center = true); + } + +}*/ + +module stepper_void (H = 10) { + //$fn = 50; + for (i = [0:4]) { + rotate([0, 0, 45 + (i * (360 / 4))]) { + translate([STEPPER_BOLTS, 0, 0]) { + cylinder(r = 1.5, h = 20, center = true); + //translate([0, 0, -6]) cylinder(r = 5.6 / 2, h = H, center = true); + } + } + } + //disk void + translate([0, 0, -1.9]) cylinder(r = STEPPER_VOID_D/ 2, h = H, center = true, fn = 200); + cylinder(r = 5.5 / 2, h = 20, center = true, $fn = 100); +} + +module mount_base () { + rounded_cube([STEPPER_W + (STEPPER_THICKNESS * 2), STEPPER_W + (STEPPER_THICKNESS * 2), 6], d = 8, center = true); + //stepper mount +} + +module one_to_eight_shaft () { + //$fn = 60; + H = 4; + BAR = 4.98 - 3.66; + BAR_W = 1.34; + difference () { + cylinder(r = 9.11 / 2, h = H, center = true); + cylinder(r = 7.16 / 2, h = H + 1, center = true); + } + cylinder(r = 3 / 2, h = H, center = true); + rotate([0, 90, 0]) cylinder(r = BAR_W / 2, h = H, center = true); +} + +module key () { + //$fn = 60; + BODY = 16; + OD = 7.16 - .15; + ID = 3.85 + .15; + H = 5; + BAR = 4.98 - 3.66; + BAR_W = 1.34; + BEARING_ID = 8; + PAD = BODY; + SHAFT_D = 5; + SHAFT_H = 18; + + difference () { + cylinder(r = OD / 2, h = H, center = true); + cylinder(r = ID / 2, h = H, center = true); + translate([OD / 2, 0, -(5 / 2) + ((BAR + .15) / 2)]) cube([OD + 1, BAR_W + .15, BAR + .15], center = true); + } + + translate([0, 0, 4]) cylinder(r2 = PAD / 2, r1 = BEARING_ID / 2, h = 4, center = true); + + translate([0, 0, 14 - 0.02]) { + difference() { + cylinder(r = BODY / 2, h = BODY, center = true); + + translate([0, 0, 1.5]) difference(){ + cylinder(r = SHAFT_D / 2 , h = SHAFT_H, center = true); + translate([0, (SHAFT_D / 2) + (4.6 / 2), 0]) cube([SHAFT_D, SHAFT_D, SHAFT_H + 1], center = true); + } + translate([0, 5, 2]) { + rotate([90, 0, 0]) { + cylinder(r = 2.6 /2, h = 10, center = true); + translate([0, 0, -2.5]) cylinder(r = 5.75 / 2, h = 4, center =true); + } + } + } + } + +} + +module bolex () { + cube([BODY_X, BODY_Y, BODY_Z], center = true); + //1:8 shaft + color("red") translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, (BOLEX_Z / 2) + 2]) one_to_eight_shaft(); + //translate([0, 0, 50]) key(); +} + +module arduino () { + X = 53.5; + Y = 68.75; + Z = 22.5; + cube([X, Y, Z], center = true); + translate ([-27, -39, 0]) { + translate([ 2.54, 15.24 , 0]) cylinder(r = 3.5 / 2, h = 100, center = true); + translate([ 17.78, 66.04 , 0]) cylinder(r = 3.5 / 2, h = 100, center = true); + translate([ 45.72, 66.04 ,0]) cylinder(r = 3.5 / 2, h = 100, center = true); + translate([ 50.8, 13.97 ,0]) cylinder(r = 3.5 / 2, h = 100, center = true); + + //cylinder(r = 3.5 / 2, h = 100, center = true); + } +} + +module stepper () { + SHAFT_D = 5; + SHAFT_H = 22.5; + H = 32.76; + + cube([STEPPER_W, STEPPER_W, H], center = true); + for (i = [0:4]) { + rotate([0, 0, 45 + (i * (360 / 4))]) { + translate([STEPPER_BOLTS, 0, 0]) { + cylinder(r = 1.5, h = 20, center = true); + translate([0, 0, -6]) cylinder(r = 5.6 / 2, h = H, center = true); + } + } + } + //disk void + translate([0, 0, -1.9]) cylinder(r = STEPPER_VOID_D/ 2, h = H, center = true, fn = 200); + cylinder(r = 5.5 / 2, h = 20, center = true, $fn = 100); + translate([0,0,-(H / 2) - (SHAFT_H / 2) - 1.9]) difference(){ + cylinder(r = SHAFT_D / 2 , h = SHAFT_H, center = true); + translate([0, (SHAFT_D / 2) + (4.6 / 2), 0]) cube([SHAFT_D, SHAFT_D, SHAFT_H + 1], center = true); + } +} + +module cross_bar () { + W = 170; + cube([7, W, 40], center = true); +} + +module back_support () { + A = 27; + B = 33; + difference() { + translate([2, 0, 0]) rotate([90, 0, 0]) { + //rounded_cube([32 , 57, 18], d = 6, center = true); + union () { + translate([0, -(57 / 2) + (A / 2), 0]) rounded_cube([32, A, 18], d = 6, center = true); + translate([(32 / 2) - 8, (57 / 2) - (B / 2) , 0]) rounded_cube([18, B, 18], d = 6, center = true); + } + } + //void for panel + translate([15, 0, 23.5]) cube([20, 40, 3.1], center = true); + translate([13, 0, -37]) cube([32 , 18 + 1, 57], center = true); + translate([25, 0, -10]) cube([32 , 18 + 1, 57], center = true); + translate([.3, 0, -18.5]) rotate([0, 90, 0]) { + cylinder(r = 12.2 / 2, h = 20, center = true); + cylinder(r = 5 / 2, h = 50, center = true); + translate([0, 0, -11]) cylinder(r = 8.9 / 2, h = 3.5, center = true, $fn = 6); + } + //top bolt + translate([13.5, 0, 29]) cylinder(r = 5 / 2, h = 25, center = true); + } + +} + +module back_clamp () { + difference () { + intersection () { + cube([20, 75, 8], center = true); + union () { + cube([20, 65, 10], center = true); + translate([0, 65 / 2, 3.5]) rotate([0, 90, 0]) cylinder(r = 7.5, h =20, center = true, $fn = 60); + translate([0, -65 / 2, 3.5]) rotate([0, 90, 0]) cylinder(r = 7.5, h =20, center = true, $fn = 60); + } + } + } + translate([0, 50 / 2, 6]) { + difference() { + cylinder(r = 12 / 2, h = 10, center = true); + cylinder(r = 5 / 2, h = 10 + 1, center = true); + } + } + + translate([0, -50 / 2, 6]) { + difference () { + cylinder(r = 12 / 2, h = 10, center = true); + cylinder(r = 5 / 2, h = 10 + 1, center = true); + } + } + +} + +module front_support() { + difference () { + translate([-2.50, 0, 0]) rotate([90, 0, 0]) union() { + //rounded_cube([45, 70, 18], d = 6, center = true); + translate([0, -(70 / 2) + (42 / 2), 0])rounded_cube([45, 42, 18], d = 6, center = true); + translate([0, (70 / 2) - (35 / 2), 0])rounded_cube([45, 35, 18], d = 6, center = true); + } + translate([-12.5, 0, -11]) rotate([90, 0, 0]) { + difference() { + cube([40, 70, 25], center = true); + translate([0, 43, 0]) cube([40, 70, 25], center = true); + } + } + //void for panel + translate([-15, 0, 29]) cube([20, 40, 3.1], center = true); + //top bolt + translate([-16, 0, 29]) cylinder(r = 5 / 2, h = 25, center = true); + //bolt shaft and hex + translate([10, 0, -25]) rotate([0, 90, 0]) { + cylinder(r = 5 / 2, h = 26, center = true); + translate([0, 0, 0]) cylinder(r = 12.2 / 2, h = 10, center =true); + translate([0, 0, 6.5]) cylinder(r = 8.9 / 2, h = 3.5, center = true, $fn = 6); + } + //void for shelf + translate([17, 0, 25]) rotate([90, 0, 0]) rounded_cube([30, 35, 19], d = 6, center = true); + translate([-25, 0, 5]) rotate([90, 0, 0]) rounded_cube([30, 35, 19], d = 6, center = true); + } + + + + //translate([-12, 0, 29]) cylinder(r = 5 / 2, h = 25, center = true); + translate([10, 0, -20]) rotate([0, 90, 0]) { + //cylinder(r = 5 / 2, h = 26, center = true); + //translate([0, 0, 0]) cylinder(r = 12 / 2, h = 10, center =true); + //translate([0, 0, 5]) cylinder(r = 8.9 / 2, h = 3.5, center = true, $fn = 6); + } +} + +module front_clamp () { + //$fn = 60; + D = 24 + (2.16-1.53); + H = 3; + D2 = 30; + H2 = 6; + difference () { + union () { + cylinder(r = D / 2, h = H, center = true); + translate([0, 0, -(H / 2) - (H2 / 2)]) cylinder(r = D2 / 2, h = H2, center = true); + } + translate([0, 0, -1.5 - 6]) cylinder(r = 5 / 2, h = 6, center = true); + + } + translate([0, 0, -10]) { + difference () { + cylinder(r = 12 / 2, h = 10, center =true); + + translate([0, 0, 0]) cylinder(r = 5 / 2, h = 16, center = true); + } + } +} + +module center_stand () { + cylinder(r = 10 / 2, h = 31, center = true); + translate([0, 0, (31 / 2) + 2]) cylinder(r = 8 / 2, h = 4, center = true); + translate([0, 0, (31 / 2) - 2]) cylinder(r = 16 / 2, h = 4, center = true); + translate([0, 0, -(31 / 2) + 2]) cylinder(r = 16 / 2, h = 4, center = true); +} + +translate([17, -6, 25]) center_stand(); + +translate([0, 0, -24]) bolex(); +translate([(170 / 2) - (147.3 - 135), (BOLEX_Y / 2) - 47.8, -12]) { + //translate([0, FRONT_SPACING_Z / 2, 0]) rotate([0, -90, 0]) front_clamp(); + translate([0, -FRONT_SPACING_Z / 2, 0]) rotate([0, -90, 0]) front_clamp(); +} + //translate([0, 0, 10]) rotate([0, 90, 0]) cross_bar(); + +/*translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, 12]) difference() { + key(); + translate([50, 0, 0]) cube([100, 100, 100], center = true); +}*/ +translate([PANEL_OFFSET_X, PANEL_OFFSET_Y, PANEL_OFFSET_Z]) panel(); +//translate([SHAFT_POSITION_X, SHAFT_POSITION_Y, 60]) stepper(); +//mount_base(); +//translate([-20, 15, 55]) arduino(); +translate([-5, 20, 63]) color([0, 0, 1], 0.2) difference () { + cube([96, 96, 40], center = true); + translate([0, 0, -3]) cube([96 - 6, 96 - 6, 40 - 3], center = true); +} +translate([(170 / 2) - (147.3 - 135), -10, 13]) { + //difference () { + front_support(); + //translate([0, 50, 0]) cube([100, 100, 200], center = true); + //} +} +translate([(170 / 2) - (147.3 - 135), -10 + FRONT_SPACING_Z , 13]) front_support(); +//translate([0, 20, 50],) cylinder(r = 5, h = 28, center = true); + +translate([-(170 / 2) + (147.3 - 135) + 1.5, 20, 0]) rotate([0, -90, 0]) back_clamp(); +translate([-(170 / 2) + (147.3 - 135), (BODY_Y / 2) - 25 , 18.5]) back_support(); +translate([-(170 / 2) + (147.3 - 135), (BODY_Y / 2) - 25 - 50 , 18.5]){ + difference () { + back_support(); + translate([0, 50, 0]) cube([100, 100, 200], center = true); + } +} \ No newline at end of file diff --git a/modules.scad b/modules.scad new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/modules.scad @@ -0,0 +1 @@ +