$fn=64; // --- Parameters --- arm_length = 42.5; // Length from center to the end of the arm height = 30.0; // Total height of the divider wall_thickness = 1.8; // Thickness of the divider walls hub_radius = 2.5; // Radius of the central reinforcing hub snap_bump_radius = 1.2; // Radius of the snap-in bumps snap_bump_offset = 0.5; // How far the bumps protrude past the arm length module radial_snap_divider() { union() { // Central reinforcing hub cylinder(h=height, r=hub_radius); // Generate the 3 radial arms (120 degrees apart) for(angle = [0, 120, 240]) { rotate([0, 0, angle]) { // Main arm wall translate([0, -wall_thickness/2, 0]) cube([arm_length, wall_thickness, height]); // Snap-in bumps on the outer edge for locking into the bin translate([arm_length + snap_bump_offset, 0, height * 0.25]) sphere(r=snap_bump_radius); translate([arm_length + snap_bump_offset, 0, height * 0.75]) sphere(r=snap_bump_radius); // Rounded end-cap for smooth insertion and flush fit translate([arm_length, 0, 0]) cylinder(h=height, r=wall_thickness/2); } } } } // Render the object radial_snap_divider();