add cylindrical cutouts

This commit is contained in:
Jannes Magnusson 2023-10-23 21:38:02 +02:00 committed by Jannes
parent c95938da94
commit 41cdc2a46d

View file

@ -29,17 +29,29 @@ $fs = 0.25;
/* [General Settings] */ /* [General Settings] */
// number of bases along x-axis // number of bases along x-axis
gridx = 5; gridx = 3;
// number of bases along y-axis // number of bases along y-axis
gridy = 5; gridy = 2;
// bin height. See bin height information and "gridz_define" below. // bin height. See bin height information and "gridz_define" below.
gridz = 6; gridz = 6;
/* [Compartments] */ /* [Linear Compartments] */
// number of X Divisions (set to zero to have solid bin) // number of X Divisions (set to zero to have solid bin)
divx = 1; divx = 0;
// number of y Divisions (set to zero to have solid bin) // number of Y Divisions (set to zero to have solid bin)
divy = 1; 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] */ /* [Height] */
// determine what the variable "gridz" applies to based on your use case // determine what the variable "gridz" applies to based on your use case
@ -73,11 +85,23 @@ div_base_y = 0;
color("tomato") { color("tomato") {
gridfinityInit(gridx, gridy, height(gridz, gridz_define, style_lip, enable_zsnap), height_internal) { gridfinityInit(gridx, gridy, height(gridz, gridz_define, style_lip, enable_zsnap), height_internal) {
if (divx > 0 && divy > 0) 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);
} 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); gridfinityBase(gridx, gridy, l_grid, div_base_x, div_base_y, style_hole, only_corners=only_corners);
} }