$fn = 64; // Parametric Dimensions (in mm) slots = 6; slot_width = 10; slot_depth = 25; spacing = 25; wall_thickness = 4; depth = 50; height = 120; // Calculated Total Width width = (slots + 1) * spacing; union() { // Back Wall cube([width, wall_thickness, height]); // Base Shelf cube([width, depth, wall_thickness]); // Left Side Wall cube([wall_thickness, depth, height]); // Right Side Wall translate([width - wall_thickness, 0, 0]) cube([wall_thickness, depth, height]); // Top Shelf with Tool Slots difference() { // Solid Top Shelf translate([0, 0, height - wall_thickness]) cube([width, depth, wall_thickness]); // Subtract 6 Slots for (i = [1 : slots]) { // Position for each slot translate([i * spacing, depth - slot_depth, height - wall_thickness - 1]) { // Rounded inner end of the slot cylinder(d=slot_width, h=wall_thickness + 2); // Straight channel opening to the front translate([-slot_width / 2, 0, 0]) cube([slot_width, slot_depth + 2, wall_thickness + 2]); } } } }