main_inner_dia = 60; main_outer_dia = 70; inner_dia_small = 40; height = 15; thickness = (main_outer_dia - main_inner_dia)/2; inner_radius = 2; outer_radius = inner_radius + thickness; extra_size = (main_inner_dia - inner_dia_small) / 2 - inner_radius; module ring(inner_radius, outer_radius){ difference(){ circle(r=outer_radius); circle(r=inner_radius); } } module quarter_ring(inner_r, outer_r,){ difference(){ ring(inner_r, outer_r); difference(){ square(size=[2*outer_r, 2*outer_r], center=true); translate([0,-outer_r,0]) square(size=[outer_r, outer_r], center=false); } } } rotate_extrude(convexity=10, $fn=100) { translate([main_inner_dia/2,0,0]){ union(){ square(size=[thickness, height]); translate([-inner_radius,0,0]) quarter_ring(inner_radius, outer_radius); translate([-extra_size-inner_radius,-thickness-inner_radius,0]) square(size=[extra_size, thickness]); } } }