major revision of EVERYTHING
This commit is contained in:
39
achse.scad
Normal file
39
achse.scad
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
use <threads-scad/threads.scad>
|
||||||
|
|
||||||
|
// 3D-gedruckte Achse
|
||||||
|
module achse(laser_h,
|
||||||
|
brett_bohrung,
|
||||||
|
brett_dicke,
|
||||||
|
stepper_befestigung_screw_d,
|
||||||
|
stepper_befestigung_l,
|
||||||
|
stepper_befestigung_screw_abstand,
|
||||||
|
gear_abstand_unten,
|
||||||
|
bretter_abstand) {
|
||||||
|
difference() {
|
||||||
|
translate([ 0, 0, -3 * laser_h ]) {
|
||||||
|
RodStart(diameter = brett_bohrung,
|
||||||
|
height = bretter_abstand + brett_dicke + 3 * laser_h,
|
||||||
|
thread_len = 21, thread_diam = 10, thread_pitch = 0);
|
||||||
|
linear_extrude(height = laser_h) {
|
||||||
|
difference() {
|
||||||
|
circle(d = stepper_befestigung_l);
|
||||||
|
translate([
|
||||||
|
stepper_befestigung_l / 2 - stepper_befestigung_screw_abstand, 0
|
||||||
|
]) circle(d = stepper_befestigung_screw_d);
|
||||||
|
translate([
|
||||||
|
-stepper_befestigung_l / 2 + stepper_befestigung_screw_abstand, 0
|
||||||
|
]) circle(d = stepper_befestigung_screw_d);
|
||||||
|
translate([
|
||||||
|
0, stepper_befestigung_l / 2 - stepper_befestigung_screw_abstand
|
||||||
|
]) circle(d = stepper_befestigung_screw_d);
|
||||||
|
translate([
|
||||||
|
0, -stepper_befestigung_l / 2 + stepper_befestigung_screw_abstand
|
||||||
|
]) circle(d = stepper_befestigung_screw_d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([ 0, 14.7, gear_abstand_unten - 1 ]) cylinder(h = 3.5, r = 11);
|
||||||
|
translate([ 0, -14.7, gear_abstand_unten - 1 ]) cylinder(h = 3.5, r = 11);
|
||||||
|
translate([ 0, 0, -3 * laser_h ]) cylinder(h = 20, d = brett_bohrung - 4);
|
||||||
|
}
|
||||||
|
}
|
||||||
164
kugellager.scad
164
kugellager.scad
@@ -1,79 +1,121 @@
|
|||||||
$fn = 200;
|
use <threads-scad/threads.scad>
|
||||||
|
|
||||||
module torus(r1=1, r2=2, angle=360, $fn=$fn){
|
/*
|
||||||
rotate_extrude(convexity=10, $fn=$fn)
|
Schraube MetricCountersunkBolt()
|
||||||
translate([r2, 0, 0])
|
Schraubenloch CountersunkClearanceHole()
|
||||||
circle(r=r1, $fn=$fn);
|
Gewindebolzen RodStart() RodEnd()
|
||||||
|
Mutter MetricNut()
|
||||||
|
*/
|
||||||
|
|
||||||
|
$fn = 300;
|
||||||
|
|
||||||
|
module MetricNutShape(diameter, thickness = 0, tolerance = 0.4) {
|
||||||
|
thickness = (thickness == 0) ? NutThickness(diameter) : thickness;
|
||||||
|
cylinder(h = thickness, r = HexAcrossCorners(diameter) / 2 - 0.5 * tolerance,
|
||||||
|
$fn = 6);
|
||||||
}
|
}
|
||||||
|
|
||||||
module rounded_cube(size, r=0, $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){
|
module rounded_cube_2d(size, r = 0, $fn = $fn) {
|
||||||
translate([r, r, 0]) minkowski(){
|
translate([ r, r, 0 ]) minkowski() {
|
||||||
cube([size[0]-r*2, size[1]-r*2, size[2]/2]);
|
cube([ size[0] - r * 2, size[1] - r * 2, size[2] / 2 ]);
|
||||||
cylinder(d=r*2, h=size[2]/2, $fn=$fn);
|
cylinder(d = r * 2, h = size[2] / 2, $fn = $fn);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module kugellager_mit_nuts(sphere_number = 330, h = 10 + 0.5) {
|
||||||
|
wall_d = 1.5;
|
||||||
|
sphere_d = 3;
|
||||||
|
sphere_spiel = 0.2;
|
||||||
|
sphere_ueberstand = 0.5;
|
||||||
|
screws_d = 3;
|
||||||
|
screws_inner_number = 2;
|
||||||
|
screws_outer_number = 3;
|
||||||
|
gesamt_h = h - sphere_ueberstand;
|
||||||
|
angle = 90;
|
||||||
|
|
||||||
wall_d = 1.5;
|
torus_r = (sphere_d / 2) / sin(360 / sphere_number);
|
||||||
befestigung_d = 2*wall_d;
|
torus_inner_r = (sphere_d + sphere_spiel) / 2;
|
||||||
sphere_d = 3;
|
gesamt_r = torus_r + torus_inner_r + wall_d;
|
||||||
sphere_spiel = 0.2;
|
gesamt_inner_r = torus_r - torus_inner_r - wall_d;
|
||||||
sphere_ueberstand = 0.5;
|
befestigung_d = screws_d + 4 * wall_d;
|
||||||
spehre_number = 40;
|
|
||||||
screw_hole_d = 2.6;
|
|
||||||
|
|
||||||
|
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!");
|
||||||
|
|
||||||
torus_r = (sphere_d / 2) / sin(360 / spehre_number);
|
|
||||||
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() {
|
||||||
union () {
|
rotate_extrude(convexity = 10, angle = angle, $fn = $fn) {
|
||||||
//Cylinder
|
difference() {
|
||||||
difference () {
|
square([ gesamt_r, gesamt_h ]);
|
||||||
cylinder(r=gesamt_r, h=gesamt_h);
|
square([ gesamt_inner_r, gesamt_h ]);
|
||||||
cylinder(r=gesamt_inner_r, h=gesamt_h);
|
translate([
|
||||||
|
torus_r, gesamt_h - torus_inner_r + sphere_ueberstand + sphere_spiel,
|
||||||
|
0
|
||||||
|
]) circle(r = torus_inner_r, $fn = $fn);
|
||||||
}
|
}
|
||||||
|
translate([ gesamt_inner_r - befestigung_d, 0, 0 ])
|
||||||
|
square([ 2 * (befestigung_d + torus_inner_r + wall_d), wall_d ]);
|
||||||
//Befestigung
|
}
|
||||||
translate([-befestigung_d, -(gesamt_r + gesamt_h + wall_d),0]) {
|
for (r = [
|
||||||
rounded_cube_2d ([befestigung_d, (gesamt_r + gesamt_h + wall_d) * 2, gesamt_h], r=0.25);
|
gesamt_r + befestigung_d / 2, gesamt_inner_r - befestigung_d / 2
|
||||||
|
]) {
|
||||||
|
screws_number = (r == gesamt_r + befestigung_d / 2) ? screws_outer_number
|
||||||
|
: screws_inner_number;
|
||||||
|
for (i = [1:screws_number]) {
|
||||||
|
phi = angle / screws_number * (i - 1 / 2);
|
||||||
|
translate([ r * cos(phi), r * sin(phi), wall_d / 2 ])
|
||||||
|
MetricNutShape(diameter = screws_d);
|
||||||
|
translate([ r * cos(phi), r * sin(phi), 0 ])
|
||||||
|
cylinder(h = wall_d, r = (screws_d + 0.4) / 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
translate([0,0,torus_inner_r + wall_d]) {
|
|
||||||
torus(r1=torus_inner_r, r2=torus_r);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module kugellager(sphere_number = 330, h = 10 + 0.5, nut_d = 10, wall_d = 1.5) {
|
||||||
// Only one half halfes
|
sphere_d = 3;
|
||||||
translate([0,-gesamt_r,0])
|
sphere_spiel = 0.2;
|
||||||
cube([gesamt_r, gesamt_r*2, gesamt_h]);
|
sphere_ueberstand = 0.5;
|
||||||
|
screws_d = 3;
|
||||||
// Screw holes
|
screws_inner_number = 2;
|
||||||
translate([-befestigung_d,-(gesamt_r + gesamt_h / 2 + wall_d / 2),gesamt_h / 2]) screw_hole();
|
screws_outer_number = 3;
|
||||||
translate([-befestigung_d,(gesamt_r + gesamt_h / 2 + wall_d / 2),gesamt_h / 2]) screw_hole();
|
gesamt_h = h - sphere_ueberstand;
|
||||||
translate([-befestigung_d,0,gesamt_h / 2]) screw_hole();
|
angle = 360;
|
||||||
|
|
||||||
|
torus_r = (sphere_d / 2) / sin(360 / sphere_number);
|
||||||
|
torus_inner_r = (sphere_d + sphere_spiel) / 2;
|
||||||
|
gesamt_r = torus_r + torus_inner_r + wall_d;
|
||||||
|
gesamt_inner_r = torus_r - torus_inner_r - wall_d;
|
||||||
|
befestigung_d = screws_d + 4 * wall_d;
|
||||||
|
|
||||||
|
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!");
|
||||||
|
|
||||||
|
rotate_extrude(convexity = 10, angle = angle, $fn = $fn) {
|
||||||
|
difference() {
|
||||||
|
square([ gesamt_r, gesamt_h ]);
|
||||||
|
square([ gesamt_inner_r, gesamt_h ]);
|
||||||
|
translate([
|
||||||
|
torus_r, gesamt_h - torus_inner_r + sphere_ueberstand + sphere_spiel, 0
|
||||||
|
]) circle(r = torus_inner_r, $fn = $fn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
cylinder(r = gesamt_r, h = wall_d);
|
||||||
|
cylinder(d = 2.5 * nut_d, h = 2 * wall_d);
|
||||||
|
}
|
||||||
|
MetricNutShape(diameter = nut_d, thickness = wall_d);
|
||||||
|
translate([ 0, 0, wall_d ]) cylinder(d = nut_d + 2, h = wall_d);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,106 +1,83 @@
|
|||||||
|
use <achse.scad>
|
||||||
use <gears/gears.scad>
|
use <gears/gears.scad>
|
||||||
|
use <kugellager.scad>
|
||||||
|
use <stepper.scad>
|
||||||
|
use <zahnkranz.scad>
|
||||||
|
|
||||||
$fn = 50;
|
/*
|
||||||
gear_modul = 1;
|
Schraube MetricCountersunkBolt()
|
||||||
gear_tooth_number_small = 10;
|
Schraubenloch CountersunkClearanceHole()
|
||||||
gear_tooth_number_large = 150;
|
Gewindebolzen RodStart() RodEnd()
|
||||||
gear_large_full_diameter = 190;
|
Mutter MetricNut()
|
||||||
|
*/
|
||||||
|
|
||||||
module brett () {
|
$fn = 200;
|
||||||
difference () {
|
gear_modul = 0.5;
|
||||||
cylinder(d=197, h=12);
|
laser_h = 3;
|
||||||
cylinder(d=15.5, h=12);
|
brett_dicke = 13;
|
||||||
|
brett_bohrung = 15.5;
|
||||||
|
bretter_abstand = 8;
|
||||||
|
gear_abstand_unten = 2;
|
||||||
|
|
||||||
|
// Verwendetes Reely-Plastik-Doppelzahnrad
|
||||||
|
module double_gear(tooth_number, flipped = false) {
|
||||||
|
if (!flipped) {
|
||||||
|
spur_gear(modul = gear_modul, tooth_number = tooth_number, width = 1.5,
|
||||||
|
bore = 3);
|
||||||
|
translate([ 0, 0, 1.5 ])
|
||||||
|
spur_gear(modul = gear_modul, tooth_number = 12, width = 4, bore = 3);
|
||||||
|
} else {
|
||||||
|
spur_gear(modul = gear_modul, tooth_number = 12, width = 4, bore = 3);
|
||||||
|
translate([ 0, 0, 4 ]) spur_gear(
|
||||||
|
modul = gear_modul, tooth_number = tooth_number, width = 1.5, bore = 3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module stepper_zahnrad () {
|
// Holzbrett
|
||||||
difference () {
|
module brett() {
|
||||||
union () {
|
brett_durchmesser = 197;
|
||||||
translate([0,0,10]) spur_gear(modul=gear_modul, tooth_number=gear_tooth_number_small, width=3, bore=0);
|
linear_extrude(brett_dicke) difference() {
|
||||||
cylinder(h=10+3, d=6.5+2);
|
circle(d = brett_durchmesser);
|
||||||
}
|
circle(d = brett_bohrung);
|
||||||
stepper_welle();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module stepper_welle () {
|
|
||||||
difference() {
|
|
||||||
cylinder(d=6.5,h=71.5);
|
|
||||||
translate([6,0,0]) cube([6.5,6.5,71.5 *2], center = true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module stepper () {
|
|
||||||
union () {
|
|
||||||
translate([-56.5 / 2, -56.5 / 2, 0]) union () {
|
|
||||||
difference () {
|
|
||||||
//Grundkörper
|
|
||||||
cube([56.5,56.5,50.5]);
|
|
||||||
|
|
||||||
//Einrundungen
|
|
||||||
cylinder(h=45,r=9.5);
|
|
||||||
translate([56.5, 0,0]) cylinder(45,9.5,9.5);
|
|
||||||
translate([0, 56.5,0]) cylinder(45,9.5,9.5);
|
|
||||||
translate([56.5, 56.5,0]) cylinder(45,9.5,9.5);
|
|
||||||
|
|
||||||
//Schrauben
|
|
||||||
translate([4,4,45]) cylinder(h=6,d=5.5);
|
|
||||||
translate([56.5-4,4,45]) cylinder(h=6,d=5.5);
|
|
||||||
translate([4,56.5-4,45]) cylinder(h=6,d=5.5);
|
|
||||||
translate([56.5-4,56.5-4,45]) cylinder(h=6,d=5.5);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Welle
|
|
||||||
translate([56.5 / 2, 56.5 / 2, 0]) union () {
|
|
||||||
stepper_welle();
|
|
||||||
translate([0,0,50.5]) cylinder(h=1.5, d=38);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
translate([0,0,71.5-(10+3)]) stepper_zahnrad();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module stepper_small () {
|
|
||||||
union () {
|
|
||||||
|
|
||||||
//Grundkörper
|
|
||||||
translate([-42.2 / 2, -42.2 / 2, 0]) union () {
|
|
||||||
cube([42.2,42.2,32]);
|
|
||||||
translate([42.2 / 2, 42.2 / 2, 32]) cylinder(h=1.5, d=22);
|
|
||||||
}
|
|
||||||
|
|
||||||
//Welle & Zahnrad
|
|
||||||
translate([0,0,32+1.5]) {
|
|
||||||
union () {
|
|
||||||
translate([0,0,18-3]) spur_gear(modul=gear_modul, tooth_number=10, width=3, bore=0);
|
|
||||||
cylinder(h=18, d=5);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//Befestigung
|
|
||||||
translate ([-80/2, -20/2, 32-5]) difference () {
|
|
||||||
cube([80, 20, 5]);
|
|
||||||
union () {
|
|
||||||
translate([4, 20/2, 0]) cylinder(h=5, d=4) ;
|
|
||||||
translate([80-4, 20/2, 0]) cylinder(h=5, d=4) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module large_gear () {
|
|
||||||
difference () {
|
|
||||||
cylinder(h = 3, d=gear_large_full_diameter);
|
|
||||||
spur_gear(modul=gear_modul, tooth_number=gear_tooth_number_large, width=3, bore=0);
|
|
||||||
cylinder(h = 3, d=(gear_large_full_diameter - 60));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Stepper
|
// Stepper
|
||||||
*color("red") translate([0,70,0]) stepper_small();
|
stepper_grundkoerper_h = 32;
|
||||||
|
stepper_befestigung_l = 78;
|
||||||
|
stepper_befestigung_screw_d = 4;
|
||||||
|
stepper_befestigung_screw_abstand = 4;
|
||||||
|
|
||||||
//Brett unten
|
translate([
|
||||||
*color("grey") translate([0,0,-12]) brett ();
|
0, 0, -(stepper_grundkoerper_h + 3 * laser_h)
|
||||||
|
]) stepper_small(grundkoerper_h = stepper_grundkoerper_h,
|
||||||
|
befestigung_l = stepper_befestigung_l,
|
||||||
|
befestigung_screw_d = stepper_befestigung_screw_d,
|
||||||
|
befestigung_screw_abstand = stepper_befestigung_screw_abstand);
|
||||||
|
|
||||||
// Top Gear
|
// Anordnung der Zahnräder (mit Augenmaß)
|
||||||
*color("yellow") translate([0,0,32+1.5+18-3]) large_gear ();
|
color("red") translate([ 0, 14.7, gear_abstand_unten ])
|
||||||
|
double_gear(tooth_number = 40);
|
||||||
|
color("green") translate([ 0, 30.2, gear_abstand_unten ])
|
||||||
|
double_gear(tooth_number = 50, flipped = true);
|
||||||
|
translate([ 0, 48.3, gear_abstand_unten ]) double_gear(tooth_number = 60);
|
||||||
|
|
||||||
|
color("blue") translate([ 0, 0, bretter_abstand - laser_h ])
|
||||||
|
zahnkranz(tooth_number = 206, laser_h = laser_h);
|
||||||
|
|
||||||
|
*color("grey") translate([ 0, 0, bretter_abstand ]) brett();
|
||||||
|
|
||||||
|
color("blue")
|
||||||
|
achse(laser_h = laser_h,
|
||||||
|
brett_bohrung = brett_bohrung,
|
||||||
|
brett_dicke = brett_dicke,
|
||||||
|
stepper_befestigung_screw_d = stepper_befestigung_screw_d,
|
||||||
|
stepper_befestigung_l = stepper_befestigung_l,
|
||||||
|
stepper_befestigung_screw_abstand = stepper_befestigung_screw_abstand,
|
||||||
|
gear_abstand_unten = gear_abstand_unten,
|
||||||
|
bretter_abstand = bretter_abstand);
|
||||||
|
|
||||||
|
color("red") kugellager_mit_nuts(sphere_number = 290, h = bretter_abstand);
|
||||||
|
|
||||||
|
translate([ 0, 0, bretter_abstand + brett_dicke + 0.5 + 8 ]) mirror([ 0, 0, 1 ])
|
||||||
|
kugellager(sphere_number = 100, h = 8, nut_d = 10, wall_d = 3);
|
||||||
102
stepper.scad
Normal file
102
stepper.scad
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
use <gears/gears.scad>
|
||||||
|
|
||||||
|
// 0.5er - Zahnrad, das an der Stepperwelle befestigt wird
|
||||||
|
module stepper_zahnrad(tooth_number = 20, gear_modul = 0.5) {
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
translate([ 0, 0, 10 ]) spur_gear(
|
||||||
|
modul = gear_modul, tooth_number = tooth_number, width = 3, bore = 0);
|
||||||
|
cylinder(h = 10 + 3, d = 6.5 + 2);
|
||||||
|
}
|
||||||
|
difference() {
|
||||||
|
cylinder(d = 6.5, h = 71.5);
|
||||||
|
translate([ 6, 0, 0 ]) cube([ 6.5, 6.5, 71.5 * 2 ], center = true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Großer Steppermotor - Modell PSM42BYGHW603
|
||||||
|
module stepper() {
|
||||||
|
union() {
|
||||||
|
translate([ -56.5 / 2, -56.5 / 2, 0 ]) union() {
|
||||||
|
difference() { // Grundkörper
|
||||||
|
cube([ 56.5, 56.5, 50.5 ]);
|
||||||
|
|
||||||
|
// Einrundungen
|
||||||
|
cylinder(h = 45, r = 9.5);
|
||||||
|
translate([ 56.5, 0, 0 ]) cylinder(45, 9.5, 9.5);
|
||||||
|
translate([ 0, 56.5, 0 ]) cylinder(45, 9.5, 9.5);
|
||||||
|
translate([ 56.5, 56.5, 0 ]) cylinder(45, 9.5, 9.5);
|
||||||
|
|
||||||
|
// Schrauben
|
||||||
|
translate([ 4, 4, 45 ]) cylinder(h = 6, d = 5.5);
|
||||||
|
translate([ 56.5 - 4, 4, 45 ]) cylinder(h = 6, d = 5.5);
|
||||||
|
translate([ 4, 56.5 - 4, 45 ]) cylinder(h = 6, d = 5.5);
|
||||||
|
translate([ 56.5 - 4, 56.5 - 4, 45 ]) cylinder(h = 6, d = 5.5);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Welle
|
||||||
|
translate([ 56.5 / 2, 56.5 / 2, 0 ]) union() {
|
||||||
|
difference() {
|
||||||
|
cylinder(d = 6.5, h = 71.5);
|
||||||
|
translate([ 6, 0, 0 ]) cube([ 6.5, 6.5, 71.5 * 2 ], center = true);
|
||||||
|
}
|
||||||
|
translate([ 0, 0, 50.5 ]) cylinder(h = 1.5, d = 38);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
translate([ 0, 0, 71.5 - (10 + 3) ]) stepper_zahnrad();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kleiner Steppermotor - Modell KP4M2-217
|
||||||
|
module stepper_small(grundkoerper_h,
|
||||||
|
befestigung_l,
|
||||||
|
befestigung_screw_d,
|
||||||
|
befestigung_screw_abstand,
|
||||||
|
gear_modul = 0.5) {
|
||||||
|
grundkoerper_kante = 42.3;
|
||||||
|
grundkoerper_cyl_d = 22;
|
||||||
|
grundkoerper_cyl_h = 2;
|
||||||
|
befestigung_h = 5;
|
||||||
|
befestigung_b = 20;
|
||||||
|
|
||||||
|
welle_h = 18;
|
||||||
|
welle_d = 5;
|
||||||
|
zahnrad_h = 13;
|
||||||
|
|
||||||
|
union() {
|
||||||
|
// Grundkörper
|
||||||
|
union() {
|
||||||
|
translate([ 0, 0, grundkoerper_h / 2 ])
|
||||||
|
cube([ grundkoerper_kante, grundkoerper_kante, grundkoerper_h ],
|
||||||
|
center = true);
|
||||||
|
translate([ 0, 0, grundkoerper_h ])
|
||||||
|
cylinder(h = grundkoerper_cyl_h, d = grundkoerper_cyl_d);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Welle & Zahnrad
|
||||||
|
translate([ 0, 0, grundkoerper_h + grundkoerper_cyl_h ]) {
|
||||||
|
union() {
|
||||||
|
translate([ 0, 0, welle_h - zahnrad_h ]) spur_gear(
|
||||||
|
modul = gear_modul, tooth_number = 20, width = 13, bore = 0);
|
||||||
|
cylinder(h = welle_h, d = welle_d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Befestigung
|
||||||
|
translate([
|
||||||
|
-befestigung_l / 2, -befestigung_b / 2, grundkoerper_h - befestigung_h
|
||||||
|
]) {
|
||||||
|
linear_extrude(height = befestigung_h) {
|
||||||
|
difference() {
|
||||||
|
square([ befestigung_l, befestigung_b ]);
|
||||||
|
translate([ befestigung_screw_abstand, befestigung_b / 2 ])
|
||||||
|
circle(d = befestigung_screw_d);
|
||||||
|
translate(
|
||||||
|
[ befestigung_l - befestigung_screw_abstand, befestigung_b / 2 ])
|
||||||
|
circle(d = befestigung_screw_d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
26
zahnkranz.scad
Normal file
26
zahnkranz.scad
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
use <gears/gears.scad>
|
||||||
|
|
||||||
|
// Am oberen Brett befestigter Zahnkranz (TODO: 206 oder 201 Zähne?)
|
||||||
|
module zahnkranz(tooth_number, laser_h, gear_modul = 0.5) {
|
||||||
|
screw_d = 3;
|
||||||
|
rim_width = 8;
|
||||||
|
screw_a = gear_modul * (tooth_number + 77 / 30) / 2 + rim_width / 2;
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
ring_gear(modul = gear_modul, tooth_number = tooth_number, width = laser_h,
|
||||||
|
rim_width = rim_width);
|
||||||
|
translate([ screw_a, 0, 0 ]) cylinder(d = screw_d, h = laser_h);
|
||||||
|
translate([ -screw_a, 0, 0 ]) cylinder(d = screw_d, h = laser_h);
|
||||||
|
translate([ 0, screw_a, 0 ]) cylinder(d = screw_d, h = laser_h);
|
||||||
|
translate([ 0, -screw_a, 0 ]) cylinder(d = screw_d, h = laser_h);
|
||||||
|
|
||||||
|
translate([ 1 / sqrt(2) * screw_a, 1 / sqrt(2) * screw_a, 0 ])
|
||||||
|
cylinder(d = screw_d, h = laser_h);
|
||||||
|
translate([ 1 / sqrt(2) * screw_a, -1 / sqrt(2) * screw_a, 0 ])
|
||||||
|
cylinder(d = screw_d, h = laser_h);
|
||||||
|
translate([ -1 / sqrt(2) * screw_a, 1 / sqrt(2) * screw_a, 0 ])
|
||||||
|
cylinder(d = screw_d, h = laser_h);
|
||||||
|
translate([ -1 / sqrt(2) * screw_a, -1 / sqrt(2) * screw_a, 0 ])
|
||||||
|
cylinder(d = screw_d, h = laser_h);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user