OK, I couldn’t resist. Tweaking a few lines of code wrapped a knurl around emmitt’s Gear Bearing for enhanced griptivity:

That image has desaturated red to suppress the camera’s red burnout. It looks better in the realm of pure math:

Reducing the tolerance parameter to 0.4 produced a surprisingly rigid, yet freely turning, bearing that required no cleanup: it popped off the plate ready to roll!
The heavy lifting in the OpenSCAD source code remains emmitt’s work. I replaced the outer cylinder with a knurl and simplified his monogram to stand out better amid the diamonds. This is the affected section:
... snippage ...
translate([0,0,T/2]){
difference(){
// cylinder(r=D/2,h=T,center=true,$fn=100);
render(convexity=10)
translate([0,0,-T/2])
knurl(k_cyl_hg=T,
k_cyl_od=D,
knurl_wd=5.0,
knurl_hg=5.0,
knurl_dp=0.5,
e_smooth=5.0/2);
herringbone(nr,pitch,P,DR,-tol,helix_angle,T+0.2);
// difference(){
translate([0,-(D/2+4.5),0])rotate([90,0,0])monogram(h=10);
// cylinder(r=D/2-0.25,h=T+2,center=true,$fn=100);
// }
}
rotate([0,0,(np+1)*180/ns+phi*(ns+np)*2/ns])
difference(){
mirror([0,1,0])
herringbone(ns,pitch,P,DR,tol,helix_angle,T);
cylinder(r=w/sqrt(3),h=T+1,center=true,$fn=6);
}
for(i=[1:m])rotate([0,0,i*360/m+phi])translate([pitchD/2*(ns+np)/nr,0,0])
rotate([0,0,i*ns/m*360/np-phi*(ns+np)/np-phi])
render(convexity=10)
herringbone(np,pitch,P,DR,tol,helix_angle,T);
}
I also added a few render(convexity=n) operations to improve the preview, but that’s just cosmetic.








