// challenge-bot // GNU AGPLv3 (or later at your option) // project available at these locations: // https://gitorious.org/ozzloy/challenge-bot // https://github.com/waynegramlich/challenge-bot wheel_depth = 7.65; wheel_radius = 68/2; module encoder_shaft(){ motor_shaft_big = 3.7; motor_shaft_small = 4.8; motor_shaft_length = wheel_depth / 2; intersection(){ cylinder(h = motor_shaft_length, r = motor_shaft_big, center = true, $fn=100); cube([motor_shaft_big * 2.1, motor_shaft_small, motor_shaft_length], center = true);}} module mounting_screw(){ cylinder(h = wheel_depth * 1.1, r = 1, $fn = 100, center = true);} module wheel(){ translate([0, 0, wheel_depth / 2]){ difference(){ cylinder(h = wheel_depth, r = wheel_radius, center = true, $fn=100); translate([0, 0, wheel_depth/4]){ scale([1, 1, 1.1]){ encoder_shaft();}} mounting_screw(); for(i = [0 : 4]){ rotate(i * 360/5, [0, 0, 1]){ translate([0, 0, -0.6 * wheel_depth]) between_spokes();}}}}} module wheel_block(){ cube([wheel_radius, wheel_radius, wheel_depth]);} module pie_slice(){ intersection(){ translate([0, 0, wheel_depth / 2]){ cylinder(h = wheel_depth, r = 0.7 * wheel_radius, center = true);} translate([0, wheel_radius * 0.3, 0]){ rotate([0, 0, (360/5)/2]){ intersection(){ wheel_block(); rotate([0, 0, 90 - 360/5]) wheel_block();}}}}} module between_spokes(){ minkowski(){ pie_slice(); cylinder(h = wheel_depth, r = 1, $fn=100);}} wheel();