total_height = 220; volume = 118; //mL cup_height = 30; wall_thickness = 3; // Calculate radius inside_radius = sqrt(volume*1000/(PI*cup_height)); $fn=100; // Generate cup union(){ translate([0,0,cup_height/2+wall_thickness/2]) difference(){ cylinder(r=inside_radius+wall_thickness, h=cup_height+wall_thickness, center=true); translate([0,0,wall_thickness]) cylinder(r=inside_radius, h=cup_height+wall_thickness, center=true); } translate([0,0,total_height/2]) rotate_extrude(angle=30) translate([wall_thickness/2+inside_radius,0,0]) square(size=[wall_thickness, total_height], center=true); }