858028a5 |
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 | $fn = 100; |
8 | |
9 | module ball_screws(){ |
17e3b87c |
10 | between = 14.732; // 0.580 inches |
11 | screw_radius = 2.286/2; // 0.090 inches |
f2a874c1 |
12 | screw_length = 8; // i eyeballed this |
858028a5 |
13 | translate([between/2, 0, 0]) cylinder(h = screw_length, r = screw_radius); |
14 | translate([-between/2, 0, 0]) cylinder(h = screw_length, r = screw_radius);} |
15 | |
f2a874c1 |
16 | module caster_flange(){ |
54d7ed6b |
17 | // i eyeballed this too, it's (0.580/5) inches, times 2 to be stronger |
18 | height = 2.9464 * 2; |
19 | width = 20.32; // 0.800 inches |
20 | between = 14.732; //0.580 inches |
21 | side_radius = (width - between)/2; |
22 | hull(){ |
23 | cylinder(h = height, r = between/2); |
24 | translate([between/2, 0, 0]) cylinder(h = height, r = side_radius); |
25 | translate([-between/2, 0, 0]) cylinder(h = height, r = side_radius);}} |
26 | |
f2a874c1 |
27 | module hexagon(size, height){ |
28 | boxWidth = size/1.75; |
29 | for (r = [-60, 0, 60]) rotate([0,0,r]) cube([boxWidth, size, height], true);} |
30 | |
54d7ed6b |
31 | module nuts(){ |
f2a874c1 |
32 | height = 1.6; // from calipers |
33 | overall_width = 20.32; // 0.800 inches |
34 | between = 14.732; // 0.580 inches |
35 | short_side_nut = 4.7; // from calipers |
36 | translate([between/2, 0, height/2]) hexagon(4.7, height); |
37 | translate([-between/2, 0, height/2]) hexagon(4.7, height);} |
54d7ed6b |
38 | |
39 | module ziptie(){ |
40 | ziptie_width = 4.7625; // 3/16 inch |
41 | ziptie_height = 3; // i'm guessing |
42 | standoff_radius = 14.732; // 0.580 inches |
43 | translate([-standoff_radius/2, -ziptie_width/2, 0]) |
44 | cube([standoff_radius, ziptie_width, ziptie_height]);} |
858028a5 |
45 | |
46 | module caster_standoff(){ |
47 | height = 43; |
48 | caster_radius = 14.732/2; |
f2a874c1 |
49 | caster_flange_height = 2.9464 * 2; |
858028a5 |
50 | difference(){ |
51 | union(){ |
52 | cylinder(h = height, r = caster_radius); |
f2a874c1 |
53 | caster_flange();} |
54d7ed6b |
54 | translate([0, 0, -.1]) scale([1, 1, 1.1]) ball_screws(); |
f2a874c1 |
55 | translate([0, 0, caster_flange_height]) nuts(); |
54d7ed6b |
56 | translate([0, 0, height * 3 / 4]) scale([1.1, 1, 1]) ziptie(); |
57 | rotate([0, 0, 90]) translate([0, 0, height * 1 / 2]) scale([1.1, 1, 1]) |
58 | ziptie();}} |
858028a5 |
59 | |
60 | caster_standoff(); |