standoff_height = 60; // kyle eyeballed
gap = 4;
-wall_thickness = 2;
+wall_thickness = 1;
holder_floor = 3;
holder_arms_length = 20;
holder_height =
module ball_holder(){
difference (){
- cylinder(r = holder_radius, h = holder_height);
+ union(){
+ cylinder(r = holder_radius, h = holder_height);
+ translate([0, 0, holder_arms_length]){
+ cylinder(r1 = holder_radius,
+ r2 = holder_radius + wall_thickness,
+ h = wall_thickness);
+ translate([0, 0, wall_thickness]){
+ cylinder(r = wall_thickness + holder_radius,
+ h = holder_height
+ - holder_arms_length
+ - wall_thickness); }}}
translate([0, 0, ball_radius + holder_floor + holder_arms_length]){
sphere(r = ball_radius);}
translate([0, 0, holder_floor + (holder_height - holder_floor) / 2 + 0.5]){
- cube([holder_diameter + 0.1, gap, holder_height - holder_floor + 0.1],
+ cube([holder_diameter + wall_thickness * 2 + 0.1,
+ gap,
+ holder_height - holder_floor + 0.1],
center = true);}}}
module caster_standoff(){