cyl_d = 10;
cyl_h = 15;
cyl_hole_d = 4;

sphere_r = 7;

slit_width = 1;
  
difference() {
  cylinder(d=cyl_d, h=cyl_h, center=true);
  cylinder(d=cyl_hole_d, h=cyl_h+0.1, center=true, $fn=20);
  translate([0,-cyl_d/2,0]) cube([slit_width,cyl_d,cyl_h+ 0.1], center=true);
  // translate([0,0,-cyl_h/2 - sphere_r/3]) sphere(sphere_r, $fn=8);
}

g_r = 15;
g_h = 2.5;
g_t = 4;
g_l = 10;

for (i = [0,180]) {
  rotate([0,0,i]) translate([g_t/2 + 0.4,g_t/2,cyl_h/2 + g_l/2])rotate([90,0,0])
    union() {
      gripper(g_r, g_h, g_t, g_l);
      translate([0.8,10,0]) rotate([0,0,190]) gripper(g_r, g_h, g_t, g_l);
    }
}
module gripper(r, h,  thickness, l) {
  $fn=100;
  translate([r-h/2,0,0]) difference() {
    cylinder(r=r, h=thickness);
    translate([0,0,-0.01]) cylinder(r=r-h, h=thickness+0.02);
    translate([0,-r,-0.5]) cube([2*r, 2*r, thickness+1]);
    for (i = [0,180]) {
      rotate([0,0,i]) translate([-r, l/2, -0.5]) cube(2*r,2*r,thickness+1);
    }
  }
}