+module ball_holder(){
+ difference (){
+ 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 + wall_thickness * 2 + 0.1,
+ gap,
+ holder_height - holder_floor + 0.1],
+ center = true);}}}
+