DIY_3D_Printer/3dprinter.scad

96 lines
2.5 KiB
OpenSCAD

use <angle_bracket.scad>;
use <horizontal_angle_bracket.scad>;
use <Motorhalter.scad>;
use <YRollHolder.scad>;
use <Motor.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([214, 400, 0]) rotate([0, 0, 180]) YRollHolder();
translate([202.5, 26.6, 21]) rotate([0, -90, 0]) Nema17();
}
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);
}