n28: minor redesigning of the enclosure
This commit is contained in:
@@ -2,21 +2,24 @@ $fn = 50;
|
|||||||
|
|
||||||
width = 23;
|
width = 23;
|
||||||
length = 119;
|
length = 119;
|
||||||
height = 22;
|
height = 21;
|
||||||
|
|
||||||
corner_radius = 2;
|
corner_radius = 2;
|
||||||
wall_thickness = 2;
|
wall_thickness = 1.5;
|
||||||
post_diameter = 8;
|
post_diameter = 8;
|
||||||
post_height = 0;
|
post_height = 0;
|
||||||
|
|
||||||
hole_diameter = 3;
|
hole_diameter = 3;
|
||||||
lid_thickness = 1.9;
|
lid_thickness = 1.9;
|
||||||
lid_lip = 1 ;
|
lid_lip = 1 ;
|
||||||
lid_tolerance = .25;
|
lid_tolerance = .3;
|
||||||
|
|
||||||
hook_thickness = 0.75;
|
lid_height = 4;
|
||||||
|
|
||||||
|
hook_height = 1;
|
||||||
hook_tolerance = .25;
|
hook_tolerance = .25;
|
||||||
|
|
||||||
|
airslit_height = 1.75;
|
||||||
|
|
||||||
|
|
||||||
module posts(x, y, z, h, r){
|
module posts(x, y, z, h, r){
|
||||||
@@ -34,129 +37,162 @@ module posts(x, y, z, h, r){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
difference() {
|
union() {
|
||||||
// box
|
difference() {
|
||||||
hull() {
|
// box
|
||||||
posts(
|
hull() {
|
||||||
x=(width/2 - corner_radius),
|
posts(
|
||||||
y=(length/2 - corner_radius),
|
x=(width/2 - corner_radius),
|
||||||
z=0,
|
y=(length/2 - corner_radius),
|
||||||
h=height,
|
z=0,
|
||||||
r=corner_radius);
|
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/2)+25, i])
|
||||||
|
cube([10, length/5, airslit_height], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ventilation slits left 2
|
||||||
|
for(i = [(wall_thickness+post_height+3):(airslit_height*2):(height-5)]) {
|
||||||
|
translate([(-width/2)-wall_thickness, (length/2)-25, i])
|
||||||
|
cube([10, length/5, 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/2)+25, i])
|
||||||
|
cube([10, length/5, 1.75], center=true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ventilation slits right 2
|
||||||
|
for(i = [(wall_thickness+post_height+3):(airslit_height*2):(height-5)]) {
|
||||||
|
translate([(width/2)-wall_thickness, (length/2)-25, i])
|
||||||
|
cube([10, length/5, airslit_height], 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);
|
||||||
|
|
||||||
|
translate([0, -9, -wall_thickness])
|
||||||
|
cylinder(r = 5.5/2, h = 6);
|
||||||
|
|
||||||
// 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
|
// hooks upward facing side
|
||||||
hull() {
|
translate([-(width/2)-0.25, length/8, height-(hook_height/2)])
|
||||||
posts(
|
cube([2.5, 7, hook_height], center=true);
|
||||||
x=(width/2 - corner_radius - lid_lip),
|
translate([-(width/2)-0.25, -length/8, height-(hook_height/2)])
|
||||||
y=(length/2 - corner_radius - lid_lip),
|
cube([2.5, 7, hook_height], center=true);
|
||||||
z=(height - lid_thickness),
|
|
||||||
h=(lid_thickness + 1),
|
|
||||||
r=corner_radius);
|
|
||||||
}
|
|
||||||
|
|
||||||
// ventilation slits left 1
|
// hooks downward facing side
|
||||||
for(i = [(wall_thickness+post_height+3):4:(height-5)]) {
|
translate([(width/2)+0.25, 0, height-(hook_height/2)])
|
||||||
translate([(-width/2)-wall_thickness, (-length/2)+25, i])
|
cube([2.5, 7, hook_height], center=true);
|
||||||
cube([10, length/5, 2], center=true);
|
translate([(width/2)+0.25, length/4, height-(hook_height/2)])
|
||||||
}
|
cube([2.5, 7, hook_height], center=true);
|
||||||
|
translate([(width/2)+0.25, -length/4, height-(hook_height/2)])
|
||||||
// ventilation slits left 2
|
cube([2.5, 7, hook_height], center=true);
|
||||||
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);
|
|
||||||
|
|
||||||
translate([0, -9, -wall_thickness])
|
|
||||||
cylinder(r = 5.5/2, h = 6);
|
|
||||||
|
|
||||||
|
|
||||||
// slits for hooks
|
|
||||||
// upward facing side
|
|
||||||
translate([-((width/2)-(wall_thickness/2)), length/8, (height-lid_thickness)+1])
|
|
||||||
cube([3, 6, hook_thickness+hook_tolerance], center=true);
|
|
||||||
translate([-((width/2)-(wall_thickness/2)), -length/8, (height-lid_thickness)+1])
|
|
||||||
cube([3, 6, hook_thickness+hook_tolerance], center=true);
|
|
||||||
|
|
||||||
// downward facing side
|
|
||||||
translate([(width/2)-(wall_thickness/2), 0, (height-lid_thickness)+1])
|
|
||||||
cube([3, 6, hook_thickness+hook_tolerance], center=true);
|
|
||||||
translate([(width/2)-(wall_thickness/2), length/4, (height-lid_thickness)+1])
|
|
||||||
cube([3, 6, hook_thickness+hook_tolerance], center=true);
|
|
||||||
translate([(width/2)-(wall_thickness/2), -length/4, (height-lid_thickness)+1])
|
|
||||||
cube([3, 6, hook_thickness+hook_tolerance], center=true);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* lid */
|
/* lid */
|
||||||
translate([0, 0, 40]) {
|
translate([0, 0, 40]) { /* match at Z=17*/
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
hull() {
|
difference() {
|
||||||
posts(
|
hull() {
|
||||||
x=(width/2 - corner_radius - lid_lip - lid_tolerance),
|
posts(
|
||||||
y=(length/2 - corner_radius - lid_lip - lid_tolerance),
|
x=(width/2 - corner_radius + wall_thickness + lid_tolerance),
|
||||||
z=0,
|
y=(length/2 - corner_radius + lid_tolerance),
|
||||||
h=lid_thickness+1.0,
|
z=0,
|
||||||
r=corner_radius);
|
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_height+hook_tolerance)/2)])
|
||||||
|
cube([4, 9, hook_height+hook_tolerance], center=true);
|
||||||
|
translate([-((width/2)+wall_thickness/2),
|
||||||
|
-length/8,
|
||||||
|
lid_height-((hook_height+hook_tolerance)/2)])
|
||||||
|
cube([4, 9, hook_height+hook_tolerance], center=true);
|
||||||
|
|
||||||
|
// slits for hooks (downward facing side)
|
||||||
|
translate([(width/2)+(wall_thickness/2),
|
||||||
|
0,
|
||||||
|
lid_height-((hook_height+hook_tolerance)/2)])
|
||||||
|
cube([4, 9, hook_height+hook_tolerance], center=true);
|
||||||
|
translate([(width/2)+(wall_thickness/2),
|
||||||
|
length/4,
|
||||||
|
lid_height-((hook_height+hook_tolerance)/2)])
|
||||||
|
cube([4, 9, hook_height+hook_tolerance], center=true);
|
||||||
|
translate([(width/2)+(wall_thickness/2),
|
||||||
|
-(length/4),
|
||||||
|
lid_height-((hook_height+hook_tolerance)/2)])
|
||||||
|
cube([4, 9, hook_height+hook_tolerance], center=true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// upward facing side
|
|
||||||
translate([-((width/2)-lid_lip), length/8, 1])
|
// hooks downward facing side
|
||||||
|
*translate([(width/2)-lid_lip, 0, 1])
|
||||||
cube([2, 5, hook_thickness], center=true);
|
cube([2, 5, hook_thickness], center=true);
|
||||||
translate([-((width/2)-lid_lip), -length/8, 1])
|
*translate([(width/2)-lid_lip, length/4, 1])
|
||||||
cube([2, 5, hook_thickness], center=true);
|
cube([2, 5, hook_thickness], center=true);
|
||||||
|
*translate([(width/2)-lid_lip, -length/4, 1])
|
||||||
// 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);
|
cube([2, 5, hook_thickness], center=true);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// drilling holes
|
// drilling holes
|
||||||
translate([0, (length/8), -lid_thickness])
|
translate([0, (length/4), -wall_thickness])
|
||||||
cylinder(r = hole_diameter, h = 6);
|
cylinder(r = hole_diameter, h = 10);
|
||||||
|
|
||||||
translate([0, -(length/8), -lid_thickness])
|
translate([0, -(length/4), -wall_thickness])
|
||||||
cylinder(r = hole_diameter, h = 6);
|
cylinder(r = hole_diameter, h = 10);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user