$fn=64; // --- Parameters --- panel_width = 150; // Total width of the backdrop panel_height = 200; // Height of the backdrop above baseplate panel_thickness = 3; // Thickness of the main panel tab_width = 130; // Width of the insertion tab tab_drop = 12; // Depth the tab inserts into the baseplate tab_thickness = 2.6; // Tab thickness (slightly thinner than panel for slot clearance) corner_radius = 8; // Radius of the top corners // --- Assembly --- // The model is designed to print flat on its back (Z=0) without supports. union() { // Main Backdrop Panel hull() { // Top left rounded corner translate([-panel_width/2 + corner_radius, panel_height - corner_radius, 0]) cylinder(r=corner_radius, h=panel_thickness); // Top right rounded corner translate([panel_width/2 - corner_radius, panel_height - corner_radius, 0]) cylinder(r=corner_radius, h=panel_thickness); // Flat bottom edge translate([-panel_width/2, 0, 0]) cube([panel_width, 1, panel_thickness]); } // Mounting Tab hull() { // Top of the tab (overlaps slightly into the main panel for a manifold union) translate([-tab_width/2, -0.1, 0]) cube([tab_width, 1.2, tab_thickness]); // Bottom of the tab (chamfered sides for easy insertion into baseplate) translate([-tab_width/2 + 3, -tab_drop, 0]) cube([tab_width - 6, 1, tab_thickness]); } }