n29: add enclosures to build files, add type-2 enclosure for n29
type-2 enclosure is without holes for motion detector and photo led.
This commit is contained in:
1
avr/devices/n29/.gitignore
vendored
1
avr/devices/n29/.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
*.eep.hex
|
*.eep.hex
|
||||||
*.obj
|
*.obj
|
||||||
n29-enclosure.stl
|
n29-enclosure.stl
|
||||||
|
n29-enclosure-2.stl
|
||||||
|
|||||||
@@ -10,6 +10,8 @@
|
|||||||
<extradist>
|
<extradist>
|
||||||
defs.asm
|
defs.asm
|
||||||
README
|
README
|
||||||
|
enclosure.scad
|
||||||
|
enclosure-2.scad
|
||||||
</extradist>
|
</extradist>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
237
avr/devices/n29/enclosure-2.scad
Normal file
237
avr/devices/n29/enclosure-2.scad
Normal file
@@ -0,0 +1,237 @@
|
|||||||
|
$fn = 50;
|
||||||
|
|
||||||
|
width = 45;
|
||||||
|
length = 60;
|
||||||
|
height = 20;
|
||||||
|
|
||||||
|
corner_radius = 2;
|
||||||
|
wall_thickness = 1.5;
|
||||||
|
post_diameter = 8;
|
||||||
|
post_height = 0;
|
||||||
|
|
||||||
|
hole_diameter = 3;
|
||||||
|
|
||||||
|
lid_height = 4;
|
||||||
|
lid_tolerance = .3;
|
||||||
|
|
||||||
|
hook_height = 1;
|
||||||
|
hook_tolerance = 0.75;
|
||||||
|
hook_slit_height = 2.5;
|
||||||
|
|
||||||
|
airslit_height = 1.75;
|
||||||
|
|
||||||
|
ridge_height = 16;
|
||||||
|
ridge_width = 1;
|
||||||
|
ridge_depth = 2.5;
|
||||||
|
|
||||||
|
netconn_width = 17;
|
||||||
|
netcomm_length = 6;
|
||||||
|
netcomm_height = 20;
|
||||||
|
netcomm_tolerance = .3;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
union() {
|
||||||
|
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):(airslit_height*2):(height-5)]) {
|
||||||
|
translate([(-width/2)-wall_thickness, (-length/4), i])
|
||||||
|
cube([10, length/5, airslit_height], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ventilation slits top
|
||||||
|
for(i = [(wall_thickness+post_height+3):(airslit_height*2):(height-5)]) {
|
||||||
|
translate([0, -(length/2), i])
|
||||||
|
cube([width/2, 10, airslit_height], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ventilation slits right 1
|
||||||
|
for(i = [(wall_thickness+post_height+3):(airslit_height*2):(height-5)]) {
|
||||||
|
translate([(width/2)-wall_thickness, (-length/4), i])
|
||||||
|
cube([10, length/5, 1.75], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// network connector hole 1
|
||||||
|
translate([(netconn_width-netcomm_tolerance)/2,
|
||||||
|
(length/2),
|
||||||
|
wall_thickness+2+10])
|
||||||
|
cube([netconn_width+netcomm_tolerance,
|
||||||
|
netcomm_length,
|
||||||
|
netcomm_height],
|
||||||
|
center=true);
|
||||||
|
|
||||||
|
// network connector hole 2
|
||||||
|
translate([-(netconn_width-netcomm_tolerance)/2,
|
||||||
|
(length/2),
|
||||||
|
wall_thickness+2+10])
|
||||||
|
cube([netconn_width+netcomm_tolerance,
|
||||||
|
netcomm_length,
|
||||||
|
netcomm_height],
|
||||||
|
center=true);
|
||||||
|
|
||||||
|
// LED hole
|
||||||
|
translate([12, -16, -wall_thickness])
|
||||||
|
cylinder(r = 5.5/2, h = 6);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// hooks upward facing side
|
||||||
|
translate([-(width/2)-0.25, length/8, height-(hook_height/2)])
|
||||||
|
cube([2.5, 7, hook_height], center=true);
|
||||||
|
translate([-(width/2)-0.25, -length/8, height-(hook_height/2)])
|
||||||
|
cube([2.5, 7, hook_height], center=true);
|
||||||
|
|
||||||
|
// hooks downward facing side
|
||||||
|
translate([(width/2)+0.25, length/8, height-(hook_height/2)])
|
||||||
|
cube([2.5, 7, hook_height], center=true);
|
||||||
|
translate([(width/2)+0.25, -length/8, height-(hook_height/2)])
|
||||||
|
cube([2.5, 7, hook_height], center=true);
|
||||||
|
|
||||||
|
// ridges to hold the pcb
|
||||||
|
translate([(width/2)-wall_thickness, 0, ridge_height/2+(height-ridge_height)])
|
||||||
|
cube([ridge_depth, ridge_width, ridge_height], center=true);
|
||||||
|
|
||||||
|
translate([-((width/2)-wall_thickness),
|
||||||
|
length/8,
|
||||||
|
ridge_height/2+(height-ridge_height)])
|
||||||
|
cube([ridge_depth, ridge_width, ridge_height], center=true);
|
||||||
|
|
||||||
|
translate([-((width/2)-wall_thickness),
|
||||||
|
-length/8,
|
||||||
|
ridge_height/2+(height-ridge_height)])
|
||||||
|
cube([ridge_depth, ridge_width, ridge_height], center=true);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* lid */
|
||||||
|
translate([0, 0, 50]) { /* match at Z=16.5, otherwise 50*/
|
||||||
|
difference() {
|
||||||
|
union() {
|
||||||
|
difference() {
|
||||||
|
hull() {
|
||||||
|
posts(
|
||||||
|
x=(width/2 - corner_radius + wall_thickness + lid_tolerance),
|
||||||
|
y=(length/2 - corner_radius + lid_tolerance),
|
||||||
|
z=0,
|
||||||
|
h=lid_height+wall_thickness,
|
||||||
|
r=corner_radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
hull() {
|
||||||
|
posts(
|
||||||
|
x=(width/2 - corner_radius ),
|
||||||
|
y=(length/2 - corner_radius)+5,
|
||||||
|
z=-(wall_thickness),
|
||||||
|
h=lid_height+wall_thickness,
|
||||||
|
r=corner_radius);
|
||||||
|
}
|
||||||
|
|
||||||
|
// slits for hooks (upward facing side)
|
||||||
|
translate([-((width/2)+wall_thickness/2),
|
||||||
|
length/8,
|
||||||
|
lid_height-((hook_slit_height)/2)])
|
||||||
|
cube([4, 9, hook_slit_height], center=true);
|
||||||
|
translate([-((width/2)+wall_thickness/2),
|
||||||
|
-length/8,
|
||||||
|
lid_height-((hook_slit_height)/2)])
|
||||||
|
cube([4, 9, hook_slit_height], center=true);
|
||||||
|
|
||||||
|
// slits for hooks (downward facing side)
|
||||||
|
translate([(width/2)+(wall_thickness/2),
|
||||||
|
length/8,
|
||||||
|
lid_height-((hook_slit_height)/2)])
|
||||||
|
cube([4, 9, hook_slit_height], center=true);
|
||||||
|
translate([(width/2)+(wall_thickness/2),
|
||||||
|
-length/8,
|
||||||
|
lid_height-((hook_slit_height)/2)])
|
||||||
|
cube([4, 9, hook_slit_height], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// hooks downward facing side
|
||||||
|
*translate([(width/2)-lid_lip, 0, 1])
|
||||||
|
cube([2, 5, hook_thickness], center=true);
|
||||||
|
*translate([(width/2)-lid_lip, length/4, 1])
|
||||||
|
cube([2, 5, hook_thickness], center=true);
|
||||||
|
*translate([(width/2)-lid_lip, -length/4, 1])
|
||||||
|
cube([2, 5, hook_thickness], center=true);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// drilling holes
|
||||||
|
translate([0, 0, -wall_thickness])
|
||||||
|
cylinder(r = hole_diameter, h = 10);
|
||||||
|
|
||||||
|
translate([0, -(length/3), -wall_thickness])
|
||||||
|
cylinder(r = hole_diameter, h = 10);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
*/
|
||||||
Reference in New Issue
Block a user