$fn = 64; // Parameters height = 100; outer_radius = 40; wall_thickness = 2; base_thickness = 2; divider_thickness = 2; union() { // Main cylindrical cup difference() { cylinder(h = height, r = outer_radius); // Inner cutout translate([0, 0, base_thickness]) cylinder(h = height, r = outer_radius - wall_thickness); } // Interior divisions (cross shape) intersection() { // Embed dividers halfway into the wall for a manifold union translate([0, 0, base_thickness]) cylinder(h = height - base_thickness, r = outer_radius - (wall_thickness / 2)); union() { // X-axis divider translate([-outer_radius, -divider_thickness / 2, base_thickness]) cube([outer_radius * 2, divider_thickness, height - base_thickness]); // Y-axis divider translate([-divider_thickness / 2, -outer_radius, base_thickness]) cube([divider_thickness, outer_radius * 2, height - base_thickness]); } } }