Rotating Bearing

110
Downloads
1298
Views
Published on November 21, 2012

Description

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*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);

Tags
This Thing has no tags.
Report as inappropriate

You must be logged in to post a 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 ]);
//}

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.