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