Model do kontrolera pompy pieca

This commit is contained in:
Sasza Stanczew 2025-11-30 00:07:03 +01:00
parent ccef00b3f8
commit 57602dfb11

View file

@ -0,0 +1,109 @@
include <BOSL2/std.scad>
include <BOSL2/screws.scad>
// e - electronics
// w - wago
// this box will have 2 compartments - Electronics and Wago.
e_d = 110;
w_d = 80;
w = 65;
h = 40;
div_h = 30;
t = 2;
thicker_wall_t = 7;
screw_hole_t = 2.5;
screw_spec = "M2.5,3";
$fn = 36*5;
// helpers
out_d = e_d+w_d+3*t;
out_w = w+2*t;
corners = [
[-out_w/2, 2*t, -out_d/2, 3*t, 8],
[-out_w/2, 2*t, out_d/2, -3*t, 8],
[out_w/2, -2*t, -out_d/2, 3*t, 8],
[out_w/2, -2*t, out_d/2, -3*t, 8],
[out_w/2, -2*t, -out_d/2+e_d + 3*t, 0, 8],
[-out_w/2, 2*t, -out_d/2+e_d + 3*t, 0, 8]
];
module cable_cutout(cable_d,h,l, screw_d, screw_l, s_spec) {
// hole
down(h) yrot(90) cyl(h=l,d=cable_d);
// vertical from hole
down(h-h*3/8) fwd(cable_d/2 - 0.25) cuboid([l,0.5,h*3/4]);
down(h-h*3/8) back(cable_d/2 - 0.25) cuboid([l,0.5,h*3/4]);
// horizontal
down(h/4) fwd(cable_d/2 + screw_l/2 - 0.5) cuboid([l,screw_l,0.5]);
down(h/4) back(cable_d/2 + screw_l/2 - 0.5) cuboid([l,screw_l,0.5]);
// vertical at the top
fwd(cable_d/2 + screw_l - 0.5) cuboid([l,0.5,h/2 + 0.5]);
back(cable_d/2 + screw_l - 0.5) cuboid([l,0.5,h/2 + 0.5]);
// hole for screw heads
fwd(cable_d/2 + screw_l/2) screw_hole(s_spec, head="flat", anchor="top");
back(cable_d/2 + screw_l/2) screw_hole(s_spec, head="flat", anchor="top");
// hole for screws
fwd(cable_d/2 + screw_l/2) down(h/2) cyl(d=2, h=h);
back(cable_d/2 + screw_l/2) down(h/2) cyl(d=2, h=h);
}
// box
difference() {
union() {
// box
difference() {
cuboid([out_w, out_d, h], chamfer=2, edges=[BOTTOM,"Z"]);
up(t) cuboid([w, e_d+w_d+t, h], chamfer=2);
}
// divider
fwd(out_d/2) back(w_d) down(h/2-div_h/2 - t)
cuboid([w+t, t, div_h]);
// supports for screw holes
for(i = corners) {
fwd(i[2] + i[3]) left(i[0]+i[1]) up(h/2 - h/12) chain_hull() {
cyl(h=h/6, d=i[4]);
translate([i[1]/2,i[3]/2,-h/3]) cyl();
}
}
// thicker wall
left(w/2 - thicker_wall_t/2) cuboid([thicker_wall_t, out_d-2*t, h]);
}
// places for screws
for(i = corners) {
fwd(i[2] + i[3]) left(i[0]+i[1]) up(h/2 - h/12)
cyl(h=h/6, d=screw_hole_t);
}
// cutouts for cables
up(h/2) left(w/2 - thicker_wall_t/2 + t/2) union() {
back(10) cable_cutout(5,10,20,4,8, screw_spec);
fwd(38) cable_cutout(7,10,20,4,8, screw_spec);
fwd(65) cable_cutout(7,10,20,4,8, screw_spec);
}
}
// lid
left(w*2)
up(h/2 + 4*t)
difference() {
// lid
union() {
cuboid([out_w, out_d, t*2], chamfer=1);
// down(t) cuboid([w, e_d+w_d+t, t*2], chamfer=2);
}
// holes for screws
for(i = corners) {
fwd(i[2]+i[3]) left(i[0]+i[1]) up(t) union() {
screw_hole(screw_spec, head="flat", anchor="top");
cyl(d=2,h=10);
}
}
}