diff --git a/gridfinity-rebuilt-bins.scad b/gridfinity-rebuilt-bins.scad index de9dc1e..c5a1694 100644 --- a/gridfinity-rebuilt-bins.scad +++ b/gridfinity-rebuilt-bins.scad @@ -29,17 +29,29 @@ $fs = 0.25; /* [General Settings] */ // number of bases along x-axis -gridx = 5; +gridx = 3; // number of bases along y-axis -gridy = 5; +gridy = 2; // bin height. See bin height information and "gridz_define" below. gridz = 6; -/* [Compartments] */ +/* [Linear Compartments] */ // number of X Divisions (set to zero to have solid bin) -divx = 1; -// number of y Divisions (set to zero to have solid bin) -divy = 1; +divx = 0; +// number of Y Divisions (set to zero to have solid bin) +divy = 0; + +/* [Cylindrical Compartments] */ +// number of cylindrical X Divisions (mutually exclusive to Linear Compartments) +cdivx = 0; +// number of cylindrical Y Divisions (mutually exclusive to Linear Compartments) +cdivy = 0; +// orientation +c_orientation = 2; // [0: x direction, 1: y direction, 2: z direction] +// radius of cylindrical cut outs +r = 10; +// cylinder height +ch = 10; /* [Height] */ // determine what the variable "gridz" applies to based on your use case @@ -73,11 +85,23 @@ div_base_y = 0; color("tomato") { gridfinityInit(gridx, gridy, height(gridz, gridz_define, style_lip, enable_zsnap), height_internal) { - if (divx > 0 && divy > 0) - cutEqual(n_divx = divx, n_divy = divy, style_tab = style_tab, scoop_weight = scoop); + if (divx > 0 && divy > 0) { + + cutEqual(n_divx = divx, n_divy = divy, style_tab = style_tab, scoop_weight = scoop); + + } else if (cdivx > 0 && cdivy > 0) { + rotation = (c_orientation == 0) + ? [0,90,0] + : (c_orientation == 1) + ? [90,0,0] + : [0,0,0]; + cut_move(x=0, y=0, w=gridx, h=gridy) + pattern_linear(x=cdivx, y=cdivy, sx=42*gridx/cdivx, sy=42*gridy/cdivy) + rotate(rotation) + cylinder(r=r, h=ch, center=true); + } } gridfinityBase(gridx, gridy, l_grid, div_base_x, div_base_y, style_hole, only_corners=only_corners); - }