From da7856563d9f111cb65e203dc51f2d635e72355a Mon Sep 17 00:00:00 2001 From: mmcwilliams Date: Sun, 18 Feb 2024 16:17:53 +0100 Subject: [PATCH] Fixed reel top and made it truly parametric --- paterson16.scad | 54 ++++++++++++++++++++++++++----------------------- 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/paterson16.scad b/paterson16.scad index b627024..a0a5c70 100644 --- a/paterson16.scad +++ b/paterson16.scad @@ -52,35 +52,39 @@ module reel_frame () { } module reel_top () { - //outer wall - translate([0, 0, SPOKE_H / 2]) difference () { - cylinder(r = REEL_D / 2, h = SPOKE_H, center = true); - cylinder(r = (REEL_D / 2) - REEL_OUTER_WALL_W, h = REEL_OUTER_WALL_H + 1, center = true); - } - - //inner wall - translate([0, 0, SPOKE_H / 2]) difference () { - cylinder(r = REEL_INNER_D / 2, h = SPOKE_H, center = true); - cylinder(r = (REEL_INNER_D / 2) - REEL_INNER_WALL_W, h = REEL_INNER_H + 1, center = true); - translate([0, 0, -SPOKE_H / 2]) intersection () { + difference () { + union () { + //outer wall + translate([0, 0, SPOKE_H / 2]) difference () { + cylinder(r = REEL_D / 2, h = SPOKE_H, center = true); + cylinder(r = (REEL_D / 2) - REEL_OUTER_WALL_W, h = REEL_OUTER_WALL_H + 1, center = true); + } + + //inner wall + translate([0, 0, SPOKE_H / 2]) difference () { + cylinder(r = REEL_INNER_D / 2, h = SPOKE_H, center = true); + cylinder(r = (REEL_INNER_D / 2) - REEL_INNER_WALL_W, h = REEL_INNER_H + 1, center = true); + } + + translate([0, 0, SPOKE_H / 2]) difference () { + cylinder(r = (REEL_INNER_D + REEL_D) / 4, h = SPOKE_H, center = true); + cylinder(r = ((REEL_INNER_D + REEL_D) / 4) - REEL_INNER_WALL_W, h = REEL_INNER_H + 1, center = true); + } + + //spokes + translate([0, 0, SPOKE_H / 2]) for (i = [0:5]) { + rotate([0, 0, i * (360 / 6)]) { + translate([0, ((REEL_D - REEL_INNER_D) / 2) - 1.5, 0]) { + cube([4.5, (REEL_D - REEL_INNER_D) / 2, SPOKE_H], center = true); + } + } + } + } + intersection () { cylinder(r = 30.5 / 2, h = 6, center = true); rotate([0, 45, 0]) cube([3, 31, 3], center = true); } } - - translate([0, 0, SPOKE_H / 2]) difference () { - cylinder(r = (REEL_INNER_D + REEL_D) / 4, h = SPOKE_H, center = true); - cylinder(r = ((REEL_INNER_D + REEL_D) / 4) - REEL_INNER_WALL_W, h = REEL_INNER_H + 1, center = true); - } - - //spokes - translate([0, 0, SPOKE_H / 2]) for (i = [0:5]) { - rotate([0, 0, i * (360 / 6)]) { - translate([0, ((REEL_D - REEL_INNER_D) / 2) - 1.5, 0]) { - cube([4.5, (REEL_D - REEL_INNER_D) / 2, SPOKE_H], center = true); - } - } - } }