2021-01-04 18:08:21 +00:00
|
|
|
use <angle_bracket.scad>;
|
|
|
|
use <horizontal_angle_bracket.scad>;
|
|
|
|
use <Motorhalter.scad>;
|
|
|
|
use <YRollHolder.scad>;
|
2021-01-05 23:50:35 +00:00
|
|
|
use <Motor.scad>;
|
2021-01-04 18:08:21 +00:00
|
|
|
|
2021-01-22 18:57:01 +00:00
|
|
|
include <NopSCADlib/core.scad>
|
|
|
|
include <NopSCADlib/vitamins/stepper_motors.scad>
|
|
|
|
include <NopSCADlib/vitamins/pulleys.scad>
|
|
|
|
|
|
|
|
|
2021-01-04 18:08:21 +00:00
|
|
|
bottmoutline();
|
|
|
|
bottomAngleBrackets();
|
|
|
|
|
|
|
|
horizontalProfile();
|
|
|
|
YAxis();
|
|
|
|
|
2021-01-04 20:09:43 +00:00
|
|
|
printBed();
|
2021-01-05 23:50:35 +00:00
|
|
|
zMotor();
|
2021-01-04 20:09:43 +00:00
|
|
|
|
2021-01-04 18:08:21 +00:00
|
|
|
|
|
|
|
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);
|
2021-01-05 23:50:35 +00:00
|
|
|
|
|
|
|
// linear rails
|
2021-01-22 18:57:01 +00:00
|
|
|
translate([70, 0, 20]) rotate([- 90, 0, 0]) linear_rail(400);
|
|
|
|
translate([330, 0, 20]) rotate([- 90, 0, 0]) linear_rail(400);
|
2021-01-04 18:08:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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();
|
2021-01-05 23:50:35 +00:00
|
|
|
translate([440, 180, height]) rotate([- 90, 90, 0]) angle_bracket();
|
2021-01-04 18:08:21 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module YAxis() {
|
|
|
|
translate([160, 0, 0]) Motorhalter();
|
|
|
|
|
2021-01-22 18:57:01 +00:00
|
|
|
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]);
|
2021-01-05 23:50:35 +00:00
|
|
|
|
2021-01-22 18:57:01 +00:00
|
|
|
translate(p1) rotate([0, 0, 0]) pulley_assembly(GT2x20ob_pulley);
|
|
|
|
translate(p2) pulley_assembly(GT2x20_toothed_idler);
|
|
|
|
}
|
2021-01-05 23:50:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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);
|
2021-01-04 18:08:21 +00:00
|
|
|
}
|
|
|
|
|
2021-01-22 18:57:01 +00:00
|
|
|
module zMotor() {
|
|
|
|
translate([- 20, 240, 81]) rotate([0, 180, 0]) Nema17();
|
|
|
|
translate([- 20, 240, 97]) linear_rail(500);
|
2021-01-10 17:43:57 +00:00
|
|
|
|
|
|
|
// add lead screws
|
|
|
|
translate([420, 240, 81]) rotate([0, 180, 0]) Nema17();
|
|
|
|
translate([420, 240, 97]) linear_rail(500);
|
2021-01-04 20:09:43 +00:00
|
|
|
}
|
|
|
|
|
2021-01-04 18:08:21 +00:00
|
|
|
// -- MODULES -- //
|
|
|
|
|
|
|
|
module aluProfile(length) {
|
|
|
|
color("#dddddd") cube([length, 40, 40]);
|
|
|
|
}
|
|
|
|
|
|
|
|
module halfAluProfile(length) {
|
|
|
|
color("#dddddd") cube([length, 40, 20]);
|
2021-01-05 23:50:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
module linear_rail(length) {
|
2021-01-22 18:57:01 +00:00
|
|
|
color("#cccccc") cylinder(h = length, d = 8, $fn = 33);
|
2021-01-10 17:43:57 +00:00
|
|
|
}
|
|
|
|
|
2021-01-22 18:57:01 +00:00
|
|
|
module bearing() {
|
|
|
|
cylinder(h = length, d = 8, $fn = 33);
|
2021-01-04 18:08:21 +00:00
|
|
|
}
|