extr_size = 15; thickness = 2.5; mount_hole = 3; generate_brace = true; brace_width = 6; // Number of fragments in circles $fn = 50; side_dim = extr_size * 2; difference() { union() { linear_extrude( height = extr_size ) { polygon( points = [ [0,0], [0,side_dim], [side_dim,side_dim], [thickness,thickness], [thickness,side_dim-thickness], [side_dim-thickness,side_dim-thickness] ], paths = [ [0,1,2], [5,4,3] ]); } if ( generate_brace ) { linear_extrude( height = thickness ) { polygon( points = [ [0,0], [0,side_dim], [side_dim,side_dim], [brace_width,brace_width*2], [brace_width,side_dim-brace_width], [side_dim-(brace_width*2),side_dim-brace_width] ], paths = [ [0,1,2], [3,4,5] ]); } } } union() { translate([0, (side_dim/3), (extr_size/2)]) rotate([0,90,0]) cylinder(h = thickness*3, r = (mount_hole/2), center = true); translate([0, (2*side_dim/3), (extr_size/2)]) rotate([0,90,0]) cylinder(h = thickness*3, r = (mount_hole/2), center = true); translate([(side_dim/3), side_dim, (extr_size/2)]) rotate([90,0,0]) cylinder(h = thickness*3, r = (mount_hole/2), center = true); translate([(2*side_dim/3), side_dim, (extr_size/2)]) rotate([90,0,0]) cylinder(h = thickness*3, r = (mount_hole/2), center = true); } }