// -*- C -*- post_dia = 23.0; th = 4; nom_hole = 22; min_r = 15 + nom_hole/2; maj_r = 22 + nom_hole/2; module Profile(r) { prof_r = th/(1-cos(45)); prof_R = r - prof_r * cos(45); intersection(){ hull(){ translate([0, th-prof_r]){ translate([1,0]) square(center=true, 2*[1,prof_r]); translate([prof_R, 0]) circle(prof_r, $fa=1,$fs=1); } } square([r, th]); } } Profile(maj_r);