$fn=64; // --- Parameters --- panel_length = 100; // Medium length panel_height = 50; // 50mm height panel_thickness = 2; // Standard thickness for 3D printing corner_radius = 2; // Rounded corners for easy insertion tab_width = 30; // Width of the top grab tab tab_height = 8; // Height of the top grab tab // --- Modules --- // Helper module to create a rounded rectangle module rounded_rect(length, width, height, radius) { hull() { translate([radius, radius, 0]) cylinder(r=radius, h=height); translate([length - radius, radius, 0]) cylinder(r=radius, h=height); translate([length - radius, width - radius, 0]) cylinder(r=radius, h=height); translate([radius, width - radius, 0]) cylinder(r=radius, h=height); } } // Main divider panel module module divider_panel() { union() { // Main divider body rounded_rect(panel_length, panel_height, panel_thickness, corner_radius); // Top grab tab (overlaps slightly to ensure manifold geometry) translate([(panel_length - tab_width) / 2, panel_height - corner_radius, 0]) rounded_rect(tab_width, tab_height + corner_radius, panel_thickness, corner_radius); } } // --- Render --- divider_panel();