X-Git-Url: http://challenge-bot.com/repos/?p=challenge-bot;a=blobdiff_plain;f=wheel.scad;h=131caf8d5af204b1f7fc47d891bddedb5054fe61;hp=c361773198b866ae8b6b2bd8ad7385a0d2c5e2f1;hb=ac757602dfe7948c40c38a501386d13a93db7dd6;hpb=0d781ab99535e94ff2784a8bef7c30ad233c665b diff --git a/wheel.scad b/wheel.scad index c361773..131caf8 100644 --- a/wheel.scad +++ b/wheel.scad @@ -4,37 +4,48 @@ // 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]);} @@ -43,18 +54,18 @@ module pie_slice(){ 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();