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 () { module reel_top () {
//outer wall difference () {
translate([0, 0, SPOKE_H / 2]) difference () { union () {
cylinder(r = REEL_D / 2, h = SPOKE_H, center = true); //outer wall
cylinder(r = (REEL_D / 2) - REEL_OUTER_WALL_W, h = REEL_OUTER_WALL_H + 1, center = true); 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); //inner wall
cylinder(r = (REEL_INNER_D / 2) - REEL_INNER_WALL_W, h = REEL_INNER_H + 1, center = true); translate([0, 0, SPOKE_H / 2]) difference () {
translate([0, 0, -SPOKE_H / 2]) intersection () { 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); cylinder(r = 30.5 / 2, h = 6, center = true);
rotate([0, 45, 0]) cube([3, 31, 3], 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);
}
}
}
} }