wheel_d = 60;
wheel_h = 4;
-wheel_thick = 1;
+wheel_thick = 0.75;
+wheel_rim = 4;
+
+min_wall = 0.5;
spokes = 5;
-spoke_w = 5;
-spoke_h = 3;
+spoke_w = 4;
+spoke_h = 2;
-center_d = 8;
+center_d = 10;
center_hole = 3;
module body() {
// rim
difference() {
cylinder(r = wheel_d/2, h = wheel_h, $fn = 128);
+ translate([0,0,min_wall-eps])
+ cylinder(r1 = wheel_d/2 - 2*wheel_thick,
+ r2 = wheel_d/2 - wheel_thick,
+ h = wheel_h - min_wall+ 2*eps);
translate([0,0,-eps])
- cylinder(r = wheel_d/2 - wheel_thick, h = wheel_h + 2*eps);
+ cylinder(r = wheel_d/2 - wheel_rim,
+ h = min_wall+2*eps);
}
// spokes
for (a = [0:360/spokes:360-eps]) {
rotate([0, 0, a])
- translate([2, 0, 0])
hull() {
translate([-spoke_w/2, 0, 0])
- cube([spoke_w, wheel_d/2 - wheel_thick/2, eps]);
- translate([-eps/2, 0, spoke_h-eps])
- cube([eps, wheel_d/2 - wheel_thick/2, eps]);
+ cube([spoke_w, wheel_d/2 - min_wall/2, min_wall]);
+ translate([-min_wall/2, 0, spoke_h-eps])
+ cube([min_wall, wheel_d/2 - min_wall/2, eps]);
}
}
- cylinder(r = center_d/2, h = wheel_h);
+ cylinder(r1 = center_d/2, r2 = center_hole/2 + 2*min_wall, h = wheel_h);
}
difference() {