ball holder holds ball, needs rolling bumpers
authordaniel watson <ozzloy@gmail.com>
Tue, 3 Dec 2013 23:06:32 +0000 (15:06 -0800)
committerdaniel watson <ozzloy@gmail.com>
Tue, 3 Dec 2013 23:06:32 +0000 (15:06 -0800)
3d-printables/caster-standoff.scad

index 6163b54f33798eb4931058a8ccafd5cf7a20e299..dae0ccfbd147973e5abe9476559a02bc3adb08ef 100644 (file)
@@ -10,9 +10,6 @@ $fn = 60;
 standoff_radius = 14.732 / 2; // 0.580 / 2 inches from spec sheet
 standoff_height = 48; // eyeballed
 
-nut_short_side = 4.7; // from calipers
-nut_height = 1.6; // from calipers
-
 // eyeballed caster flange height, (0.580/5) inches, times 2 to be stronger
 caster_flange_height = 5;
 caster_flange_width = 20.32;  // 0.800 inches
@@ -47,88 +44,35 @@ module deck_flange_reinforcement(){
                 deck_flange_height * 1.1, // 1.1 is bigger than 1
                 deck_flange_radius]);}}}}}
 
-module caster_flange_screws(){
-  translate([standoff_radius, 0, 0])
-    cylinder(h = caster_flange_screw_length,
-             r = caster_flange_screw_radius);
-  translate([-standoff_radius, 0, 0])
-    cylinder(h = caster_flange_screw_length,
-             r = caster_flange_screw_radius);}
-
-module caster_flange(){
-  side_radius = caster_flange_width / 2 - standoff_radius;
-  hull(){
-    cylinder(h = caster_flange_height, r = standoff_radius);
-    translate([standoff_radius, 0, 0])
-      cylinder(h = caster_flange_height, r = side_radius);
-    translate([-standoff_radius, 0, 0])
-      cylinder(h = caster_flange_height, r = side_radius);}}
-
-module nut(size, height){
-    width = size/1.75;
-    for (r = [-60, 0, 60]) rotate([0,0,r]) cube([width, size, height], true);}
-
-module nuts(){
-  translate([standoff_radius, 0, nut_height/2])
-    nut(nut_short_side, nut_height + .1);
-  translate([-standoff_radius, 0, nut_height/2])
-    nut(nut_short_side, nut_height + .1);}
-
-module _2_screw(){
-  //measured with calipers
-  screw_length = 8;
-  thread_radius = 2.17 / 2 - 0.1; // subtract 0.1 to make squeeze fit
-  head_height = 1.8;
-  head_radius = 4.1 / 2 + 0.2; // add 0.2 to allow head to fit
-  cylinder(r = thread_radius, h = screw_length);
-  cylinder(r = head_radius, h = head_height);}
-
-module caster_deck_interlock_solid(){
-  translate([-1, standoff_radius - 2.1, 0]){
-    cube([2, 2, standoff_height]);}
-  translate([-1, -standoff_radius + 0.1, 0]){
-    cube([2, 2, standoff_height]);}}
-
-module caster_deck_interlock_hole(){
-  translate([0, standoff_radius - 1, -0.1]){
-    cube([2.5, 2.5, standoff_height], center = true);}
-  translate([0, -standoff_radius + 1, -0.1]){
-    cube([2.5, 2.5, standoff_height], center = true);}}
-
-module caster_standoff_deck_side(){
-  difference(){
-    cylinder(h = standoff_height - caster_flange_height,
-             r = standoff_radius);
-    translate([0, 0, standoff_height - caster_flange_screw_length * 1.1 + 0.1])
-      scale([1, 1, 1.1])
-        caster_flange_screws();
-    translate([0, 0, standoff_height - (caster_flange_height + nut_height)])
-      nuts();
-    translate([0, 0, standoff_height]){
-      // make hole to get to screw head depth
-      cylinder(r = 4.1 / 2 + 0.2, h = 3, center = true);
-      translate([0, 0, -0.7])
-        rotate([180, 0, 0])
-          _2_screw(r = 0.5, h = 5);}}
+module caster_standoff(){
+  cylinder(h = standoff_height - caster_flange_height,
+           r = standoff_radius);
   deck_flange();
   for(ii = [0:3]){
     rotate([0, 0, 45 + 90 * ii])
       deck_flange_reinforcement();}
   caster_deck_interlock_solid();}
 
-module caster_standoff_caster_side(){
-  difference(){
-    caster_flange();
-    translate([0, 0, caster_flange_height - 0.7]){
-      rotate([180, 0, 0]){
-        _2_screw();}}
-    // make hole to get to screw head
-    translate([0, 0, caster_flange_height - 0.8]){
-      cylinder(r = 4.1 / 2 + 0.2, h = 10);}
-    translate([0, 0, -.1]){
-      caster_flange_screws();}
-    caster_deck_interlock_hole();}}
-
-caster_standoff_deck_side();
-translate([caster_flange_width / 2 + deck_flange_radius + 1, 0, 0]){
-  caster_standoff_caster_side();}
+module ball_holder(){
+  /* measured with calipers */
+  ball_diameter = 12.7 + 0.5;
+  ball_radius = ball_diameter / 2;
+
+  wall_thickness = 1.5;
+  holder_height = ball_radius + wall_thickness * 2;
+
+  holder_outer_radius = ball_radius + wall_thickness;
+  holder_outer_diameter = holder_outer_radius * 2;
+
+  difference (){
+    cylinder(r = holder_outer_radius, h = holder_height);
+    translate([0, 0, ball_radius + wall_thickness]){
+      sphere(r = ball_radius);}
+    translate([0, 0, holder_height / 2 + wall_thickness]){
+      cube([holder_outer_diameter + 0.1,
+            wall_thickness * 2,
+            holder_height],
+           center = true);}}}
+
+ball_holder();
+//caster_standoff();