// -*- C -*- spoolwidth = 80; barrady = 5; barradz = 7; guidewidth = 3; guiderad = 20; module Bar(){ barlen = spoolwidth + guidewidth; barz = barradz * 0.5; intersection(){ for (mir=[0,1]) { mirror([mir,0,0]) { translate([-1,0,barz]) scale([1,barrady,barradz]) rotate([0,90,0]) cylinder(r=1, h=barlen+2, $fn=30); } } translate([-barlen, -50, 0]) cube([barlen*2, 100, 100]); } } Bar();