$fn=64; // Parameters num_pens = 6; pen_hole_diameter = 14; cup_height = 90; cup_diameter = 60; base_thickness = 4; center_distance = 18; // Distance from center of cup to center of pen holes center_hole_diameter = 12; // Optional center hole to save material difference() { // Main cup body cylinder(h=cup_height, d=cup_diameter); // Outer pen holes for (i = [0 : num_pens - 1]) { rotate([0, 0, i * (360 / num_pens)]) translate([center_distance, 0, base_thickness]) // Height is extended slightly to ensure clean manifold cut at the top cylinder(h=cup_height, d=pen_hole_diameter); } // Center weight-reduction hole translate([0, 0, base_thickness]) cylinder(h=cup_height, d=center_hole_diameter); }