$fn=64; // --- Parameters --- panel_width = 160; panel_height = 120; panel_thickness = 3; tab_width = 100; tab_height = 10; tab_thickness = 2.8; // Slightly thinner than panel for easy slotting emboss_depth = 1.0; // --- Modules --- module star(x, z, size) { translate([x, panel_thickness - 0.1, z]) rotate([-90, 0, 0]) union() { cube([size, size/3, (emboss_depth + 0.1)*2], center=true); cube([size/3, size, (emboss_depth + 0.1)*2], center=true); } } module dot(x, z, r) { translate([x, panel_thickness - 0.1, z]) rotate([-90, 0, 0]) cylinder(r=r, h=emboss_depth + 0.1); } // --- Main Geometry --- union() { // Main Backdrop Panel translate([-panel_width/2, 0, 0]) cube([panel_width, panel_thickness, panel_height]); // Mounting Tab (slots into baseplate rear) translate([-tab_width/2, (panel_thickness - tab_thickness)/2, -tab_height]) cube([tab_width, tab_thickness, tab_height + 0.1]); // Panel Border / Frame translate([-panel_width/2, panel_thickness - 0.1, 0]) cube([panel_width, emboss_depth + 0.1, 4]); // Bottom translate([-panel_width/2, panel_thickness - 0.1, panel_height - 4]) cube([panel_width, emboss_depth + 0.1, 4]); // Top translate([-panel_width/2, panel_thickness - 0.1, 0]) cube([4, emboss_depth + 0.1, panel_height]); // Left translate([panel_width/2 - 4, panel_thickness - 0.1, 0]) cube([4, emboss_depth + 0.1, panel_height]); // Right // --- Sci-Fi Space Details (Embossed for easy 3D printing without supports) --- // Ringed Planet translate([panel_width*0.25, panel_thickness - 0.1, panel_height*0.7]) rotate([-90, 0, 0]) { // Planet body cylinder(r=20, h=emboss_depth + 0.1); // Planet ring difference() { scale([1.5, 0.4, 1]) cylinder(r=25, h=emboss_depth + 0.1); scale([1.5, 0.4, 1]) translate([0, 0, -1]) cylinder(r=22, h=emboss_depth + 3); } } // Distant Moon translate([-panel_width*0.35, panel_thickness - 0.1, panel_height*0.8]) rotate([-90, 0, 0]) cylinder(r=8, h=emboss_depth + 0.1); // Starfield (4-Point Stars) star(-40, 100, 6); star(10, 80, 4); star(-55, 45, 5); star(50, 40, 7); star(-10, 20, 4); // Starfield (Dots/Distant Stars) dot(-20, 105, 1); dot(-50, 70, 1.5); dot(30, 105, 1); dot(60, 80, 1.2); dot(0, 50, 1); dot(-30, 30, 1.5); dot(40, 15, 1); dot(70, 50, 1); dot(-65, 90, 1.2); }