@ -0,0 +1,283 @@ |
|||||
|
$fn=100; |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
translate([-w/2-10,0,d+bpt+tpt]) |
||||
|
rotate(a=180, v=[0,1,0]) |
||||
|
box_top(); |
||||
|
translate([w/2+10,0,0]) |
||||
|
box_bottom(); |
||||
|
|
||||
|
|
||||
|
//*************************************************// |
||||
|
//PARAMETERS |
||||
|
//*************************************************// |
||||
|
//BOX |
||||
|
//-------------------------------------------------- |
||||
|
//inner box width + tolerances |
||||
|
w=90; |
||||
|
//inner box length + tolerances |
||||
|
h=30; |
||||
|
//inner box depth |
||||
|
d=35; |
||||
|
//wall tickness |
||||
|
wt=3; |
||||
|
//bottom plate tickness |
||||
|
bpt=3; |
||||
|
//top plate tickness |
||||
|
tpt=3; |
||||
|
//top cutout depth |
||||
|
cd=5; |
||||
|
//top cutout tickness |
||||
|
cwt=1.5; |
||||
|
//-------------------------------------------------- |
||||
|
//BOARD MOUNTING HOLES |
||||
|
//-------------------------------------------------- |
||||
|
//position |
||||
|
cx=0; |
||||
|
cy=0; |
||||
|
//holes size (radius) |
||||
|
chs_i=1.5; |
||||
|
chs_o=4; |
||||
|
//distancer height |
||||
|
dsth=3; |
||||
|
//holes distance h |
||||
|
chd_h=90; |
||||
|
//holes distance v |
||||
|
chd_v=90; |
||||
|
//-------------------------------------------------- |
||||
|
//TOP PART MOUNTING HOLES |
||||
|
//-------------------------------------------------- |
||||
|
//position |
||||
|
cx1=0; |
||||
|
cy1=0; |
||||
|
//holes size (radius) |
||||
|
chs_i1=1.6; |
||||
|
chs_o1=3; |
||||
|
//holes distance h |
||||
|
chd_h1=h-2*chs_i1-2; |
||||
|
//holes distance v |
||||
|
chd_v1=w-2*chs_i1-2; |
||||
|
//*************************************************// |
||||
|
//*************************************************// |
||||
|
//MODULES |
||||
|
//*************************************************// |
||||
|
|
||||
|
//top box part |
||||
|
module box_top() |
||||
|
{ |
||||
|
difference() |
||||
|
{ |
||||
|
union() |
||||
|
{ |
||||
|
difference() |
||||
|
{ |
||||
|
translate([ 0, 0, d+bpt-cd-0.2]) |
||||
|
rounded_cube( w+2*wt, h+2*wt, tpt+cd+0.2, 6); |
||||
|
|
||||
|
translate([ 0, 0, d+bpt-cd-1]) |
||||
|
rounded_cube( w+2*cwt+0.3, h+2*cwt+0.3, cd+1, 4); |
||||
|
} |
||||
|
/*************************/ |
||||
|
|
||||
|
//add here... |
||||
|
|
||||
|
/*************************/ |
||||
|
} |
||||
|
//TOP PART HOLES |
||||
|
//tph_t_cut(); |
||||
|
/*************************/ |
||||
|
|
||||
|
//subtract here... |
||||
|
|
||||
|
/*************************/ |
||||
|
} |
||||
|
} |
||||
|
//bottom box |
||||
|
module box_bottom() |
||||
|
{ |
||||
|
difference() |
||||
|
{ |
||||
|
union() |
||||
|
{ |
||||
|
difference() |
||||
|
{ |
||||
|
rounded_cube( w+2*wt, h+2*wt, d+bpt, 6); |
||||
|
|
||||
|
translate([ 0, 0, -cd]) |
||||
|
difference() |
||||
|
{ |
||||
|
translate([ 0, 0, d+bpt]) |
||||
|
rounded_cube( w+2*wt+1, h+2*wt+1, cd+1, 4); |
||||
|
|
||||
|
translate([ 0, 0, d+bpt-1]) |
||||
|
rounded_cube( w+2*cwt, h+2*cwt, cd+3, 4); |
||||
|
} |
||||
|
translate([ 0, 0, bpt]) |
||||
|
rounded_cube( w, h, d+bpt, 4); |
||||
|
} |
||||
|
//BOARD DISTANCER |
||||
|
//board_distancer(); |
||||
|
//TOP PLATE DISTANCER |
||||
|
//top_distancer(); |
||||
|
/*************************/ |
||||
|
|
||||
|
|
||||
|
|
||||
|
/*************************/ |
||||
|
} |
||||
|
|
||||
|
//BOARD HOLES |
||||
|
//bh_cut(); |
||||
|
//TOP PART HOLES |
||||
|
//tph_b_cut(); |
||||
|
/*************************/ |
||||
|
|
||||
|
//subtract here... |
||||
|
|
||||
|
translate([25, 0, 14]) |
||||
|
rotate([0,90,0]) |
||||
|
cylinder(r=3.5,h=40); |
||||
|
|
||||
|
translate([-48, 0, 7]) |
||||
|
cube( [10, 10, 5], true); |
||||
|
|
||||
|
/*************************/ |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
/****************************************************/ |
||||
|
module board_distancer() |
||||
|
{ |
||||
|
translate([cx,cy,0]) |
||||
|
{ |
||||
|
translate([+chd_h/2,chd_v/2,0]) |
||||
|
cylinder(r=chs_o,h=bpt+dsth); |
||||
|
translate([-chd_h/2,chd_v/2,0]) |
||||
|
cylinder(r=chs_o,h=bpt+dsth); |
||||
|
translate([+chd_h/2,-chd_v/2,0]) |
||||
|
cylinder(r=chs_o,h=bpt+dsth); |
||||
|
translate([-chd_h/2,-chd_v/2,0]) |
||||
|
cylinder(r=chs_o,h=bpt+dsth); |
||||
|
} |
||||
|
} |
||||
|
module top_distancer() |
||||
|
{ |
||||
|
translate([cx1,cy1,0]) |
||||
|
{ |
||||
|
translate([-chd_v1/2, chd_h1/2, 0]) |
||||
|
cylinder(r=chs_o1,h=d+bpt); |
||||
|
translate([-chd_v1/2, -chd_h1/2, 0]) |
||||
|
cylinder(r=chs_o1,h=d+bpt); |
||||
|
translate([chd_v1/2, chd_h1/2, 0]) |
||||
|
cylinder(r=chs_o1,h=d+bpt); |
||||
|
translate([chd_v1/2, -chd_h1/2, 0]) |
||||
|
cylinder(r=chs_o1,h=d+bpt); |
||||
|
} |
||||
|
} |
||||
|
module bh_cut() |
||||
|
{ |
||||
|
translate([cx,cy,0]) |
||||
|
{ |
||||
|
translate([-chd_h/2,-chd_v/2,-1]) |
||||
|
cylinder(r=chs_i,h=bpt+dsth+2); |
||||
|
translate([+chd_h/2,-chd_v/2,-1]) |
||||
|
cylinder(r=chs_i,h=bpt+dsth+2); |
||||
|
translate([-chd_h/2,chd_v/2,-1]) |
||||
|
cylinder(r=chs_i,h=bpt+dsth+2); |
||||
|
translate([+chd_h/2,chd_v/2,-1]) |
||||
|
cylinder(r=chs_i,h=bpt+dsth+2); |
||||
|
|
||||
|
translate([-chd_h/2,-chd_v/2,1.3]) |
||||
|
fhex(5.5,3); |
||||
|
translate([+chd_h/2,-chd_v/2,1.3]) |
||||
|
fhex(5.5,3); |
||||
|
translate([-chd_h/2,chd_v/2,1.3]) |
||||
|
fhex(5.5,3); |
||||
|
translate([+chd_h/2,chd_v/2,1.3]) |
||||
|
fhex(5.5,3); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module tph_t_cut() |
||||
|
{ |
||||
|
translate([cx1,cy1,0]) |
||||
|
{ |
||||
|
translate([-chd_v1/2, chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+tpt+3); |
||||
|
translate([chd_v1/2, chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+tpt+3); |
||||
|
|
||||
|
translate([-chd_v1/2, -chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+tpt+3); |
||||
|
translate([chd_v1/2, -chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+tpt+3); |
||||
|
|
||||
|
translate([-chd_v1/2, chd_h1/2, d+bpt+tpt-1.3]) |
||||
|
fhex(5.5,3); |
||||
|
|
||||
|
translate([chd_v1/2, chd_h1/2, d+bpt+tpt-1.3]) |
||||
|
fhex(5.5,3); |
||||
|
|
||||
|
translate([-chd_v1/2, -chd_h1/2, d+bpt+tpt-1.3]) |
||||
|
fhex(5.5,3); |
||||
|
|
||||
|
translate([chd_v1/2, -chd_h1/2, d+bpt+tpt-1.3]) |
||||
|
fhex(5.5,3); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
module tph_b_cut() |
||||
|
{ |
||||
|
translate([cx1,cy1,0]) |
||||
|
{ |
||||
|
translate([-chd_v1/2, chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+3); |
||||
|
translate([chd_v1/2, chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+3); |
||||
|
|
||||
|
translate([-chd_v1/2, -chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+3); |
||||
|
translate([chd_v1/2, -chd_h1/2, -2]) |
||||
|
cylinder(r=chs_i1,h=d+bpt+3); |
||||
|
|
||||
|
translate([-chd_v1/2, chd_h1/2, -1]) |
||||
|
cylinder(r=3,h=4); |
||||
|
|
||||
|
translate([chd_v1/2, chd_h1/2, -1]) |
||||
|
cylinder(r=3,h=4); |
||||
|
|
||||
|
translate([-chd_v1/2, -chd_h1/2, -1]) |
||||
|
cylinder(r=3,h=4); |
||||
|
|
||||
|
translate([chd_v1/2, -chd_h1/2, -1]) |
||||
|
cylinder(r=3,h=4); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
|
||||
|
module rounded_cube( x, y, z, r) |
||||
|
{ |
||||
|
translate([-x/2+r,-y/2+r,0]) |
||||
|
linear_extrude(height=z) |
||||
|
minkowski() |
||||
|
{ |
||||
|
square([x-2*r,y-2*r],true); |
||||
|
translate([x/2-r,y/2-r,0]) |
||||
|
circle(r); |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
|
||||
|
module fhex(wid,height) |
||||
|
{ |
||||
|
hull() |
||||
|
{ |
||||
|
cube([wid/1.7,wid,height],center = true); |
||||
|
rotate([0,0,120])cube([wid/1.7,wid,height],center = true); |
||||
|
rotate([0,0,240])cube([wid/1.7,wid,height],center = true); |
||||
|
} |
||||
|
} |
After Width: | Height: | Size: 213 KiB |
After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 432 KiB After Width: | Height: | Size: 432 KiB |
Before Width: | Height: | Size: 475 KiB After Width: | Height: | Size: 475 KiB |
Before Width: | Height: | Size: 477 KiB After Width: | Height: | Size: 477 KiB |
Before Width: | Height: | Size: 448 KiB After Width: | Height: | Size: 448 KiB |