pass ERC on sonar connectors, after save
[challenge-bot] / caster-standoff.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 $fn = 100;
8
9 module ball_screws(){
10 between = 14.732; // 0.580 inches
11 screw_radius = 2.286/2; // 0.090 inches
12 screw_length = 8; // i eyeballed this
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 caster_flange(){
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 hexagon(size, height){
28 boxWidth = size/1.75;
29 for (r = [-60, 0, 60]) rotate([0,0,r]) cube([boxWidth, size, height], true);}
30
31 module nuts(){
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);}
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]);}
45
46 module caster_standoff(){
47 height = 43;
48 caster_radius = 14.732/2;
49 caster_flange_height = 2.9464 * 2;
50 difference(){
51 union(){
52 cylinder(h = height, r = caster_radius);
53 caster_flange();}
54 translate([0, 0, -.1]) scale([1, 1, 1.1]) ball_screws();
55 translate([0, 0, caster_flange_height]) nuts();
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();}}
59
60 caster_standoff();