$fn=64; // --- Parameters --- rows = 4; cols = 8; bit_hole_diameter = 7.4; // Clearance for standard 1/4" (6.35mm) hex bits hole_depth = 15; base_thickness = 4; hole_spacing = 12; // Center-to-center distance between bits edge_margin = 8; // Distance from edge to first hole center corner_radius = 3; // Radius of the block's rounded corners // --- Calculated Dimensions --- block_width = (cols - 1) * hole_spacing + (2 * edge_margin); block_depth = (rows - 1) * hole_spacing + (2 * edge_margin); block_height = hole_depth + base_thickness; // --- Model --- difference() { // Main Body hull() { for (x = [corner_radius, block_width - corner_radius]) { for (y = [corner_radius, block_depth - corner_radius]) { translate([x, y, 0]) cylinder(r = corner_radius, h = block_height); } } } // Bit Holes & Chamfers for (r = [0 : rows - 1]) { for (c = [0 : cols - 1]) { translate([ edge_margin + (c * hole_spacing), edge_margin + (r * hole_spacing), base_thickness ]) { // Main cylindrical hole for the bit cylinder(h = hole_depth + 1, d = bit_hole_diameter); // Top chamfer for easier bit insertion translate([0, 0, hole_depth - 1.5]) cylinder(h = 1.51, d1 = bit_hole_diameter, d2 = bit_hole_diameter + 2.5); } } } }