gridz can now equal zero if only base is desired

Setting gridz to 0 (or anything less than zero) will only generate the base pattern. This is useful in cases where you want to use those wonderful printable holes on other models.
This commit is contained in:
kennetek 2022-09-18 11:07:33 -07:00
parent 70321dd694
commit e8babd7912
3 changed files with 9 additions and 7 deletions

2
.gitignore vendored
View File

@ -1,4 +1,4 @@
ignore/
gridfinity-rebuilt.json
stl/
stl/

View File

@ -36,7 +36,7 @@ Parameter | Range | Description
`gridx` | {n>0\|n∈Z} | number of bases along the x-axis
`gridy` | {n>0\|n∈Z} | number of bases along the y-axis
`length` | {n>0\|n∈R} | size of the square bases in millimeters, default 42
`gridz` | {n>0\|n∈R} | height value (can be interpreted in various ways)
`gridz` | {n>=0\|n∈R} | height value (can be interpreted in various ways)
`gridz_define` | {0,1,2} | • (0) Unit height: `gridz` is the height in units (7mm increments). The stock bins have a unit height value of 2, 3, or 6. The overall height of the bin is `7*u + 3.8` millimeters, where the 3.8 is the height of the top lip. <br> • (1) Internal height: `gridz` is the height from the bottom of a compartment to the top of the tab in millimeters. This is effectively the maximum height of an object that can fit inside the bin. <br> • (2) External height: `gridz` is the overall height of the bin, from the base to the upper lip fillet. This is effectively how deep a drawer must be to fit the bin.
`enable_holes` | boolean | toggle holes for magnets and M3 screws on the base of the bin
`enable_hole_slit` | boolean | toggle the printable countersunk hole cut

View File

@ -36,12 +36,14 @@ module gridfinityEqual(n_divx=1, n_divy=1, style_tab=1, enable_scoop=true) {
// wrapper module
// DOES NOT CHECK FOR VALID COMPARTMENT STRUCTURE
module gridfinityCustom() {
difference() {
color("firebrick") block_bottom(d_height);
children();
if (gridz > 0) {
difference() {
color("firebrick") block_bottom(d_height-0.1);
children();
}
color("royalblue") block_wall();
}
color("orange") block_base();
color("royalblue") block_wall();
}
// Function to include in the custom() module to individually slice bins
@ -174,7 +176,7 @@ module block_wall() {
module block_bottom( h = 2.2 ) {
translate([0,0,h_base+0.1])
rounded_rectangle(gridx*length-0.5-d_wall/4, gridy*length-0.5-d_wall/4, d_height-0.1, r_base+0.01);
rounded_rectangle(gridx*length-0.5-d_wall/4, gridy*length-0.5-d_wall/4, h, r_base+0.01);
}
module cut_move_unsafe(x, y, w, h) {