// Blank Wall Plate (No Openings) // Standard single-gang blank cover plate // Parametric OpenSCAD model include /* [Plate Dimensions] */ plate_width = 83.64; // mm - X dimension plate_height = 126.64; // mm - Y dimension plate_thickness = 5.0; // mm - Z dimension /* [Bevel Settings] */ bevel_inset = 1.82; // mm - how much smaller bottom is per side /* [Recess Settings] */ recess_enabled = true; recess_depth = 2.0; // mm - depth of recess (from bottom) recess_inset = 8.0; // mm - inset from outer edge /* [Screw Holes] */ screw_holes_enabled = true; screw_hole_diameter = 5.0; // mm - diameter of screw hole screw_hole_spacing = 100.0; // mm - distance between hole centers /* [Corner Rounding] */ plate_corner_radius = 3.0; // mm /* [Resolution] */ $fn = 64; // ============================================ // CALCULATED VALUES // ============================================ bottom_width = plate_width - (bevel_inset * 2); bottom_height = plate_height - (bevel_inset * 2); recess_width = plate_width - (recess_inset * 2); recess_height = plate_height - (recess_inset * 2); // ============================================ // MODULES // ============================================ module plate_body() { // Flipped for printing: front face (larger) at Z=0, back (smaller) at Z=5 // This eliminates overhang on beveled edges prismoid( size1 = [plate_width, plate_height], // front face (larger) at bottom size2 = [bottom_width, bottom_height], // back face (smaller) at top h = plate_thickness, rounding = plate_corner_radius, anchor = BOTTOM ); } module back_recess() { if (recess_enabled) { recess_rounding = max(0.5, plate_corner_radius - recess_inset/4); // Recess now at top (Z=5) since plate is flipped for printing translate([0, 0, plate_thickness - recess_depth - 0.01]) prismoid( size1 = [recess_width, recess_height], size2 = [recess_width, recess_height], h = recess_depth + 0.02, rounding = recess_rounding, anchor = BOTTOM ); } } module screw_holes() { if (screw_holes_enabled) { for (y_pos = [screw_hole_spacing/2, -screw_hole_spacing/2]) { translate([0, y_pos, -0.1]) cylinder(h = plate_thickness + 0.2, d = screw_hole_diameter); } } } // ============================================ // MAIN ASSEMBLY // ============================================ module blank_plate() { difference() { plate_body(); back_recess(); screw_holes(); } } blank_plate();