diff --git a/common.scad b/common.scad index a14fa34..9782ad3 100644 --- a/common.scad +++ b/common.scad @@ -1,3 +1,5 @@ +IN = 25.4; + echo("common.scad - rounded_cube()"); module rounded_cube (cube_arr = [1, 1, 1], d = 0, center = false) { diff --git a/daylight_spool_mount.scad b/daylight_spool_mount.scad index db10c98..687be43 100644 --- a/daylight_spool_mount.scad +++ b/daylight_spool_mount.scad @@ -1,26 +1,29 @@ SQUARE_INNER = 7.8; time = 0; -module reel_holder (top = true, base = true) { +module reel_holder (top = true, base = true, height = 18.5) { $fn = 60; + topHeight = 3.5; difference(){ translate([0, 0, -1.5]) cube([SQUARE_INNER, SQUARE_INNER, 21.5], center= true); for (i = [0:4]) { rotate([0, 0, (i * 90)]){ - translate([(SQUARE_INNER / 2) + .4, (SQUARE_INNER / 2) + .4, 18.5 / 2]) rotate([0, -15, 45]) cube([2.5, SQUARE_INNER, SQUARE_INNER], center = true); + translate([(SQUARE_INNER / 2) + .4, (SQUARE_INNER / 2) + .4, height / 2]) rotate([0, -15, 45]) cube([2.5, SQUARE_INNER, SQUARE_INNER], center = true); } } } - difference () { - union() { - translate([0, 0, (18.5 / 2) + (3.5 / 2)]) cylinder(r = SQUARE_INNER / 2, h = 3.5, center = true); - translate([0, 0, (18.5 / 2) + (7.5 / 2)]) sphere(SQUARE_INNER / 2); + if (top) { + difference () { + union() { + translate([0, 0, (height / 2) + (topHeight / 2)]) cylinder(r = SQUARE_INNER / 2, h = topHeight, center = true); + translate([0, 0, (height / 2) + (7.5 / 2)]) sphere(SQUARE_INNER / 2); + } + translate ([0, 0, (height / 2) + 7.5]) cube([10, 10, 2], center = true); } - translate ([0, 0, (18.5 / 2) + 7.5]) cube([10, 10, 2], center = true); } if (base) { difference () { - translate([0, 0, -(18.5/ 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true); + translate([0, 0, -(height / 2) - (3 / 2) - 3]) cylinder(r = 16 /2, h = 3, center = true); //translate([0, 0, -14.3]) cube([4, 4, 2], center = true); //notch difference() { translate([0, 0, -14.3]) cylinder(r = 8 / 2, h = 2, center = true); diff --git a/takeup.scad b/takeup.scad index e43670c..32a9866 100755 --- a/takeup.scad +++ b/takeup.scad @@ -13,6 +13,8 @@ MOTOR_SHAFT_HOBBLE = 1; MOTOR_MOUNT_X = 32.5; MOTOR_MOUNT_Y = 17.5; +M4 = 4.1; + module hex (diag = 10, h = 1) { cylinder(r = diag / 2, h = h, center = true, $fn = 6); } @@ -96,7 +98,8 @@ module slip_coupling (MAGNET_H = 2.5) { } module daylight_spool_insert () { - translate([0, 0, 14]) reel_holder(true, false); + translate([0, 0, 15.9]) reel_holder(false, false); + translate([0, 0, 3.25]) cylinder(r = R(18), h = 1.5, center = true, $fn = 240); union () { cube([25 - .4, 10 - .4, 5], center = true); cube([10 - .4, 25 - .4, 5], center = true); @@ -185,6 +188,57 @@ module minimal_mount () { } } +module m4_nut (H = 3.1) { + cylinder(r = R(8.1), h = 3.1, center = true, $fn = 6); +} + +module daylight_spool_insert_reinforced () { + //internally Hex M4 40mm + difference () { + daylight_spool_insert(); + cylinder(r = R(M4), h = 100, center = true, $fn = 60); + translate([0, 0, -1]) m4_nut(); + } +} + +module daylight_spool_insert_reinforced_nut () { + D = 30; + H = 6; + BUMPS = 60; + BUMP_D = 1.2; + difference() { + union () { + cylinder(r = R(D), h = H, center = true, $fn = 120); + for (i = [0 : BUMPS - 1]) { + rotate([0, 0, i * (360 / BUMPS)]) { + translate([R(D) - .1, 0, 0]) cylinder(r = R(BUMP_D), h = H, center = true, $fn = 20); + } + } + } + //m4 + translate([0 , 0, (H / 2) - (3.1 / 2) + 0.01]) m4_nut(); + cylinder(r = R(M4), h = 100, center = true, $fn = 60); + //under void + translate([0, 0, -4]) cylinder(r = R(15), h = H, center = true, $fn = 120); + //top void + translate([0, 0, 4]) difference () { + cylinder(r = R(25), h = H, center = true, $fn = 120); + cylinder(r = R(12), h = H, center = true, $fn = 120); + } + //bevels + translate([0, 0, (H / 2) - (1 / 2)]) difference () { + cylinder(r = R(D) + 5, h = 1, center = true, $fn = 240); + cylinder(r2 = R(D), r1 = R(D) + 1, h = 1, center = true, $fn = 240); + } + + translate([0, 0, (H / 2) - (1 / 2)]) difference () { + cylinder(r = R(D) + 5, h = 1, center = true, $fn = 240); + cylinder(r2 = R(D), r1 = R(D) + 1, h = 1, center = true, $fn = 240); + } + } + +} + module debug_assembled () { translate([(46 / 2) - 14.5, 0, 0]) rotate([180, 0, 0]) geared_motor(); color("green") translate([0, 0, 11]) mount_plate(); @@ -196,7 +250,7 @@ module debug_assembled () { color("red") translate([0, 0, 34]) daylight_spool_insert(); } -PART = "mount_plate"; +PART = "daylight_spool_insert_reinforced_nut"; if (PART == "slip_coupling") { slip_coupling(); @@ -209,6 +263,10 @@ if (PART == "slip_coupling") { daylight_spool_insert(); } else if (PART == "minimal_mount") { minimal_mount(); +} else if (PART == "daylight_spool_insert_reinforced") { + daylight_spool_insert_reinforced(); +} else if (PART == "daylight_spool_insert_reinforced_nut") { + daylight_spool_insert_reinforced_nut(); } else if (PART == "debug") { debug_assembled(); }