# Rotating Bearing

## by Hank106, published

## Description

A rotating bearing designed with OpenSCAD

## Recent Comments

view all## Tags

## License

## Give a Shout Out

## Instructions

Revised .stl file to correct issue noted by BSchuler. The revised OpenSCAD code is below:

//Bearing Dimensions //Basic Inputs t=8; //thickness of bearing OR=30; //Outer Radius of outer bearing race IR=18; //Inner Radius of inner bearing race PCT=.8; //Percent of t or d used to determine ball size

//Derived Inputs
d=OR-IR; //difference between Outer & Inner Radius of races
echo("bearing thickness=",t);
echo("Outer-Inner Bearing Radius=",d);
BR=(PCT/2)*min(t,d); //Ball bearing radius
echo("BR=",BR);
BC=(OR+IR)/2; //Radius of ball bearing circle
GP=BR/3; //Half of Gap between inner and outer race, set at 1/3 ball radius
M=1.01; //Multiplier to make space between races larger than ball bearing
N=round(((2*BC*PI)/(2*BR))+.5)-1; //Number of balls in bearing
echo("N=",N);

$fn=50; //Increase to 100 or greater to improve smoothness of bearings & races but this significantly increases time to render

//difference forms races of bearing
difference(){
//disk forming OD of bearing
cylinder(t,OR,OR,center=true);
//remove ring to form Id of outer race and Od of inner race
rotate_extrude(convexity=20)translate([BC,0,0])circle(M*BR,center=true);
//remove disk to form ID of inner race
cylinder(t,IR,IR,center=true);
//opening between inner and outer race
translate([0,0,0])difference(){
cylinder(t+2,BC+GP,BC+GP,center=true);
cylinder(t+2,BC-GP,BC-GP,center=true);}}
//adds ball bearings within race
for (i=[1:N])rotate(i*360/N*[0,0,1])translate([BC,0,0])sphere(BR,center=true);

Please Login to Comment

Â //Bearing Dimensions //Basic Inputs t=8; //thickness of bearing OR=30; //Outer Radius of outer bearing race IR=18; //Inner Radius of inner bearing race PCT=.9; //Percent of t or d used to determine ball size

//Derived Inputs
d=OR-IR; //difference between Outer & Inner Radius of races
echo("bearing thickness=",t);
echo("Outer-Inner Bearing Radius=",d);
BR=(PCT/2)*min(t,d); //Ball bearing radius
echo("BR=",BR);
BC=(OR+IR)/2;Â //Radius of ball bearing circle
GP=BR/3;Â //Half of Gap between inner and outer race, set at 1/3 ball radius
M=1.000; //Multiplier to make space between races larger than ball bearing
N=round(((2*BC*PI)/(2*BR))+.5)-1;Â //Number of balls in bearing
echo("N=",N);

$fn=50;
//union adds ball bearings to race (disable if balls to be separate entitites)
//union(){
//difference forms races of bearing
difference(){
//disk forming OD of bearing
cylinder(t,OR,OR,center=true);
//remove ring to form Id of outer race and Od of inner race
rotate_extrude(convexity=20)translate([BC,0,0])circle(M*BR,center=true);
//remove disk to form ID of inner race
cylinder(t,IR,IR,center=true);
//opening between inner and outer race
translate([0,0,-1])difference(){
cylinder(t+2,BC+GP,BC+GP,center=true);
cylinder(t+2,BC-GP,BC-GP,center=true);}}
//adds ball bearings within race
for (i=[1:N])rotate(i*360/N*[0,0,1])translate([BC,0,0])sphere(BR,center=true,$fn=50[ -0.35, 0.67, 0.11 ][ 188.50, 0.00, 27.80 ]);
//}

Â //Bearing Dimensions //Basic Inputs t=8; //thickness of bearing OR=30; //Outer Radius of outer bearing race IR=18; //Inner Radius of inner bearing race PCT=.9; //Percent of t or d used to determine ball size

//Derived Inputs d=OR-IR; //difference between Outer & Inner Radius of races echo("bearing thickness=",t); echo("Outer-Inner Bearing Radius=",d); BR=(PCT/2)

min(t,d); //Ball bearing radius echo("BR=",BR); BC=(OR+IR)/2;Â //Radius of ball bearing circle GP=BR/3;Â //Half of Gap between inner and outer race, set at 1/3 ball radius M=1.000; //Multiplier to make space between races larger than ball bearing N=round(((2BCPI)/(2BR))+.5)-1;Â //Number of balls in bearing echo("N=",N);$fn=50; //union adds ball bearings to race (disable if balls to be separate entitites) //union(){ //difference forms races of bearing difference(){ //disk forming OD of bearing cylinder(t,OR,OR,center=true); //remove ring to form Id of outer race and Od of inner race rotate_extrude(convexity=20)translate([BC,0,0])circle(M

BR,center=true); //remove disk to form ID of inner race cylinder(t,IR,IR,center=true); //opening between inner and outer race translate([0,0,-1])difference(){ cylinder(t+2,BC+GP,BC+GP,center=true); cylinder(t+2,BC-GP,BC-GP,center=true);}} //adds ball bearings within race for (i=[1:N])rotate(i360/N*[0,0,1])translate([BC,0,0])sphere(BR,center=true,$fn=50[ -0.35, 0.67, 0.11 ][ 188.50, 0.00, 27.80 ]); //}