The trouble with 3D printing a ball bearing is that spheres don't adhere to the 45 degree rule, so they tend to print poorly, or if metal balls are used instead, then the bearing requires assembly. This is a new kind of bearing that can only be manufactured by 3D printing and comes preassembled.
It is a planetary gearset and functions like a cross between a needle bearing and a thrust bearing. No cage is required to keep the rollers in place, because their gearing keeps them perfectly spaced. The gears are all herringbone, which is why it cannot be disassembled and also why it can act as a thrust bearing. If you're wondering how well a 3D printed bearing could work under load, please check out my video: http://youtu.be/ZghwSBiM0sU
This design is fully parametric and made to be adjusted in the Customizer app to whatever you need. Thanks to aubenc for finding a problem in the first version.
The key to any bearing is the tolerance between the moving parts. Since this is printed all at once, you want the minimum tolerance possible, where any less would fuse the parts together. I print these with the MakerWare medium defaults on my Replicator 1 and it requires a fair bit of torque to break it free at first. It's designed to fit onto the standard English hex size for screwdriver bits, so you can use a tool to help turn it. Running it in a drill for a few minutes helps to smooth out the rotation.
You can adjust the tolerance in Customizer if you need. You can also change the dimensions, numbers of planets, numbers of teeth, etc. Normal gears use a small pressure angle in order to transmit torque, but here I use a large pressure angle so that they transmit force better (hence why they look more pointed than usual). Your chosen number of sun gear teeth is approximate because planetary gearboxes turn out to be quite constrained in terms of what tooth numbers will fit. See the beginning of my code for the equation I came up with.