use ; use ; use ; use ; use ; include include include bottmoutline(); bottomAngleBrackets(); horizontalProfile(); YAxis(); printBed(); zMotor(); module bottmoutline() { // draw alu profiles translate([0, - 40, 0]) aluProfile(400); translate([0, 400, 0]) aluProfile(400); translate([0, - 40, 0]) rotate([0, 0, 90]) aluProfile(480); translate([440, - 40, 0]) rotate([0, 0, 90]) aluProfile(480); // linear rails translate([70, 0, 20]) rotate([- 90, 0, 0]) linear_rail(400); translate([330, 0, 20]) rotate([- 90, 0, 0]) linear_rail(400); } module bottomAngleBrackets() { // draw angle bracktes angle_bracket(); translate([400, 0, 0]) rotate([0, 0, 90]) angle_bracket(); translate([400, 400, 0]) rotate([0, 0, 180]) angle_bracket(); translate([0, 400, 0]) rotate([0, 0, 270]) angle_bracket(); } module horizontalProfile() { height = 600; translate([- 40, 180, 0]) rotate([0, - 90, 0]) halfAluProfile(height); translate([460, 180, 0]) rotate([0, - 90, 0]) halfAluProfile(height); // upper part translate([- 60, 180, height]) halfAluProfile(520); // add the horitzontal angle bracktes translate([- 40, 135, 0]) rotate([0, 0, 90]) horizontal_angle_bracket(); translate([440, 265, 0]) rotate([0, 0, 270]) horizontal_angle_bracket(); // angle brackets up translate([- 40, 220, height]) rotate([90, 90, 0]) angle_bracket(); translate([440, 180, height]) rotate([- 90, 90, 0]) angle_bracket(); } module YAxis() { translate([160, 0, 0]) Motorhalter(); translate([222, 400, 0]) rotate([0, 0, 180]) YRollHolder(); translate([200.5, 26.6, 21]) rotate([0, 90, 0]) NEMA(NEMA17M, 180, true); p1 = [0, 0]; p2 = [0, 350.5]; path = [[p1.x, p1.y, pulley_pr(GT2x20ob_pulley)], [p2.x, p2.y, pulley_pr(GT2x20_toothed_idler)] ]; belt = GT2x6; translate([215, 26.5, 20.9]) rotate([0, 90, 0]) union() { belt(belt, path, 13, [0, 0]); translate(p1) rotate([0, 0, 0]) pulley_assembly(GT2x20ob_pulley); translate(p2) pulley_assembly(GT2x20_toothed_idler); } } module printBed() { translate([50, 50, 50]) halfAluProfile(300); translate([50, 300, 50]) halfAluProfile(300); translate([90, 90, 50]) rotate([0, 0, 90]) halfAluProfile(220); translate([350, 90, 50]) rotate([0, 0, 90]) halfAluProfile(220); } module zMotor() { translate([- 20, 240, 81]) rotate([0, 180, 0]) Nema17(); translate([- 20, 240, 97]) linear_rail(500); // add lead screws translate([420, 240, 81]) rotate([0, 180, 0]) Nema17(); translate([420, 240, 97]) linear_rail(500); } // -- MODULES -- // module aluProfile(length) { color("#dddddd") cube([length, 40, 40]); } module halfAluProfile(length) { color("#dddddd") cube([length, 40, 20]); } module linear_rail(length) { color("#cccccc") cylinder(h = length, d = 8, $fn = 33); } module bearing() { cylinder(h = length, d = 8, $fn = 33); }