pass ERC on sonar connectors, after save
[challenge-bot] / caster-standoff.scad
CommitLineData
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
9module 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 16module 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 27module 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 31module 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
39module 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
46module 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
60caster_standoff();