$fn = 32; width = 10.8; depth = 14; height = 15; // The main block, without any cutouts module block() { translate([-width / 2, -depth / 2, 0]) cube([width, depth, height]); } // Wings to keep the block down module wings() { translate([0,0,height - (1.75 + 2)]) scale([1.1, 1.5, 1.2]) union () { translate([(width / 2 - 3) + 1 , 2]) rotate([90, -30]) cylinder(r=3, h=4, $fn=1); translate([(-width / 2 + 3) - 1 , 2]) rotate([90, -30]) cylinder(r=3, h=4, $fn=1); } } module top() { top_width = width + 3; magnet_diameter = 11; difference() { translate([-top_width / 2, -depth / 2, height]) cube([top_width, depth, 3]); translate([0, 0, height]) cylinder(d=magnet_diameter, h=3); } } module lid() { top_width = width + 3; cube([top_width, depth, 0.5]); } union() { block(); wings(); top(); } //lid();