w_top = 24.5; w_bottom = 25.3; h = 21.5; extra_w = 0.1; wall_thickness = 2; ledge_w = 3; clamp_w = 20; module shape() { polygon([[0, 0], [-1.5, w_bottom/2], [0, w_bottom], [h, w_bottom - (w_bottom - w_top)/2], [h, (w_bottom-w_top)/2]]); } module segment(wall) { linear_extrude(clamp_w) difference() { offset(wall + extra_w, $fn=32) shape(); offset(extra_w, $fn=32) shape(); mirror([1, 0]) translate([extra_w, ledge_w]) square([5*wall, w_bottom - 2*ledge_w]); } } segment(wall_thickness);