Compare commits

...

2 Commits

Author SHA1 Message Date
jayAitch256
01c85c8529 alternative rolle 2022-03-25 12:09:25 +01:00
jayAitch256
e5f205caca kugellager: fix wrong radius formular, some asserts 2022-03-24 20:02:28 +01:00
2 changed files with 61 additions and 25 deletions

View File

@@ -1,4 +1,4 @@
$fn = 50; $fn = 200;
module torus(r1=1, r2=2, angle=360, $fn=$fn){ module torus(r1=1, r2=2, angle=360, $fn=$fn){
rotate_extrude(convexity=10, $fn=$fn) rotate_extrude(convexity=10, $fn=$fn)
@@ -6,50 +6,74 @@ module torus(r1=1, r2=2, angle=360, $fn=$fn){
circle(r=r1, $fn=$fn); circle(r=r1, $fn=$fn);
} }
module rounded_cube(size, r=0, center=false, $fn=$fn){ module rounded_cube(size, r=0, $fn=$fn){
translate([r, r, r]) minkowski(){ translate([r, r, r]) minkowski(){
cube([size[0]-r*2, size[1]-r*2, size[2]-r*2]); cube([size[0]-r*2, size[1]-r*2, size[2]-r*2]);
sphere(r, $fn=$fn); sphere(r, $fn=$fn);
} }
} }
module rounded_cube_2d(size, r=0, $fn=$fn){
translate([r, r, 0]) minkowski(){
cube([size[0]-r*2, size[1]-r*2, size[2]/2]);
cylinder(d=r*2, h=size[2]/2, $fn=$fn);
}
}
boden_h = 1;
wall_d = 1.5;
befestigung_d = 2*wall_d;
sphere_d = 3; sphere_d = 3;
sphere_spiel = 0.5; sphere_spiel = 0.2;
sphere_ueberstand = 0.5; sphere_ueberstand = 0.5;
torus_d = 20; spehre_number = 40;
befestigung_d = 3; screw_hole_d = 2.6;
screw_hole_d = 3;
gesamt_h = sphere_d + boden_h - sphere_ueberstand;
gesamt_r = torus_d / 2 + sphere_d; torus_r = (sphere_d / 2) / sin(360 / spehre_number);
torus_inner_r = (sphere_d + sphere_spiel) / 2; torus_inner_r = (sphere_d + sphere_spiel) / 2;
gesamt_h = sphere_d + wall_d - sphere_ueberstand;
gesamt_r = torus_r + torus_inner_r + wall_d;
gesamt_inner_r = torus_r - torus_inner_r - wall_d;
// Asserts
assert(torus_inner_r < torus_r);
assert(torus_inner_r^2 - (torus_inner_r - sphere_ueberstand)^2 < (sphere_d / 2)^2, "Kugeln fallen raus! Überstand oder Spiel reduzieren!");
// Screw holes
module screw_hole() {
rotate(a = [0, 90, 0])
cylinder(d=screw_hole_d, h=befestigung_d);
}
difference() { difference() {
difference() { difference() {
union () { union () {
cylinder(r=gesamt_r, h=gesamt_h); //Cylinder
translate([-befestigung_d, -(gesamt_r + gesamt_h),0]) { difference () {
cube([befestigung_d, (gesamt_r + gesamt_h) * 2, gesamt_h], r=0.25); cylinder(r=gesamt_r, h=gesamt_h);
cylinder(r=gesamt_inner_r, h=gesamt_h);
}
//Befestigung
translate([-befestigung_d, -(gesamt_r + gesamt_h + wall_d),0]) {
rounded_cube_2d ([befestigung_d, (gesamt_r + gesamt_h + wall_d) * 2, gesamt_h], r=0.25);
} }
} }
translate([0,0,torus_inner_r + boden_h]) { translate([0,0,torus_inner_r + wall_d]) {
torus(r1=torus_inner_r, r2=torus_d / 2); torus(r1=torus_inner_r, r2=torus_r);
} }
} }
// Boden
// Only one half halfes
translate([0,-gesamt_r,0]) translate([0,-gesamt_r,0])
cube([gesamt_r, gesamt_r*2, sphere_d + boden_h]); cube([gesamt_r, gesamt_r*2, gesamt_h]);
// Screw holes // Screw holes
translate([-befestigung_d,-(gesamt_r + gesamt_h / 2),gesamt_h / 2]) { translate([-befestigung_d,-(gesamt_r + gesamt_h / 2 + wall_d / 2),gesamt_h / 2]) screw_hole();
rotate(a = [0, 90, 0]) translate([-befestigung_d,(gesamt_r + gesamt_h / 2 + wall_d / 2),gesamt_h / 2]) screw_hole();
cylinder(d=screw_hole_d, h=befestigung_d); translate([-befestigung_d,0,gesamt_h / 2]) screw_hole();
}
translate([-befestigung_d,(gesamt_r + gesamt_h / 2),gesamt_h / 2]) { }
rotate(a = [0, 90, 0])
cylinder(d=screw_hole_d, h=befestigung_d);
}
}

12
rolle_alternativ.scad Normal file
View File

@@ -0,0 +1,12 @@
$fn = 200;
cylinder(d=4, h=25);
*difference () {
union () {
translate([0,0,2 /2]) cube([10,10,2], center=true);
translate([0,0,10 / 2 + 2]) cube([10, 2, 10], center= true);
}
translate([0,1,7]) rotate(a = [90, 0, 0]) cylinder(d=4.2, h=2);
}