// -*- C -*- pump_dia = 27; seatstay_mindia = 14; seatstay_maxdia = 19; pump_seatstay_gap = 12.3; pump_seatstay_delta = 0.1; holes_rotation = 7; module Holes(){ translate([0, -pump_dia/2]); rotate(-holes_rotation){ translate([-(pump_seatstay_gap/2 + pump_dia/2), 0]) circle(r=pump_dia/2); translate([+(pump_seatstay_gap/2 + seatstay_mindia/2), pump_dia/2 -seatstay_maxdia/2 -pump_seatstay_delta]) { hull(){ for (ud=[-1,1]) translate([0, ud * (seatstay_maxdia-seatstay_mindia)/2]) circle(r=seatstay_mindia/2); } } } } Holes();