Loading

Rotating Bearing

by Hank106, published

Rotating Bearing by Hank106 Nov 21, 2012

Thing Info

6467Views 1011Downloads Found in 3D Printing Tests
Report Thing

Summary

A rotating bearing designed with OpenSCAD

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
BCPI)/(2BR))+.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(MBR,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);

More from 3D Printing Tests

view more

Thing Info

6467Views 1011Downloads Found in 3D Printing Tests
Report Thing

Makes

Liked By

View All

License

Give a Shout Out

If you print this Thing and display it in public proudly give attribution by printing and displaying this tag. Print Thing Tag

 //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
BCPI)/(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(MBR,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 ]);
//}

I took four shots at this with varying shells and fill values but was unsuccessful at getting the bearings to release. I would suggest scaling the spheres down a bit.

Top