Fixed reel top and made it truly parametric

This commit is contained in:
mmcwilliams 2024-02-18 16:17:53 +01:00
parent 87ce37d890
commit da7856563d
1 changed files with 29 additions and 25 deletions

View File

@ -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);
}
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]) intersection () {
//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);
}
}
}
}