$fn = 100; d_achse = 3; //Durchmesser Achse bei der Rolle d_achse_halter = 5; // Durchmesser Achse beim Halter d_rolle = 10; //Rollendurchmesser b_rolle = 10; //Rollenbreite b_halter = 1.5; //Halterbreite b_boden = 1.5; //Bodenbreite boden_offset = 2; //Zusätzlicher Rahmen außenrum t_rolle_aussparung_1 = 0.5; // Tiefe der Achsenaussparung - spitz zulaufend t_rolle_aussparung_2 = 1; // Tiefe der Achsenaussparung - zylinder a_rolle_halter = 0.5; // Abstand zwischen Rolle und Halter a_rolle_boden = 3; //Abstand zwischen Rolle und Boden module halter () { translate([- d_rolle / 2,0,0]){ resize([0,d_rolle,0]) { difference () { cylinder(h = b_halter, r = d_rolle * 3 /4); translate([- d_rolle*3/4, -d_rolle*3/4, 0]) cube([d_rolle * 3 /4, 2 * d_rolle * 3 /4, b_halter]); } } translate([-a_rolle_boden, -d_rolle /2, 0]) cube([a_rolle_boden,d_rolle, b_halter]); } translate([0,0,b_halter]) { cylinder(h=t_rolle_aussparung_1 + a_rolle_halter, r1 = d_achse_halter / 2, r2 = d_achse / 2); translate([0,0,t_rolle_aussparung_1]) cylinder(h=t_rolle_aussparung_2 + a_rolle_halter, r = d_achse / 2); } } module halterung () { halter(); translate([0,0,b_rolle + 2 * (a_rolle_halter + b_halter)]) mirror([0,0,1]) halter(); translate([- d_rolle / 2 - a_rolle_boden - b_boden,-d_rolle /2 - boden_offset,-boden_offset]) { cube([b_boden,d_rolle + boden_offset * 2, b_halter * 2 + a_rolle_halter * 2 + b_rolle + boden_offset * 2]); } } module rolle () { translate([0,0,-a_rolle_halter - b_halter]) difference() { translate([0,0,a_rolle_halter + b_halter]) cylinder(h=b_rolle, d=d_rolle); halterung(); } } rolle(); translate([3 * d_rolle,0,b_boden + a_rolle_boden + d_rolle / 2]) rotate([0,-90,0]) halterung();