// https://gitorious.org/ozzloy/challenge-bot
// https://github.com/waynegramlich/challenge-bot
-wheel_depth = 7.65;
+wheel_depth = 6;
wheel_radius = 68/2;
module encoder_shaft(){
- motor_shaft_big = 3.7;
- motor_shaft_small = 4.8;
- motor_shaft_length = wheel_depth / 2;
+ // measured with calipers, checked against the motor shaft
+ motor_shaft_big = 3.7; // radius, gets doubled in cylinder
+ motor_shaft_small = 4.8; // total length of box
+ motor_shaft_length = wheel_depth * 3 / 4;
intersection(){
cylinder(h = motor_shaft_length,
r = motor_shaft_big,
center = true,
- $fn=100);
+ $fn = 30);
+ // x direction is multiplied by 2 because the radius of the cylinder
+ // goes in both directions. the extra .1 is for overlap
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);}
+ cylinder(h = wheel_depth * 1.1, r = 1, $fn = 30, 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]){
+ cylinder(h = wheel_depth, r = wheel_radius, center = true, $fn = 30);
+ translate([0, 0, wheel_depth / 4]){
scale([1, 1, 1.1]){
encoder_shaft();}}
mounting_screw();
- for(i = [0 : 4]){
+ for(i = [1 : 5]){
rotate(i * 360/5, [0, 0, 1]){
translate([0, 0, -0.6 * wheel_depth])
- between_spokes();}}}}}
+ between_spokes();}}
+ translate([0, 0, wheel_depth / 4]){
+ difference(){
+ cylinder(h = wheel_depth / 1.2,
+ r = 0.85 * wheel_radius,
+ center = true);
+ cylinder(h = wheel_depth / 1.2,
+ r = 0.23 * wheel_radius,
+ center = true);}}}}}
module wheel_block(){
cube([wheel_radius, wheel_radius, wheel_depth]);}
intersection(){
translate([0, 0, wheel_depth / 2]){
cylinder(h = wheel_depth,
- r = 0.7 * wheel_radius,
+ r = 0.85 * wheel_radius,
center = true);}
translate([0, wheel_radius * 0.3, 0]){
- rotate([0, 0, (360/5)/2]){
+ rotate([0, 0, (360 / 5) / 2]){
intersection(){
wheel_block();
- rotate([0, 0, 90 - 360/5])
+ rotate([0, 0, 90 - 360 / 5])
wheel_block();}}}}}
module between_spokes(){
minkowski(){
pie_slice();
- cylinder(h = wheel_depth, r = 1, $fn=100);}}
+ cylinder(h = wheel_depth / 2, r = 1, $fn = 30);}}
wheel();