You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
$fa=1;
|
|
$fs=0.5;
|
|
$fn = 50;
|
|
|
|
// Place balls inside the bearing groove based on a sample ball provided as
|
|
// children
|
|
module place_evenly(n) {
|
|
step = 360 / n;
|
|
for(t=[0:step:369]) {
|
|
rotate([0,0,t])
|
|
children();
|
|
}
|
|
}
|
|
|
|
module ball_bearing(od, id, bd, width, groove, space) {
|
|
center_line_radius = (od-id)/4+id/2;
|
|
|
|
difference() {
|
|
union() {
|
|
// outer ring
|
|
difference() {
|
|
cylinder(d=od, h=width, center=true);
|
|
cylinder(d=id+bd*(1-groove)*2, h=width+1, center=true);
|
|
}
|
|
// inner ring
|
|
difference() {
|
|
cylinder(d=od-bd*(1-groove)*2, h=width, center=true);
|
|
cylinder(d=id, h=width+1, center=true);
|
|
}
|
|
}
|
|
|
|
// groove
|
|
rotate_extrude(convexity = 10) {
|
|
translate([center_line_radius, 0, 0]) circle(d=bd);
|
|
}
|
|
}
|
|
|
|
// Place balls inside the groove
|
|
n = floor(center_line_radius * 2 * PI / (bd * (1+space)));
|
|
place_evenly(n) {
|
|
translate([center_line_radius, 0, 0]) sphere(d=bd);
|
|
}
|
|
}
|
|
|
|
// 6017 SKF Metric Open Deep Groove Ball Bearing 85x130x22mm
|
|
ball_bearing(130, 85, 19, 22, 0.15, 0.5);
|
|
|