Parametric Caged Roller Bearing V3

UPDATE (17/08/2023): I have increased the default "slice_gap_closing_radius" to 0.04 as Prusa Slicer was ignoring the gap below this size (and updated the default bearing stl accordingly). The advanced Prusa Slicer setting "Slice gap closing radius" should be reduced to 0.02 or less for the slice gap to print correctly (see last images).

UPDATE (05/07/2020): I noticed many of the generated bearings had little or no base area for the raceways to stick to the printbed so I have added a parametric brim to the inner and outer circumferences of the bearing.

The third version of my print in place parametric caged roller bearing design. I consider this to be my final design with better features, printability and greatly improved SCAD code.

The original design can be found here: https://www.thingiverse.com/thing:2529598

It is important to make sure your slicer is set up correctly to print this design successfully (see print settings).

Compared to the original design, it is much easier to make your own custom bearing since most of the parameters are now calculated automatically. All the parameters you need to define are the: outer diameter, inner diameter, bearing thickness, tolerances (the default tolerances should be fine for most cases), mesh refinement plus selecting which other features of the bearing you would like e.g. brim, loosening slots.

All the parameters can be set manually by going into the 'Advanced Parameters' tab. Any of the 'override' variables set to a non-zero value will override the calculated parameters with that value. I have done my best to make the code generate a decent bearing for any combination of the basic parameters, but you may still need to tweak it using the advanced parameters.

In terms of the utility of these bearings, they are best suited to light duty radial loads e.g. I have 6 of the old design in a 3kg spool adapter and one in a simple fidget spinner: https://www.thingiverse.com/make:471259 . They can also sometimes hold axial loads depending on the settings; generally good tolerances and printing quality help here. Other than that they are really just an interesting object to print, with some educational value.

The basic design of the bearing is the same as the original but with better code, features and printability. I have now added slots to the base of the rollers, so they can be loosened with a flathead screwdriver if necessary; generally it isn't necessary if your print settings are good, but it is useful to have anyway. The loosening slots are also inset into the roller slightly so that the first layer covers the entire roller base, including over the loosening slots. It's quite easy to force through this thin first layer to reach the slots as shown in the images.

I have also improved the way the cage bridges over the rollers by adding the 'cage slice' feature. This is a bit of a hack to make the first cage bridging layer over the rollers consist of just concentric circles, which makes the bridging clean, without having to set the number of shells very high. It slices the bridging part of the cage into rings with a very small gap between them so that the slicer produces extra shells on the bridging section (see pictures).

You can also generate separate STLs for the different sections of the bearing (raceways, rollers and cage) so that you can do multimaterial bearings. Generally I'd recommend a hard material for the rollers and raceways; PLA is actually decent in this regard. Made entirely from PLA (as with all the examples) they work just fine. Adding a little silicon lubricant makes them work even better.