add recipebox
This commit is contained in:
commit
f65d7c226f
83
recipebox.scad
Normal file
83
recipebox.scad
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
inch=25.4; // treating 1 unit as 1 mm
|
||||||
|
|
||||||
|
module box(size=[1, 1, 1], wall) {
|
||||||
|
innerWidth=size.x;
|
||||||
|
innerHeight=size.y;
|
||||||
|
innerDepth=size.z;
|
||||||
|
outerWidth=innerWidth+wall;
|
||||||
|
outerHeight=innerHeight+wall+1;
|
||||||
|
outerDepth=innerDepth+wall;
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
cube([outerWidth, outerDepth, outerHeight],
|
||||||
|
center=true);
|
||||||
|
translate([0, 0, wall]) {
|
||||||
|
cube([innerWidth, innerDepth, innerHeight+0.001],
|
||||||
|
center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ribs
|
||||||
|
for (i = [ -innerDepth/2+2 : 5 : innerDepth/2 ]) {
|
||||||
|
translate([innerWidth/2, i, 0]) {
|
||||||
|
cube([2, 1, innerHeight-10], center=true);
|
||||||
|
}
|
||||||
|
translate([-innerWidth/2, i, 0]) {
|
||||||
|
cube([2, 1, innerHeight-10], center=true);
|
||||||
|
}
|
||||||
|
translate([0, i, -innerHeight/2+3]) {
|
||||||
|
cube([innerWidth-5, 1, 1], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module cutBox(size=[1,1,1], wall) {
|
||||||
|
width=size.x;
|
||||||
|
height=size.y;
|
||||||
|
depth=size.z;
|
||||||
|
|
||||||
|
difference(){
|
||||||
|
// define box
|
||||||
|
box([width, height, depth], wall);
|
||||||
|
|
||||||
|
// slice off top
|
||||||
|
translate([0,-15,1.5*inch]) {
|
||||||
|
rotate([15,0,0]) {
|
||||||
|
cube([width+wall*2,height*2,depth], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module pattern(size=[1,1,1], squareSize, ribSize) {
|
||||||
|
width=size.x;
|
||||||
|
height=size.y;
|
||||||
|
depth=size.z;
|
||||||
|
|
||||||
|
for (i = [ -width/2 : squareSize+ribSize : width/2 ]) {
|
||||||
|
for (j = [ -depth/2 : squareSize+ribSize : depth/2 ]) {
|
||||||
|
translate([i, 0, j]) {
|
||||||
|
cube([squareSize, height, squareSize], center=true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
width=5.05*inch;
|
||||||
|
height=3*inch;
|
||||||
|
depth=2*inch;
|
||||||
|
wallThickness=3;
|
||||||
|
patternMargin=0.10*inch;
|
||||||
|
|
||||||
|
difference() {
|
||||||
|
cutBox([width, height, depth], wallThickness);
|
||||||
|
|
||||||
|
translate([0,-depth/2-.05, -inch/1.6]) {
|
||||||
|
intersection() {
|
||||||
|
cube([width-patternMargin*2-1.5, wallThickness, height-patternMargin*2-inch*1.5],
|
||||||
|
center=true);
|
||||||
|
rotate([0,45,0]) {
|
||||||
|
pattern([200, wallThickness+.05, 200], 10, 5);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user