$fn=64; // Parameters num_slots = 5; base_diameter = 25.5; // Standard 25mm miniature base + 0.5mm tolerance base_depth = 2.0; // Depth of the inset for the base strip_thickness = 5.0; // Total thickness of the stand strip margin = 4.0; // Space between bases and outer edge push_hole_diameter = 12.0; // Hole underneath to push the miniature out // Calculated values spacing = base_diameter + margin; strip_radius = (base_diameter / 2) + margin; difference() { // Main strip body (pill shape) hull() { cylinder(h=strip_thickness, r=strip_radius); translate([(num_slots - 1) * spacing, 0, 0]) cylinder(h=strip_thickness, r=strip_radius); } // Cutouts for miniature bases and push holes for (i = [0 : num_slots - 1]) { translate([i * spacing, 0, 0]) { // Miniature base inset translate([0, 0, strip_thickness - base_depth]) cylinder(h=base_depth + 1.0, d=base_diameter); // Push-out hole (through the bottom) translate([0, 0, -1.0]) cylinder(h=strip_thickness + 2.0, d=push_hole_diameter); } } }