$fn=64; // --- Parameters --- num_brushes = 6; hole_diameter = 12; // Diameter of the holes for the brush handles spacing = 20; // Distance between brush centers wall = 4; // Thickness of the walls // Overall dimensions holder_width = (num_brushes * spacing) + spacing; holder_depth = 35; holder_height = 80; // Center line for the holes hole_y = (holder_depth + wall) / 2; module brush_holder() { difference() { // Main solid block cube([holder_width, holder_depth, holder_height]); // Hollow out the front to create the top/bottom shelves and back wall. // Split into two cutouts to leave a center support pillar for easier bridging. cutout_width = (holder_width - 3 * wall) / 2; // Left cutout translate([wall, wall, wall]) cube([cutout_width, holder_depth + 1, holder_height - 2 * wall]); // Right cutout translate([holder_width / 2 + wall / 2, wall, wall]) cube([cutout_width, holder_depth + 1, holder_height - 2 * wall]); // Create holes and indents for the brushes for (i = [1 : num_brushes]) { hole_x = i * spacing; // Top through-holes translate([hole_x, hole_y, holder_height - wall - 1]) cylinder(h = wall + 2, d = hole_diameter); // Bottom indents to keep brushes from sliding out translate([hole_x, hole_y, wall - 2]) cylinder(h = 3, d = hole_diameter - 2); } } } brush_holder();