added first enclosure for n28.

This commit is contained in:
Martin Preuss
2025-12-11 22:48:56 +01:00
parent 3083b433a3
commit 077e5cbedb
2 changed files with 121 additions and 0 deletions

View File

@@ -10,6 +10,7 @@
<extradist>
defs.asm
README
enclosure.scad
</extradist>
</gwbuild>

View File

@@ -0,0 +1,120 @@
$fn = 50;
width = 22;
length = 117;
height = 28;
corner_radius = 2;
wall_thickness = 2;
post_diameter = 8;
post_height = 4;
hole_diameter = 3;
lid_thickness = 2;
lid_lip = 1 ;
lid_tolerance = .5;
module posts(x, y, z, h, r){
translate([x, y, z])
cylinder(r = r, h = h);
translate([-x, y, z])
cylinder(r = r, h = h);
translate([-x, -y, z])
cylinder(r = r, h = h);
translate([x, -y, z])
cylinder(r = r, h = h);
}
difference() {
// box
hull() {
posts(
x=(width/2 - corner_radius),
y=(length/2 - corner_radius),
z=0,
h=height,
r=corner_radius);
}
// hollow
hull() {
posts(
x=(width/2 - corner_radius - wall_thickness),
y=(length/2 - corner_radius - wall_thickness),
z=wall_thickness,
h=height,
r=corner_radius);
}
// lip inside box
hull() {
posts(
x=(width/2 - corner_radius - lid_lip),
y=(length/2 - corner_radius - lid_lip),
z=(height - lid_thickness),
h=(lid_thickness + 1),
r=corner_radius);
}
// ventilation slits left 1
for(i = [(wall_thickness+post_height+2):2:(height-6)]) {
translate([(-width/2)-wall_thickness, (-length/2)+25, i])
cube([10, length/4, 1], center=true);
}
// ventilation slits left 2
for(i = [(wall_thickness+post_height+2):2:(height-6)]) {
translate([(-width/2)-wall_thickness, (length/2)-25, i])
cube([10, length/4, 1], center=true);
}
// ventilation slits right 1
for(i = [(wall_thickness+post_height+2):2:(height-6)]) {
translate([(width/2)-wall_thickness, (-length/2)+25, i])
cube([10, length/4, 1], center=true);
}
// ventilation slits right 2
for(i = [(wall_thickness+post_height+2):2:(height-6)]) {
translate([(width/2)-wall_thickness, (length/2)-25, i])
cube([10, length/4, 1], center=true);
}
// network connector hole 1
translate([0, (length/2), post_height+wall_thickness+2+8])
cube([16, 21, 15], center=true);
// network connector hole 2
translate([0, (-length/2), post_height+wall_thickness+2+8])
cube([16, 21, 15], center=true);
// sensor hole
translate([(width/2), -7, post_height+wall_thickness+2+8])
cube([5, 10, 7], center=true);
}
// support posts for pcb
difference() {
translate([0, length/4, wall_thickness])
cylinder(r = post_diameter/2, h = post_height);
translate([0, length/4, wall_thickness])
cylinder(r = hole_diameter/2, h = post_height+3);
}
difference() {
translate([0, -length/4, wall_thickness])
cylinder(r = post_diameter/2, h = post_height);
translate([0, -length/4, wall_thickness])
cylinder(r = hole_diameter/2, h = post_height+3);
}