diff --git a/kugellager.scad b/kugellager.scad new file mode 100644 index 0000000..762b801 --- /dev/null +++ b/kugellager.scad @@ -0,0 +1,55 @@ +$fn = 50; + +module torus(r1=1, r2=2, angle=360, $fn=$fn){ + rotate_extrude(convexity=10, $fn=$fn) + translate([r2, 0, 0]) + circle(r=r1, $fn=$fn); +} + +module rounded_cube(size, r=0, center=false, $fn=$fn){ + translate([r, r, r]) minkowski(){ + cube([size[0]-r*2, size[1]-r*2, size[2]-r*2]); + sphere(r, $fn=$fn); + } +} + + +boden_h = 1; +sphere_d = 3; +sphere_spiel = 0.5; +sphere_ueberstand = 0.5; +torus_d = 20; +befestigung_d = 3; +screw_hole_d = 3; + +gesamt_h = sphere_d + boden_h - sphere_ueberstand; +gesamt_r = torus_d / 2 + sphere_d; +torus_inner_r = (sphere_d + sphere_spiel) / 2; + +difference() { + difference() { + union () { + cylinder(r=gesamt_r, h=gesamt_h); + translate([-befestigung_d, -(gesamt_r + gesamt_h),0]) { + cube([befestigung_d, (gesamt_r + gesamt_h) * 2, gesamt_h], r=0.25); + } + } + translate([0,0,torus_inner_r + boden_h]) { + torus(r1=torus_inner_r, r2=torus_d / 2); + } + } + + // Boden + translate([0,-gesamt_r,0]) + cube([gesamt_r, gesamt_r*2, sphere_d + boden_h]); + + // Screw holes + translate([-befestigung_d,-(gesamt_r + gesamt_h / 2),gesamt_h / 2]) { + rotate(a = [0, 90, 0]) + cylinder(d=screw_hole_d, h=befestigung_d); + } + translate([-befestigung_d,(gesamt_r + gesamt_h / 2),gesamt_h / 2]) { + rotate(a = [0, 90, 0]) + cylinder(d=screw_hole_d, h=befestigung_d); + } +}