$fn=50; l_lower = 20; w_lower = 44; h_lower = 3; l_higher = 10; h_higher = 1; h = 7; b_cable_tie = 7; d_screw = 5; d_screw_head = 9.5; h_screw_head = 4; color("RoyalBlue", 1.0) difference () { // Basic shape union() { cube([l_lower, w_lower, h_lower], center=true); hull(){ cube([l_lower, l_lower, h_lower], center=true); translate([0,0, h - h_higher/2]) cube([l_higher, l_higher, h_higher], center=true); } } // Cutouts for cable ties for (rot = [0:1:1]) { rotate([0, 0, rot*90]) translate([0, 0, h_lower/2]) difference() { rotate([90, 0, 0]) cylinder(r=b_cable_tie/2, h=l_lower*2, center=true); translate([0, 0, -b_cable_tie/2]) cube([b_cable_tie, 2*l_lower+0.01, b_cable_tie], center=true); } } for (y = [-1:2:1]) { translate([0, y * ((w_lower/2 - l_lower/2)/2 + l_lower/2), 0]) union() { translate([0, 0, -abs(h_screw_head - h_lower)/2 + 0.001]) cylinder(r1 = d_screw/2, r2 = d_screw_head/2, h = h_screw_head, center=true); cylinder(r = d_screw/2, h=l_lower*2, center=true); } } }