diff --git a/scad/50ft_v3/gnal_50ft.scad b/scad/50ft_v3/gnal_50ft.scad index c5cef0a..c89dd41 100644 --- a/scad/50ft_v3/gnal_50ft.scad +++ b/scad/50ft_v3/gnal_50ft.scad @@ -185,9 +185,16 @@ $fn = FN; module film_guide (rotations = 40, id = 45.55 - .5, spacing = 2.075, bottom = -2) { spiral(rotations, id, spacing, bottom, $fn); + //reinforce outer spiral + difference () { + spiral_reinforcement(208.9, spacing, -0.1, $fn); + translate([107.35, 6, 0]) cube([5, 15, 10], center = true); + } + } module gnal_stacking_spindle () { + OD = 10.5 + .3; IN_LEN = 21; LEN = 17.1; @@ -219,55 +226,7 @@ module gnal_stacking_spindle () { } } -module stacking () { - translate([0, 0, 72 + 72 + 36]) { - color("blue") gnal_spindle_top(); - } - translate([0, 0, 72 + 72]) rotate([0, 180, 0]) intersection () { - gnal_50ft_top(); - cylinder(r = 50 / 2, h = 50, center = true); - } - - translate([0, 0, 72 + 30]) { - color("blue") rotate([0, 180, 0]) gnal_spindle_bottom(); - } - - translate([0, 0, 72 + 36]) difference () { - cylinder(r = 50 / 2, h = 16, center = true); - cylinder(r = 22.5 / 2, h = 16 + 1, center = true); - } - - translate([0, 0, 36 + 30]) { - color("green") rotate([0, 180, 0]) gnal_stacking_spindle(); - } - - translate([0, 0, 72]) difference () { - cylinder(r = 50 / 2, h = 16, center = true); - cylinder(r = 22.5 / 2, h = 16 + 1, center = true); - } - - translate([0, 0, 30]) { - color("green") rotate([0, 180, 0]) gnal_stacking_spindle(); - } - - translate([0, 0, 36]) difference () { - cylinder(r = 50 / 2, h = 16, center = true); - cylinder(r = 22.5 / 2, h = 16 + 1, center = true); - } - - color("blue") translate([0, 0, 12 + 3]) gnal_spacer_16(); - //#1 - bottom spiral - difference () { - cylinder(r = 50 / 2, h = 16, center = true); - cylinder(r = 22.5 / 2, h = 16 + 1, center = true); - translate([0, 0, -8]) spiral_insert_void(); - } - - color("blue") translate([0, 0, -12]) gnal_spiral_bottom_insert_16(); - -} - -PART="stacking"; +PART="spiral"; if (PART == "spiral") { gnal_50ft_spiral(); diff --git a/scad/libraries/gnal_v3.scad b/scad/libraries/gnal_v3.scad index 62e5c0f..852e51c 100644 --- a/scad/libraries/gnal_v3.scad +++ b/scad/libraries/gnal_v3.scad @@ -82,6 +82,39 @@ module spiral (rotations = 40, start_d = 48, spacing = 2.075, bottom = -7.1, fn) path_extrude(exShape=facetProfile, exPath=spiralPath); } +module spiral_reinforcement ( start_d = 48, spacing = 2.075, bottom = -2, fn) { + rotations = 1; + w = 1; + top_w = .8; + top_offset = (w - top_w); + h = 2.2; + + facetProfile = [ + [w, -bottom], + [0, -bottom], + [0, 0], + [0, -h], + [w, -h], + [w, 0] + ]; + + end_d = start_d + (spacing * 2 * rotations); + end_r = end_d / 2; + start_r = start_d / 2; + + facetSize = calcFacetSize(end_d, fn); + start_fn = round(circ(start_d) / facetSize); + + + spiralPath = [ for (r = [0 : rotations - 1]) for (i = [0 : round(calcFn(start_d, start_fn, end_d, spacing, r )) - 1 ]) + [ + X(start_r, spacing, round(calcFn(start_d, start_fn, end_d, spacing, r )), r, i), + Y(start_r, spacing, round(calcFn(start_d, start_fn, end_d, spacing, r )), r, i), + 0] + ]; + path_extrude(exShape=facetProfile, exPath=spiralPath); +} + /** * Core (center of the reel) **/ @@ -204,6 +237,7 @@ module spiral_insert_void () { module gnal_spiral_bottom_insert_s8 () { $fn = 160; + OD = 10.5 + .3; void_d = 18 - .3; H = 17; D2 = INSERT_D; @@ -231,12 +265,19 @@ module gnal_spiral_bottom_insert_s8 () { } } } - translate([0, 0, -LEN / 2]) metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length=LEN); + translate([0, 0, -LEN / 2]) { + if (DEBUG) { + cylinder(r = OD / 2, h = LEN); + } else { + metric_thread (diameter=OD, pitch=PITCH, thread_size = THREAD, length=LEN); + } + } } } module gnal_spiral_bottom_insert_16 () { $fn = 160; + OD = 10.5 + .3; void_d = 18 - .3; H = 17 + 8;