$fn=30; //// variables //// bearingIr=4; bearingOr=11; screwHole=2.25; hubradii=27.5; //// render //// difference (){ intersection (){ hubBody(); cylinder(r=hubradii+0.5, h=20, $fn=75); } translate ([0,24,-1]) cylinder (r=screwHole, h=20); translate ([-20.5,-12,-1]) cylinder (r=screwHole, h=20); translate ([20.5,-12,-1]) cylinder (r=screwHole, h=20); } //// modules //// module hubBody(){ //circle (r=12.75); //dowel translate ([0,24,9]) cylinder (r=bearingIr, h=9); translate ([0,24,9]) cylinder (r=bearingIr+1, h=2); translate ([-20.5,-12,9]) cylinder (r=bearingIr, h=9); translate ([-20.5,-12,9]) cylinder (r=bearingIr+1, h=2); translate ([20.5,-12,9]) cylinder (r=bearingIr, h=9); translate ([20.5,-12,9]) cylinder (r=bearingIr+1, h=2); difference (){ cylinder (r1=hubradii-1, r2=hubradii+1, h=10, $fn=75); translate ([0,0,-1]) cylinder (r1=15, r2=16, h=12); } difference (){ translate ([0,0,10]) cylinder (r1=hubradii+1, r2=hubradii-3, h=4, $fn=75); translate ([0,0,9]) cylinder (r1=15.675, r2=18, h=9); translate ([0, 24,9.5]) cylinder (r=bearingOr+1.5, h=9); translate ([-20.5,-12,9.5]) cylinder (r=bearingOr+1.5, h=9); translate ([20.5,-12,9.5]) cylinder (r=bearingOr+1.5, h=9); } }