infty = 100; eps = 0.01; tube_d = 6 + 0.7; hole_h = 6; wall = 1; outer_d1 = tube_d + 2*wall; outer_d2 = tube_d + 2*wall + hole_h * 0.7; top_h = outer_d2/4; difference() { hull() { cylinder(r1 = outer_d1/2, r2 = outer_d2/2, h = hole_h, $fn = 16); translate([0, 0, hole_h]) scale([1, 1, top_h*2/outer_d2]) sphere(outer_d2/2, $fn = 16); } translate([0, 0, -eps]) cylinder(r = tube_d/2, h = hole_h + eps, $fn = 16); }