$fn = 128; // Parameters tolerance = 0.6; // Extra diameter for easy bit insertion tier_depth = 24; // Depth of each tier tier1_h = 20; // Height of the front tier tier2_h = 35; // Height of the back tier width = 160; // Total width of the holder // Drill bit sizes in mm front_bits = [1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5]; back_bits = [6, 6.5, 7, 7.5, 8, 8.5, 9, 9.5, 10]; difference() { // Main Body union() { // Front tier (added 0.1mm depth to ensure manifold union) cube([width, tier_depth + 0.1, tier1_h]); // Back tier translate([0, tier_depth, 0]) cube([width, tier_depth, tier2_h]); } // Front Row (1mm to 5.5mm) for (i = [0 : len(front_bits) - 1]) { // Calculate hole depth based on bit size depth = 10 + front_bits[i] * 1.5; // Drill bit hole translate([(i + 0.5) * (width / len(front_bits)), tier_depth * 0.65, tier1_h - depth]) cylinder(h = depth + 10, d = front_bits[i] + tolerance); // Size label (Debossed) translate([(i + 0.5) * (width / len(front_bits)), tier_depth * 0.22, tier1_h - 1]) linear_extrude(2) text(str(front_bits[i]), size = 4.5, halign = "center", valign = "center", font = "Arial:style=Bold"); } // Back Row (6mm to 10mm) for (i = [0 : len(back_bits) - 1]) { // Calculate hole depth based on bit size depth = 15 + back_bits[i] * 1.2; // Drill bit hole translate([(i + 0.5) * (width / len(back_bits)), tier_depth * 1.65, tier2_h - depth]) cylinder(h = depth + 10, d = back_bits[i] + tolerance); // Size label (Debossed) translate([(i + 0.5) * (width / len(back_bits)), tier_depth * 1.22, tier2_h - 1]) linear_extrude(2) text(str(back_bits[i]), size = 5.5, halign = "center", valign = "center", font = "Arial:style=Bold"); } }