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 |
12 | screw_length = 15; // i made this up |
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 | |
16 | module fixture(){ |
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 | |
27 | module nuts(){ |
28 | // i eyeballed this too, it's (0.580/5) inches, times 2 to be stronger |
858028a5 |
29 | height = 2.9464; |
54d7ed6b |
30 | width = 20.32; // 0.800 inches |
31 | between = 14.732; //0.580 inches |
858028a5 |
32 | side_radius = (width - between)/2; |
33 | translate([between/2, 0, 0]) cylinder(h = height, r = side_radius); |
54d7ed6b |
34 | translate([-between/2, 0, 0]) cylinder(h = height, r = side_radius);} |
35 | |
36 | module ziptie(){ |
37 | ziptie_width = 4.7625; // 3/16 inch |
38 | ziptie_height = 3; // i'm guessing |
39 | standoff_radius = 14.732; // 0.580 inches |
40 | translate([-standoff_radius/2, -ziptie_width/2, 0]) |
41 | cube([standoff_radius, ziptie_width, ziptie_height]);} |
858028a5 |
42 | |
43 | module caster_standoff(){ |
44 | height = 43; |
45 | caster_radius = 14.732/2; |
54d7ed6b |
46 | fixture_height = 2.9464 * 2; |
858028a5 |
47 | difference(){ |
48 | union(){ |
49 | cylinder(h = height, r = caster_radius); |
50 | fixture();} |
54d7ed6b |
51 | translate([0, 0, -.1]) scale([1, 1, 1.1]) ball_screws(); |
52 | translate([0, 0, fixture_height]) nuts(); |
53 | translate([0, 0, height * 3 / 4]) scale([1.1, 1, 1]) ziptie(); |
54 | rotate([0, 0, 90]) translate([0, 0, height * 1 / 2]) scale([1.1, 1, 1]) |
55 | ziptie();}} |
858028a5 |
56 | |
57 | caster_standoff(); |