Add Gridfinity ruler bin
This commit is contained in:
parent
5b6a780d2c
commit
ea46644e20
BIN
Gridfinity/Rulers/ruler.3mf
(Stored with Git LFS)
Normal file
BIN
Gridfinity/Rulers/ruler.3mf
(Stored with Git LFS)
Normal file
Binary file not shown.
94
Gridfinity/Rulers/ruler.scad
Normal file
94
Gridfinity/Rulers/ruler.scad
Normal file
|
@ -0,0 +1,94 @@
|
|||
include <../../lib/gridfinity-rebuilt-openscad/gridfinity-rebuilt-utility.scad>
|
||||
|
||||
// There are 2 variants of the rulers, 2 "small" ones and 2 "large" ones.
|
||||
|
||||
// bin height. See bin height information and "gridz_define" below.
|
||||
gridz = 2;
|
||||
// determine what the variable "gridz" applies to based on your use case
|
||||
gridz_define = 0; // [0:gridz is the height of bins in units of 7mm increments - Zack's method,1:gridz is the internal height in millimeters, 2:gridz is the overall external height of the bin in millimeters]
|
||||
|
||||
thicknessSmall = 1.25;
|
||||
thicknessLarge = 1.25;
|
||||
widthSmall = 21.00;
|
||||
widthLarge = 28.00;
|
||||
depth = 7 * gridz - 5;
|
||||
// The positioning and gaps between the rulers
|
||||
gap = 8.4;
|
||||
offset = -10;
|
||||
// slide the rules slightly along the X axis to make them easier to grab
|
||||
xSlide = 3;
|
||||
xOffset = -14;
|
||||
// Put the rulers at a slight angle so they are easier to grab
|
||||
rot = -18;
|
||||
|
||||
|
||||
module __hide_parameters() {};
|
||||
|
||||
$fn = $preview ? 12 : 24;
|
||||
/* [General Settings] */
|
||||
// number of bases along x-axis
|
||||
gridx = 1;
|
||||
// number of bases along y-axis
|
||||
gridy = 1;
|
||||
|
||||
/* [Compartments] */
|
||||
// number of X Divisions (set to zero to have solid bin)
|
||||
divx = 0;
|
||||
// number of y Divisions (set to zero to have solid bin)
|
||||
divy = 0;
|
||||
|
||||
/* [Height] */
|
||||
// overrides internal block height of bin (for solid containers). Leave zero for default height. Units: mm
|
||||
height_internal = 0;
|
||||
// snap gridz height to nearest 7mm increment
|
||||
enable_zsnap = false;
|
||||
|
||||
/* [Features] */
|
||||
// the type of tabs
|
||||
style_tab = 5; //[0:Full,1:Auto,2:Left,3:Center,4:Right,5:None]
|
||||
// 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.
|
||||
scoop = 1; //[0:0.1:1]
|
||||
// only cut magnet/screw holes at the corners of the bin to save uneccesary print time
|
||||
only_corners = false;
|
||||
|
||||
/* [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, 4: Gridfinity Refined hole - no glue needed]
|
||||
// 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)
|
||||
div_base_y = 0;
|
||||
|
||||
|
||||
difference() {
|
||||
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);
|
||||
}
|
||||
gridfinityBase(gridx, gridy, l_grid, div_base_x, div_base_y, style_hole, only_corners=only_corners);
|
||||
|
||||
}
|
||||
|
||||
for (i = [0:1:3]) {
|
||||
thickness = i < 2 ? thicknessSmall : thicknessLarge;
|
||||
width = i < 2 ? widthSmall : widthLarge;
|
||||
extraXOffset = i < 2 ? 0 : -7;
|
||||
taperDepth = 5;
|
||||
taperRatio = 1.2;
|
||||
taperWidth = width * taperRatio;
|
||||
|
||||
translate([xOffset + extraXOffset + xSlide * i, gap * i + offset, 5.4])
|
||||
rotate([0, 0, rot])
|
||||
union() {
|
||||
translate([taperWidth / 2.5, thickness / 2, depth - taperDepth])
|
||||
linear_extrude(height = taperDepth, scale = [taperRatio, 3])
|
||||
// move square a bit to get a taper equal on both sides
|
||||
translate([-taperWidth / 2.5, -thickness / 2, 0])
|
||||
square(size=[width, thickness]);
|
||||
cube([width, thickness, depth]);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue