From 2d1a2367248c99a4571310c411b61588a45ac407 Mon Sep 17 00:00:00 2001 From: Matthew Wyant Date: Sun, 22 Sep 2024 05:40:07 -0700 Subject: [PATCH] Added feature to suppress tabs from certain divisions --- gridfinity-rebuilt-bins.scad | 4 +++- gridfinity-rebuilt-utility.scad | 13 +++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gridfinity-rebuilt-bins.scad b/gridfinity-rebuilt-bins.scad index 3b36dba..3fa9195 100644 --- a/gridfinity-rebuilt-bins.scad +++ b/gridfinity-rebuilt-bins.scad @@ -69,6 +69,8 @@ enable_zsnap = false; /* [Features] */ // the type of tabs style_tab = 1; //[0:Full,1:Auto,2:Left,3:Center,4:Right,5:None] +// which divisions have tabs +place_tab = 0; // [0:Everywhere-Normal,1:Top-Left Division] // how should the top lip act style_lip = 0; //[0: Regular lip, 1:remove lip subtractively, 2: remove lip and retain height] // scoop weight percentage. 0 disables scoop, 1 is regular scoop. Any real number will scale the scoop. @@ -105,7 +107,7 @@ gridfinityInit(gridx, gridy, height(gridz, gridz_define, style_lip, enable_zsnap if (divx > 0 && divy > 0) { - cutEqual(n_divx = divx, n_divy = divy, style_tab = style_tab, scoop_weight = scoop); + cutEqual(n_divx = divx, n_divy = divy, style_tab = style_tab, scoop_weight = scoop, place_tab = place_tab); } else if (cdivx > 0 && cdivy > 0) { diff --git a/gridfinity-rebuilt-utility.scad b/gridfinity-rebuilt-utility.scad index 9130e30..f8a8a5c 100644 --- a/gridfinity-rebuilt-utility.scad +++ b/gridfinity-rebuilt-utility.scad @@ -72,10 +72,19 @@ function height (z,d=0,l=0,enable_zsnap=true) = // set n_div values to 0 for a solid bin // style_tab: tab style for all compartments. see cut() // scoop_weight: scoop toggle for all compartments. see cut() -module cutEqual(n_divx=1, n_divy=1, style_tab=1, scoop_weight=1) { +module cutEqual(n_divx=1, n_divy=1, style_tab=1, scoop_weight=1, place_tab=1) { for (i = [1:n_divx]) for (j = [1:n_divy]) - cut((i-1)*$gxx/n_divx,(j-1)*$gyy/n_divy, $gxx/n_divx, $gyy/n_divy, style_tab, scoop_weight); + { + if ( + place_tab == 1 && (i != 1 || j != n_divy) // Top-Left Division + ) { + cut((i-1)*$gxx/n_divx,(j-1)*$gyy/n_divy, $gxx/n_divx, $gyy/n_divy, 5, scoop_weight); + } + else { + cut((i-1)*$gxx/n_divx,(j-1)*$gyy/n_divy, $gxx/n_divx, $gyy/n_divy, style_tab, scoop_weight); + } + } }