121 lines
2.8 KiB
OpenSCAD
121 lines
2.8 KiB
OpenSCAD
$fn = 50;
|
|
|
|
width = 24;
|
|
length = 119;
|
|
height = 22;
|
|
|
|
corner_radius = 2;
|
|
wall_thickness = 2;
|
|
post_diameter = 8;
|
|
post_height = 0;
|
|
|
|
hole_diameter = 3;
|
|
lid_thickness = 1.9;
|
|
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+3):4:(height-5)]) {
|
|
translate([(-width/2)-wall_thickness, (-length/2)+25, i])
|
|
cube([10, length/5, 2], center=true);
|
|
}
|
|
|
|
// ventilation slits left 2
|
|
for(i = [(wall_thickness+post_height+3):4:(height-5)]) {
|
|
translate([(-width/2)-wall_thickness, (length/2)-25, i])
|
|
cube([10, length/5, 2], center=true);
|
|
}
|
|
|
|
// ventilation slits right 1
|
|
for(i = [(wall_thickness+post_height+3):4:(height-5)]) {
|
|
translate([(width/2)-wall_thickness, (-length/2)+25, i])
|
|
cube([10, length/5, 2], center=true);
|
|
}
|
|
|
|
// ventilation slits right 2
|
|
for(i = [(wall_thickness+post_height+3):4:(height-5)]) {
|
|
translate([(width/2)-wall_thickness, (length/2)-25, i])
|
|
cube([10, length/5, 2], center=true);
|
|
}
|
|
|
|
// network connector hole 1
|
|
translate([0, (length/2), wall_thickness+2+10])
|
|
cube([17, 6, 20], center=true);
|
|
|
|
// network connector hole 2
|
|
translate([0, (-length/2), wall_thickness+2+10])
|
|
cube([17, 6, 20], center=true);
|
|
|
|
// sensor hole
|
|
translate([(width/2), -7, wall_thickness+2+6])
|
|
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);
|
|
}
|
|
*/ |