clean up spacing on motor-mount drill jig
[challenge-bot] / wheel.scad
1 // challenge-bot
2 // GNU AGPLv3 (or later at your option)
3 // project available at these locations:
4 // https://gitorious.org/ozzloy/challenge-bot
5 // https://github.com/waynegramlich/challenge-bot
6
7 wheel_depth = 7.65;
8 wheel_radius = 68/2;
9
10 module encoder_shaft(){
11 motor_shaft_big = 3.7;
12 motor_shaft_small = 4.8;
13 motor_shaft_length = wheel_depth / 2;
14
15 intersection(){
16 cylinder(h = motor_shaft_length,
17 r = motor_shaft_big,
18 center = true,
19 $fn=100);
20 cube([motor_shaft_big * 2.1, motor_shaft_small, motor_shaft_length],
21 center = true);}}
22
23 module mounting_screw(){
24 cylinder(h = wheel_depth * 1.1, r = 1, $fn = 100, center = true);}
25
26 module wheel(){
27 translate([0, 0, wheel_depth / 2]){
28 difference(){
29 cylinder(h = wheel_depth, r = wheel_radius, center = true, $fn=100);
30 translate([0, 0, wheel_depth/4]){
31 scale([1, 1, 1.1]){
32 encoder_shaft();}}
33 mounting_screw();
34 for(i = [0 : 4]){
35 rotate(i * 360/5, [0, 0, 1]){
36 translate([0, 0, -0.6 * wheel_depth])
37 between_spokes();}}}}}
38
39 module wheel_block(){
40 cube([wheel_radius, wheel_radius, wheel_depth]);}
41
42 module pie_slice(){
43 intersection(){
44 translate([0, 0, wheel_depth / 2]){
45 cylinder(h = wheel_depth,
46 r = 0.7 * wheel_radius,
47 center = true);}
48 translate([0, wheel_radius * 0.3, 0]){
49 rotate([0, 0, (360/5)/2]){
50 intersection(){
51 wheel_block();
52 rotate([0, 0, 90 - 360/5])
53 wheel_block();}}}}}
54
55 module between_spokes(){
56 minkowski(){
57 pie_slice();
58 cylinder(h = wheel_depth, r = 1, $fn=100);}}
59
60 wheel();