$fn = 64; // --- Parameters --- num_slots = 6; slot_spacing = 32; // Distance between the center of each slot tilt_angle = 15; // Tilt angle of the screwdrivers in degrees shaft_diameter = 9; // Diameter of the lower hole for the screwdriver shaft handle_diameter = 20; // Diameter of the upper hole for the handle recess recess_depth = 12; // Depth of the handle counterbore block_depth = 45; // Depth of the main holder block block_height = 35; // Height of the main holder block // Calculated width to evenly space the slots with margins block_width = (num_slots * slot_spacing) + 16; // --- Geometry --- difference() { // Main body block translate([0, 0, block_height / 2]) cube([block_width, block_depth, block_height], center = true); // Angled screwdriver cutouts for (i = [0 : num_slots - 1]) { // Center the slots along the X axis x_pos = (i - (num_slots - 1) / 2) * slot_spacing; // Position slightly above the block to ensure clean manifold cuts translate([x_pos, 0, block_height + 5]) rotate([tilt_angle, 0, 0]) union() { // Shaft hole (extended to cut all the way through the bottom) translate([0, 0, -block_height * 2]) cylinder(h = block_height * 3, d = shaft_diameter); // Handle recess (counterbore) translate([0, 0, -recess_depth - 5]) cylinder(h = recess_depth + 10, d = handle_diameter); } } }