Add option to just print either body or lid
This commit is contained in:
parent
9351c7760b
commit
0781eb1972
@ -10,7 +10,7 @@
|
|||||||
// generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z);
|
// generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z);
|
||||||
// generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z, [NOTCH_WIDTH, NOTCH_DEPTH]);
|
// generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z, [NOTCH_WIDTH, NOTCH_DEPTH]);
|
||||||
// Small example for a box width inner size 60x60x30, wall size 4, wall-sized overlap and a small notch:
|
// Small example for a box width inner size 60x60x30, wall size 4, wall-sized overlap and a small notch:
|
||||||
generate_box(60, 60, 30, 4, 4, 5, 2);
|
generate_box(60, 60, 30, 4, 4, 5, 2, body=true, lid=true);
|
||||||
/*
|
/*
|
||||||
* [2] Include & Generate
|
* [2] Include & Generate
|
||||||
* Copy and paste this line to another file: */
|
* Copy and paste this line to another file: */
|
||||||
@ -28,22 +28,15 @@ generate_box(60, 60, 30, 4, 4, 5, 2);
|
|||||||
* Idea behind the notch: you can secure the box lid with e.g. a rubber band
|
* Idea behind the notch: you can secure the box lid with e.g. a rubber band
|
||||||
*/
|
*/
|
||||||
|
|
||||||
module generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z, NOTCH_WIDTH, NOTCH_DEPTH) {
|
module generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z, NOTCH_WIDTH, NOTCH_DEPTH, BODY, LID) {
|
||||||
difference() {
|
difference() {
|
||||||
union() {
|
union() {
|
||||||
// The main box
|
if(body) {
|
||||||
difference() {
|
generate_main_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE);
|
||||||
cube([INNER_X+WALLSIZE*2, INNER_Y+WALLSIZE*2, INNER_Z+WALLSIZE*2]);
|
|
||||||
translate([WALLSIZE, WALLSIZE, WALLSIZE])
|
|
||||||
cube([INNER_X, INNER_Y, INNER_Z+WALLSIZE]);
|
|
||||||
}
|
}
|
||||||
|
if(lid) {
|
||||||
// Box lid
|
translate([WALLSIZE, WALLSIZE, INNER_Z+WALLSIZE*4])
|
||||||
translate([WALLSIZE, WALLSIZE, INNER_Z+WALLSIZE*4]) {
|
generate_lid(INNER_X, INNER_Y, OVERLAP_Z, WALLSIZE);
|
||||||
translate([0.5, 0.5, 0])
|
|
||||||
cube([INNER_X-1, INNER_Y-1, OVERLAP_Z]);
|
|
||||||
translate([-WALLSIZE, -WALLSIZE, OVERLAP_Z])
|
|
||||||
cube([INNER_X+WALLSIZE*2, INNER_Y+WALLSIZE*2, WALLSIZE]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,4 +48,21 @@ module generate_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE, OVERLAP_Z, NOTCH_WIDTH,
|
|||||||
cube([NOTCH_WIDTH, NOTCH_DEPTH, INNER_Z+WALLSIZE*6]);
|
cube([NOTCH_WIDTH, NOTCH_DEPTH, INNER_Z+WALLSIZE*6]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// The main box
|
||||||
|
module generate_main_box(INNER_X, INNER_Y, INNER_Z, WALLSIZE) {
|
||||||
|
difference() {
|
||||||
|
cube([INNER_X+WALLSIZE*2, INNER_Y+WALLSIZE*2, INNER_Z+WALLSIZE*2]);
|
||||||
|
translate([WALLSIZE, WALLSIZE, WALLSIZE])
|
||||||
|
cube([INNER_X, INNER_Y, INNER_Z+WALLSIZE]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Box lid
|
||||||
|
module generate_lid(INNER_X, INNER_Y, OVERLAP_Z, WALLSIZE) {
|
||||||
|
translate([0.5, 0.5, 0])
|
||||||
|
cube([INNER_X-1, INNER_Y-1, OVERLAP_Z]);
|
||||||
|
translate([-WALLSIZE, -WALLSIZE, OVERLAP_Z])
|
||||||
|
cube([INNER_X+WALLSIZE*2, INNER_Y+WALLSIZE*2, WALLSIZE]);
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user