2022-02-21 23:35:36 +00:00
|
|
|
use <box.scad>
|
|
|
|
use <casters.scad>
|
|
|
|
|
2022-05-31 15:36:47 +00:00
|
|
|
function mm2in(x) = x * 0.0393701;
|
|
|
|
|
2022-02-21 23:35:36 +00:00
|
|
|
mdf_thickness = 0.75;
|
2022-05-31 15:36:47 +00:00
|
|
|
padding = mdf_thickness;
|
2022-02-21 23:35:36 +00:00
|
|
|
pin_inset = 3;
|
|
|
|
|
|
|
|
function padded(dims, padding) = [for(e=dims) e+padding];
|
|
|
|
|
|
|
|
// dimensions for things
|
2022-05-31 15:36:47 +00:00
|
|
|
prusa = padded([mm2in(180 * 2 + 504), mm2in(115 + 660), mm2in(910)], padding);
|
2022-02-21 23:35:36 +00:00
|
|
|
cr10 = padded([19, 27, 25], padding);
|
|
|
|
repbox = padded([19, 12.5, 12.5], padding);
|
|
|
|
cart = [prusa.x, prusa.y, 6.75 + mdf_thickness];
|
|
|
|
|
|
|
|
module cart() {
|
|
|
|
for(x=[pin_inset, cart.x - pin_inset])
|
|
|
|
for(y=[pin_inset, cart.y - pin_inset])
|
|
|
|
translate([x, y, 0])
|
|
|
|
caster(
|
|
|
|
// wheel (r, h)
|
|
|
|
3, 1,
|
|
|
|
// axel (r, h)
|
|
|
|
0.5, 1,
|
|
|
|
// bearing (r, h)
|
|
|
|
0.75, 0.25,
|
|
|
|
$fn=16
|
|
|
|
);
|
|
|
|
|
|
|
|
translate([0, 0, cart.z - mdf_thickness])
|
|
|
|
ccube([prusa.x + (mdf_thickness * 2), prusa.y + (mdf_thickness * 2), mdf_thickness]);
|
|
|
|
}
|
|
|
|
|
|
|
|
module printer_rack() {
|
|
|
|
translate([0, 0, 0])
|
|
|
|
cart();
|
|
|
|
|
|
|
|
translate([0, 0, cart.z])
|
2022-05-31 15:36:47 +00:00
|
|
|
box(prusa, mdf_thickness);
|
|
|
|
|
|
|
|
translate([0, 0, cart.z + prusa.z])
|
2022-02-21 23:35:36 +00:00
|
|
|
box([prusa.x, prusa.y, repbox.z], mdf_thickness);
|
|
|
|
|
2022-05-31 15:36:47 +00:00
|
|
|
translate([0, 0, cart.z + prusa.z + repbox.z + mdf_thickness * 2])
|
2022-02-21 23:35:36 +00:00
|
|
|
box([prusa.x, prusa.y, cr10.z], mdf_thickness);
|
|
|
|
}
|
|
|
|
|
2022-05-31 15:36:47 +00:00
|
|
|
printer_rack();
|
|
|
|
echo(prusa);
|