$fn=64; // --- Parameters --- base_width = 150; base_length = 150; base_height = 8; corner_radius = 4; recess_width = 130; recess_length = 130; recess_depth = 2; magnet_hole_diameter = 5.2; // Sized for 5mm magnets magnet_hole_depth = 2.5; magnet_offset = 15; // --- Main Model --- difference() { // Solid Foundation Base rounded_cube(base_width, base_length, base_height, corner_radius); // Top Recess for Building Placement translate([0, 0, base_height - recess_depth + 0.01]) rounded_cube(recess_width, recess_length, recess_depth + 0.1, corner_radius); // Bottom Magnet/Peg Holes for Modularity for (x = [-1, 1]) { for (y = [-1, 1]) { translate([ x * (base_width/2 - magnet_offset), y * (base_length/2 - magnet_offset), -0.01 ]) cylinder(d=magnet_hole_diameter, h=magnet_hole_depth + 0.01); } } } // --- Modules --- module rounded_cube(w, l, h, r) { hull() { for (x = [-w/2 + r, w/2 - r]) { for (y = [-l/2 + r, l/2 - r]) { translate([x, y, 0]) cylinder(r=r, h=h); } } } }