$fn=120; D_I_1=27; D_I_2=25; H=10; Dicke=2.5; Delta=0.001; Open=90; difference() { union() { cylinder(d1=D_I_1+2*Dicke, d2=D_I_2+2*Dicke, h=H); hull() { translate([-(D_I_2/2-4),0,0]) scale([1,1.5,1]) cylinder(d=8, h=H*3/5); translate([-(D_I_2/2+5),0,0]) cylinder(d=10, h=2.5); } } translate([1,0,-Delta]) cylinder(d1=D_I_1, d2=D_I_2, h=H+2*Delta); translate([0,0,-1]) for(j=[-Open/2:360/$fn:+Open/2]) rotate([0,0,j]) hull() { rotate([0,0,+360/$fn/2]) cube([60,0.001,20]); rotate([0,0,-360/$fn/2]) cube([60,0.001,20]); } { D=4; translate([-(D_I_1+2*Dicke+D-(D_I_1-D_I_2)/2)/2,0,0]) cylinder(d=D, h=20, center=true); } }