DIY_3D_Printer/3dprinter.scad
2021-01-22 19:57:01 +01:00

117 lines
3.1 KiB
OpenSCAD

use <angle_bracket.scad>;
use <horizontal_angle_bracket.scad>;
use <Motorhalter.scad>;
use <YRollHolder.scad>;
use <Motor.scad>;
include <NopSCADlib/core.scad>
include <NopSCADlib/vitamins/stepper_motors.scad>
include <NopSCADlib/vitamins/pulleys.scad>
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);
}