eps = 0.01; bearing_d = 32 + 0.3; spool_d = 52.5 - 0.3; cyl_wall = 1.5; body_h = 8 + cyl_wall; bearing_side = 2; difference() { cylinder(r = bearing_d/2 + 2*cyl_wall, h = body_h, $fn = 256); difference() { translate([0, 0, cyl_wall]) cylinder(r = bearing_d/2 + cyl_wall, h = body_h, $fn = 256); for (a = [0:60:360]) rotate([0, 0, a]) translate([bearing_d/2 + cyl_wall, 0, 0]) cylinder(r = cyl_wall, h = body_h, $fn = 4); } translate([0, 0, -eps]) cylinder(r = bearing_d/2 - bearing_side, h = cyl_wall+2*eps, $fn = 256); } difference() { cylinder(r = spool_d/2, h = body_h, $fn = 256); translate([0, 0, -eps]) cylinder(r = spool_d/2-cyl_wall, h = body_h + 2*eps, $fn = 256); } for (a = [0:60:360]) { rotate([0, 0, a]) translate([bearing_d/2, -cyl_wall, 0]) cube([spool_d/2-bearing_d/2 - cyl_wall/2, 2*cyl_wall, cyl_wall]); }