mirror of
https://github.com/kennetek/gridfinity-rebuilt-openscad.git
synced 2024-11-29 19:43:57 +00:00
Option to only put holes at corners of bin
This commit is contained in:
parent
51b5053de2
commit
b95548fe6d
6 changed files with 25 additions and 45 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,6 +1,8 @@
|
|||
|
||||
ignore/
|
||||
gridfinity-rebuilt.json
|
||||
gridfinity-rebuilt-bins.json
|
||||
stl/
|
||||
batch/
|
||||
site/
|
||||
*.json
|
|
@ -55,33 +55,26 @@ d_magic = -2*d_clear-2*d_wall+d_div;
|
|||
|
||||
// Baseplate bottom part height (part added with weigthed=true)
|
||||
bp_h_bot = 6.4;
|
||||
|
||||
// Baseplate bottom cutout rectangle size
|
||||
bp_cut_size = 21.4;
|
||||
|
||||
// Baseplate bottom cutout rectangle depth
|
||||
bp_cut_depth = 4;
|
||||
|
||||
// Baseplate bottom cutout rounded thingy width
|
||||
bp_rcut_width = 8.5;
|
||||
|
||||
// Baseplate bottom cutout rounded thingy left
|
||||
bp_rcut_length = 4.25;
|
||||
|
||||
// Baseplate bottom cutout rounded thingy depth
|
||||
bp_rcut_depth = 2;
|
||||
|
||||
// countersink diameter for baseplate
|
||||
d_cs = 2.5;
|
||||
|
||||
// radius of cutout for skeletonized baseplate
|
||||
r_skel = 2;
|
||||
|
||||
// baseplate counterbore radius
|
||||
r_cb = 2.75;
|
||||
|
||||
// baseplate counterbore depth
|
||||
h_cb = 3;
|
||||
|
||||
// minimum baseplate thickness (when skeletonized)
|
||||
h_skel = 1;
|
||||
|
||||
// Prime numbers
|
||||
p_corn = 401;
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"fileFormatVersion": "1",
|
||||
"parameterSets": {
|
||||
"New set 1": {
|
||||
"$fa": "8",
|
||||
"$fs": "0.25",
|
||||
"div_base_x": "0",
|
||||
"div_base_y": "0",
|
||||
"divx": "1",
|
||||
"divy": "1",
|
||||
"enable_zsnap": "false",
|
||||
"gridx": "1",
|
||||
"gridy": "1",
|
||||
"gridz": "6",
|
||||
"gridz_define": "0",
|
||||
"height_internal": "0",
|
||||
"length": "42",
|
||||
"scoop": "1",
|
||||
"style_hole": "3",
|
||||
"style_lip": "0",
|
||||
"style_tab": "1"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -38,9 +38,9 @@ gridz = 6;
|
|||
length = 42;
|
||||
|
||||
/* [Compartments] */
|
||||
// number of X Divisions
|
||||
// number of X Divisions (set to zero to have solid bin)
|
||||
divx = 1;
|
||||
// number of y Divisions
|
||||
// number of y Divisions (set to zero to have solid bin)
|
||||
divy = 1;
|
||||
|
||||
/* [Height] */
|
||||
|
@ -58,6 +58,8 @@ style_tab = 1; //[0:Full,1:Auto,2:Left,3:Center,4:Right,5:None]
|
|||
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.
|
||||
scoop = 1; //[0:0.1:1]
|
||||
// only cut magnet/screw holes at the corners of the bin to save uneccesary print time
|
||||
style_corners = true;
|
||||
|
||||
/* [Base] */
|
||||
style_hole = 3; // [0:no holes, 1:magnet holes only, 2: magnet and screw holes - no printable slit, 3: magnet and screw holes - printable slit]
|
||||
|
@ -76,7 +78,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);
|
||||
}
|
||||
gridfinityBase(gridx, gridy, length, div_base_x, div_base_y, style_hole);
|
||||
gridfinityBase(gridx, gridy, length, div_base_x, div_base_y, style_hole*(style_corners?p_corn:1));
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -44,6 +44,8 @@ style_tab = 1; //[0:Full,1:Auto,2:Left,3:Center,4:Right,5:None]
|
|||
|
||||
/* [Base] */
|
||||
style_hole = 0; // [0:no holes, 1:magnet holes only, 2: magnet and screw holes - no printable slit, 3: magnet and screw holes - printable slit]
|
||||
// only cut magnet/screw holes at the corners of the bin to save uneccesary print time
|
||||
style_corners = true;
|
||||
// number of divisions per 1 unit of base along the X axis. (default 1, only use integers. 0 means automatically guess the right division)
|
||||
div_base_x = 0;
|
||||
// number of divisions per 1 unit of base along the Y axis. (default 1, only use integers. 0 means automatically guess the right division)
|
||||
|
@ -64,18 +66,19 @@ gridfinityLite(gridx, gridy, gridz, gridz_define, style_lip, enable_zsnap, lengt
|
|||
|
||||
|
||||
module gridfinityLite(gridx, gridy, gridz, gridz_define, style_lip, enable_zsnap, length, div_base_x, div_base_y, style_hole) {
|
||||
sh = style_hole*(style_corners?p_corn:1);
|
||||
difference() {
|
||||
union() {
|
||||
gridfinityInit(gridx, gridy, height(gridz, gridz_define, style_lip, enable_zsnap), 0, length)
|
||||
children();
|
||||
gridfinityBase(gridx, gridy, length, div_base_x, div_base_y, style_hole);
|
||||
gridfinityBase(gridx, gridy, length, div_base_x, div_base_y, sh);
|
||||
}
|
||||
|
||||
difference() {
|
||||
union() {
|
||||
intersection() {
|
||||
difference() {
|
||||
gridfinityBase(gridx, gridy, length, div_base_x, div_base_y, style_hole, -d_wall*2, false);
|
||||
gridfinityBase(gridx, gridy, length, div_base_x, div_base_y, sh, -d_wall*2, false);
|
||||
translate([-gridx*length/2,-gridy*length/2,2*h_base])
|
||||
cube([gridx*length,gridy*length,1000]);
|
||||
}
|
||||
|
|
|
@ -103,7 +103,13 @@ module gridfinityBase(gx, gy, l, dx, dy, style_hole, off=0, final_cut=true) {
|
|||
block_base_solid(dbnx, dbny, l, off);
|
||||
|
||||
if (style_hole > 0)
|
||||
if (style_hole % p_corn < 0.001)
|
||||
pattern_linear(2, 2, (gx-1)*length+d_hole, (gy-1)*length+d_hole)
|
||||
block_base_hole(style_hole / p_corn, off);
|
||||
else
|
||||
pattern_linear(gx, gy, l)
|
||||
pattern_circular(abs(d_hole)<0.001?1:4)
|
||||
translate([d_hole/2, d_hole/2, 0])
|
||||
block_base_hole(style_hole, off);
|
||||
}
|
||||
}
|
||||
|
@ -132,8 +138,6 @@ module block_base_solid(dbnx, dbny, l, o) {
|
|||
module block_base_hole(style_hole, o=0) {
|
||||
r1 = r_hole1-o/2;
|
||||
r2 = r_hole2-o/2;
|
||||
pattern_circular(abs(d_hole)<0.001?1:4)
|
||||
translate([d_hole/2, d_hole/2, 0])
|
||||
union() {
|
||||
difference() {
|
||||
cylinder(h = 2*(h_hole-o+(style_hole==3?h_slit:0)), r=r2, center=true);
|
||||
|
|
Loading…
Reference in a new issue