Deployed ac70740 with MkDocs version: 1.4.2

This commit is contained in:
Kenneth 2022-11-17 18:26:10 -07:00
parent 35d5d27c76
commit a3a90a1952
14 changed files with 632 additions and 202 deletions

View File

@ -57,10 +57,6 @@
<li class="toctree-l1"><a class="reference internal" href="/constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="/utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>

View File

@ -50,6 +50,16 @@
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="./">Baseplates</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#script-parameters">Script Parameters</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#modules">Modules</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#gridfinitybaseplate">gridfinityBaseplate</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
@ -64,10 +74,6 @@
<li class="toctree-l1"><a class="reference internal" href="../constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>
@ -91,7 +97,116 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="gridfinity-rebuilt-baseplate">gridfinity-rebuilt-baseplate</h1>
<p>To round out the rebuilt catalog, we have baseplates. Originally, baseplates were not included as there was not anything really interesting to parameterize, unlike with bins. However, upon closer inspection, there is a couple things that would make peoples' lives easier. For instance, what is called here the "skeletonized" style, in that the baseplate is still thick to allow for magnets, but the center portion is removed. Additionally, being able to generate spacers for the sides of the bases, so that they fit perfectly inside your drawers.</p>
<p><img alt="Bin" src="../images/baseplate.gif" /></p>
<h2 id="script-parameters">Script Parameters</h2>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Range</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>gridx</td>
<td>{ n&gt;=0 | n∈R }</td>
<td>number of bases along the x-axis<br> If set to zero, will fill with as many <br>bases that fit within <code>distancex</code></td>
</tr>
<tr>
<td>gridy</td>
<td>{ n&gt;=0 | n∈R }</td>
<td>number of bases along the y-axis<br> If set to zero, will fill with as many <br>bases that fit within <code>distancey</code></td>
</tr>
<tr>
<td>length</td>
<td>{ n&gt;0 | n∈R }</td>
<td>length of one unit of the base. <br> default: 42 (The Answer to the Ultimate Question of Life, <br>the Universe, and Everything.)</td>
</tr>
<tr>
<td>distancex</td>
<td>{ n&gt;0 | n∈R }</td>
<td>minimum length of baseplate along x <br>alternatively, how large is the drawer along x <br>(leave zero to ignore)</td>
</tr>
<tr>
<td>distancey</td>
<td>{ n&gt;0 | n∈R }</td>
<td>minimum length of baseplate along y <br>alternatively, how large is the drawer along y <br>(leave zero to ignore)</td>
</tr>
<tr>
<td>style_plate</td>
<td>{ 0, 1, 2 }</td>
<td>the style of baseplate <br> • (0) thin (minimum material, only outline) <br> • (1) weighted (thick with space for tire iron) <br> • (2) skeletonized (thick, center hollowed)</td>
</tr>
<tr>
<td>enable_magnet</td>
<td>boolean</td>
<td>toggle hole for magnet on top</td>
</tr>
<tr>
<td>style_hole</td>
<td>{ 0, 1, 2 }</td>
<td>the style of holes underneath the baseplate, if applicable <br> • (0) none <br> • (1) countersink <br> • (2) counterbore</td>
</tr>
</tbody>
</table>
<h2 id="modules">Modules</h2>
<h3 id="gridfinitybaseplate">gridfinityBaseplate</h3>
<p>Generates a baseplate to use with gridfinity bins. </p>
<p><strong> <code>gridfinityBaseplate(gridx, gridy, length, distancex, distancey, style_plate, enable_magnet, style_hole)</code> </strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Range</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>gridx</td>
<td>{ n&gt;=0 | n∈R }</td>
<td>number of bases along the x-axis<br> If set to zero, will fill with as many <br>bases that fit within <code>distancex</code></td>
</tr>
<tr>
<td>gridy</td>
<td>{ n&gt;=0 | n∈R }</td>
<td>number of bases along the y-axis<br> If set to zero, will fill with as many <br>bases that fit within <code>distancey</code></td>
</tr>
<tr>
<td>length</td>
<td>{ n&gt;0 | n∈R }</td>
<td>length of one unit of the base. <br> default: 42 (The Answer to the Ultimate Question of Life, <br>the Universe, and Everything.)</td>
</tr>
<tr>
<td>distancex</td>
<td>{ n&gt;0 | n∈R }</td>
<td>minimum length of baseplate along x <br>alternatively, how large is the drawer along x <br>(leave zero to ignore)</td>
</tr>
<tr>
<td>distancey</td>
<td>{ n&gt;0 | n∈R }</td>
<td>minimum length of baseplate along y <br>alternatively, how large is the drawer along y <br>(leave zero to ignore)</td>
</tr>
<tr>
<td>style_plate</td>
<td>{ 0, 1, 2 }</td>
<td>the style of baseplate <br> • (0) thin (minimum material, only outline) <br> • (1) weighted (thick with space for tire iron) <br> • (2) skeletonized (thick, center hollowed)</td>
</tr>
<tr>
<td>enable_magnet</td>
<td>boolean</td>
<td>toggle hole for magnet on top</td>
</tr>
<tr>
<td>style_hole</td>
<td>{ 0, 1, 2 }</td>
<td>the style of holes underneath the baseplate, if applicable <br> • (0) none <br> • (1) countersink <br> • (2) counterbore</td>
</tr>
</tbody>
</table>
</div>
</div><footer>

View File

@ -51,17 +51,17 @@
</li>
<li class="toctree-l2"><a class="reference internal" href="#modules">Modules</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#gridfinityinit-gridx-gridy-height-height_internal-length">gridfinityInit (gridx, gridy, height, height_internal, length)</a>
<li class="toctree-l3"><a class="reference internal" href="#gridfinityinit">gridfinityInit</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#height-gridz-gridz_define-enable_lip-enable_zsnap">height (gridz, gridz_define, enable_lip, enable_zsnap)</a>
<li class="toctree-l3"><a class="reference internal" href="#height">height</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#gridfinitybase-gridx-gridy-length-div_base_x-div_base_y-style_hole">gridfinityBase (gridx, gridy, length, div_base_x, div_base_y, style_hole)</a>
<li class="toctree-l3"><a class="reference internal" href="#gridfinitybase">gridfinityBase</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#cutequal-n_divx-n_divy-style_tab-enable_scoop">cutEqual (n_divx, n_divy, style_tab, enable_scoop)</a>
<li class="toctree-l3"><a class="reference internal" href="#cutequal">cutEqual</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#cut-x-y-w-h-t-s">cut (x, y, w, h, t, s)</a>
<li class="toctree-l3"><a class="reference internal" href="#cut">cut</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#cut_move-x-y-w-h">cut_move (x, y, w, h)</a>
<li class="toctree-l3"><a class="reference internal" href="#cut_move">cut_move</a>
</li>
</ul>
</li>
@ -84,10 +84,6 @@
<li class="toctree-l1"><a class="reference internal" href="../constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>
@ -204,8 +200,9 @@
<p><br></p>
<h2 id="modules">Modules</h2>
<hr />
<h3 id="gridfinityinit-gridx-gridy-height-height_internal-length"><code>gridfinityInit (gridx, gridy, height, height_internal, length)</code></h3>
<h3 id="gridfinityinit">gridfinityInit</h3>
<p>Initializes the top part of the bin (walls and solid section). All bins have to use this module, and have the compartments cut out from it. </p>
<p><strong> <code>gridfinityInit (gridx, gridy, height, height_internal, length)</code> </strong></p>
<table>
<thead>
<tr>
@ -248,8 +245,9 @@ gridfinityInit(3, 3, height(6), 0, 42) {
}
</code></pre>
<hr />
<h3 id="height-gridz-gridz_define-enable_lip-enable_zsnap"><code>height (gridz, gridz_define, enable_lip, enable_zsnap)</code></h3>
<h3 id="height">height</h3>
<p>Calculates the proper height for bins. </p>
<p><strong> <code>height (gridz, gridz_define, enable_lip, enable_zsnap)</code> </strong></p>
<table>
<thead>
<tr>
@ -288,8 +286,9 @@ height(6);
height(30, 1, true, false);
</code></pre>
<hr />
<h3 id="gridfinitybase-gridx-gridy-length-div_base_x-div_base_y-style_hole"><code>gridfinityBase (gridx, gridy, length, div_base_x, div_base_y, style_hole)</code></h3>
<h3 id="gridfinitybase">gridfinityBase</h3>
<p>Generates the bases for bins. Has various different hole styles, and can be subdivided.</p>
<p><strong> <code>gridfinityBase (gridx, gridy, length, div_base_x, div_base_y, style_hole)</code> </strong></p>
<table>
<thead>
<tr>
@ -335,8 +334,9 @@ height(30, 1, true, false);
gridfinityBase(3, 3, 42, 0, 0, 1);
</code></pre>
<hr />
<h3 id="cutequal-n_divx-n_divy-style_tab-enable_scoop"><code>cutEqual (n_divx, n_divy, style_tab, enable_scoop)</code></h3>
<h3 id="cutequal">cutEqual</h3>
<p>Generates the "traditional" bin cutters. It is a utility function that creates evenly distributed compartments. </p>
<p><strong> <code>cutEqual (n_divx, n_divy, style_tab, enable_scoop)</code> </strong></p>
<table>
<thead>
<tr>
@ -374,8 +374,9 @@ gridfinityInit(3, 3, height(6), 0, 42) {
}
</code></pre>
<hr />
<h3 id="cut-x-y-w-h-t-s"><code>cut (x, y, w, h, t, s)</code></h3>
<h3 id="cut">cut</h3>
<p>Cuts a single compartment into the bin at the provided location with the provided attributes. The coordinate system for compartments originates (0,0) at the bottom left corner of the bin, where 1 unit is the length of 1 base. Positive X and positive Y are in the same direction as the global coordinate system.</p>
<p><strong> <code>cut (x, y, w, h, t, s)</code> </strong></p>
<table>
<thead>
<tr>
@ -426,8 +427,9 @@ gridfinityInit(3, 3, height(6), 0, 42) {
}
</code></pre>
<hr />
<h3 id="cut_move-x-y-w-h"><code>cut_move (x, y, w, h)</code></h3>
<h3 id="cut_move">cut_move</h3>
<p>Moves all of its children from the global origin to the center of the area that a compartment would normally fill, and uses them to cut from the bin. This allows you to easily make custom cutouts in the bin.</p>
<p><strong> <code>cut_move (x, y, w, h)</code> </strong></p>
<table>
<thead>
<tr>

View File

@ -62,10 +62,8 @@
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="./">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../utility/">Utility</a>
<ul class="current">
</ul>
</li>
</ul>
</div>
@ -91,13 +89,151 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="gridfinity-rebuilt-constants">gridfinity-rebuilt-constants</h1>
<p>This file contains dimensions that are critical to the constructiuon of the other models, but are not values that often need to be changed. Thus, they were outsourced to this file such that the rest of the files would retain parity. All values here have the same range, this is positive real numbers. Some can be zero, but that may result in strange or invalid geometry, </p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>h_base</td>
<td>height of the base</td>
</tr>
<tr>
<td>r_base</td>
<td>outside rounded radius of bin</td>
</tr>
<tr>
<td>r_c1</td>
<td>lower base chamfer "radius"</td>
</tr>
<tr>
<td>r_c2</td>
<td>upper base chamfer "radius"</td>
</tr>
<tr>
<td>h_bot</td>
<td>bottom thiccness of bin</td>
</tr>
<tr>
<td>r_fo1</td>
<td>outside radii 1</td>
</tr>
<tr>
<td>r_fo2</td>
<td>outside radii 2</td>
</tr>
<tr>
<td>r_fo3</td>
<td>outside radii 3</td>
</tr>
<tr>
<td>r_hole1</td>
<td>screw hole radius</td>
</tr>
<tr>
<td>r_hole2</td>
<td>magnet hole radius</td>
</tr>
<tr>
<td>d_hole</td>
<td>center-to-center distance between holes</td>
</tr>
<tr>
<td>h_hole</td>
<td>magnet hole depth</td>
</tr>
<tr>
<td>h_slit</td>
<td>slit depth (printer layer height)</td>
</tr>
<tr>
<td>r_f1</td>
<td>top edge fillet radius</td>
</tr>
<tr>
<td>r_f2</td>
<td>internal fillet radius</td>
</tr>
<tr>
<td>d_div</td>
<td>width of divider between compartments</td>
</tr>
<tr>
<td>d_wall</td>
<td>minimum wall thickness</td>
</tr>
<tr>
<td>d_clear</td>
<td>tolerance fit factor</td>
</tr>
<tr>
<td>d_tabh</td>
<td>height of tab (yaxis, measured from inner wall)</td>
</tr>
<tr>
<td>d_tabw</td>
<td>maximum width of tab</td>
</tr>
<tr>
<td>a_tab</td>
<td>angle of tab</td>
</tr>
<tr>
<td>bp_h_bot</td>
<td>Baseplate bottom part height (part added with weigthed=true)</td>
</tr>
<tr>
<td>bp_cut_size</td>
<td>Baseplate bottom cutout rectangle size</td>
</tr>
<tr>
<td>bp_cut_depth</td>
<td>Baseplate bottom cutout rectangle depth</td>
</tr>
<tr>
<td>bp_rcut_width</td>
<td>Baseplate bottom cutout finger gap width</td>
</tr>
<tr>
<td>bp_rcut_length</td>
<td>Baseplate bottom cutout finger gap left</td>
</tr>
<tr>
<td>bp_rcut_depth</td>
<td>Baseplate bottom cutout finger gap depth</td>
</tr>
<tr>
<td>d_cs</td>
<td>countersink diameter for baseplate</td>
</tr>
<tr>
<td>r_skel</td>
<td>radius of cutout for skeletonized baseplate</td>
</tr>
<tr>
<td>r_cb</td>
<td>baseplate counterbore radius</td>
</tr>
<tr>
<td>h_cb</td>
<td>baseplate counterbore depth</td>
</tr>
<tr>
<td>h_skel</td>
<td>minimum baseplate thickness (when skeletonized)</td>
</tr>
</tbody>
</table>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../vase/" class="btn btn-neutral float-left" title="Vase"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../utility/" class="btn btn-neutral float-right" title="Utility">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
@ -123,8 +259,6 @@
<span><a href="../vase/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../utility/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script>var base_url = '..';</script>

BIN
images/baseplate.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 121 KiB

BIN
images/lite.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

View File

@ -66,10 +66,6 @@
<li class="toctree-l1"><a class="reference internal" href="constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>
@ -157,5 +153,5 @@
<!--
MkDocs version : 1.4.2
Build Date UTC : 2022-11-17 20:55:44.638848+00:00
Build Date UTC : 2022-11-18 01:26:10.148893+00:00
-->

View File

@ -54,6 +54,16 @@
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="./">Lite</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#script-parameters">Script Parameters</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#modules">Modules</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#gridfinitylite">gridfinityLite</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
@ -64,10 +74,6 @@
<li class="toctree-l1"><a class="reference internal" href="../constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>
@ -91,7 +97,158 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="gridfinity-rebuilt-lite">gridfinity-rebuilt-lite</h1>
<p>Generates stock bins, but with a twist: the bases are hollow. This is unable to be implemented directly into <code>gridfinity-rebuilt-bins</code> due to its surprisingly complex construction. It couldn't be a toggle without causing the structure of the script to fundamentally change (and become more complex) so it was moved to a separate file. Notably, there are some parameters missing, as they are incompatible with the lite variation. Additionally, the complex geometry means rendering is fairly slow, and currently causes many CSG errors. </p>
<p><img alt="Bin" src="../images/lite.gif" /></p>
<h2 id="script-parameters">Script Parameters</h2>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Range</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>gridx</td>
<td>{ n&gt;0 | n∈R }</td>
<td>number of bases along the x-axis</td>
</tr>
<tr>
<td>gridy</td>
<td>{ n&gt;0 | n∈R }</td>
<td>number of bases along the y-axis</td>
</tr>
<tr>
<td>gridz</td>
<td>{ n&gt;0 | n∈R }</td>
<td>bin height. See bin height information and "gridz_define" below.</td>
</tr>
<tr>
<td>length</td>
<td>{ n&gt;0 | n∈R }</td>
<td>length of one unit of the base. <br> default: 42 (The Answer to the Ultimate Question of Life, <br>the Universe, and Everything.)</td>
</tr>
<tr>
<td>divx</td>
<td>{ n&gt;0 | n∈Z }</td>
<td>number of compartments along X</td>
</tr>
<tr>
<td>divy</td>
<td>{ n&gt;0 | n∈Z }</td>
<td>number of compartments along Y</td>
</tr>
<tr>
<td>enable_zsnap</td>
<td>boolean</td>
<td>automatically snap the bin size to the nearest 7mm increment. <br> default: true</td>
</tr>
<tr>
<td>enable_lip</td>
<td>boolean</td>
<td>if you are not stacking the bin, you can disable the top lip <br> to save space. default: true</td>
</tr>
<tr>
<td>gridz_define</td>
<td>{ n&gt;0 | n∈R }</td>
<td>determine what the variable "gridz" applies to based on <br> your use case. default: 0. <br> • (0) gridz is the height in # of 7mm increments (Zack) <br> • (1) gridz is the internal height in millimeters <br> • (2) gridz is the overall external height of the bin in millimeters</td>
</tr>
<tr>
<td>style_tab</td>
<td>{ 0, 1, 2, 3, 4, 5 }</td>
<td>how the tabs for labels are generated. <br> • (0) Full tabs across the entire compartment <br> • (1) automatic tabs <br> - left aligned tabs on the left edge<br> - right aligned tabs on right edge<br> - center tabs otherwise <br> • (2) left aligned tabs <br> • (3) center aligned tabs <br> • (4) right aligned tabs <br> • (5) no tabs</td>
</tr>
<tr>
<td>style_hole</td>
<td>{ 0, 1, 2, 3 }</td>
<td>the style of holes in the bases <br> • (0) No holes <br> • (1) Magnet holes only <br> • (2) Magnet and screw holes - no printable slit <br> • (3) Magnet and screw holes - with printable slit</td>
</tr>
<tr>
<td>div_base_x</td>
<td>{ n&gt;=0 | n∈Z }</td>
<td>number of divisions per 1 unit of base along the X axis. <br>(default 1, only use integers. <br>0 means automatically guess the division)</td>
</tr>
<tr>
<td>div_base_y</td>
<td>{ n&gt;=0 | n∈Z }</td>
<td>number of divisions per 1 unit of base along the Y axis. <br>(default 1, only use integers. <br>0 means automatically guess the division)</td>
</tr>
</tbody>
</table>
<p><br></p>
<h2 id="modules">Modules</h2>
<hr />
<h3 id="gridfinitylite">gridfinityLite</h3>
<p>Wrapper function that calls <a href="../bins/#gridfinityInit"><code>gridfinityInit</code></a> and <a href="../bins/#gridfinityBase"><code>gridfinityBase</code></a> functions (hence the sheer quantity of parameters). Like <a href="../bins/#gridfinityInit"><code>gridfinityInit</code></a>, it uses its children as cutters for the compartments. </p>
<p><strong><code>gridfinityLite(gridx, gridy, gridz, gridz_define, enable_lip, enable_zsnap, length, div_base_x, div_base_y, style_hole)</code></strong></p>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Range</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>gridx</td>
<td>{ n&gt;0 | n∈R }</td>
<td>number of bases along the x-axis</td>
</tr>
<tr>
<td>gridy</td>
<td>{ n&gt;0 | n∈R }</td>
<td>number of bases along the y-axis</td>
</tr>
<tr>
<td>gridz</td>
<td>{ n&gt;0 | n∈R }</td>
<td>bin height. See bin height information and "gridz_define" below.</td>
</tr>
<tr>
<td>gridz_define</td>
<td>{ n&gt;0 | n∈R }</td>
<td>determine what the variable "gridz" applies to based on <br> your use case. default: 0. <br> • (0) gridz is the height in # of 7mm increments (Zack) <br> • (1) gridz is the internal height in millimeters <br> • (2) gridz is the overall external height of the bin in millimeters</td>
</tr>
<tr>
<td>enable_lip</td>
<td>boolean</td>
<td>if you are not stacking the bin, you can disable the top lip <br> to save space. default: true</td>
</tr>
<tr>
<td>enable_zsnap</td>
<td>boolean</td>
<td>automatically snap the bin size to the nearest 7mm increment. <br> default: true</td>
</tr>
<tr>
<td>length</td>
<td>{ n&gt;0 | n∈R }</td>
<td>length of one unit of the base. <br> default: 42 (The Answer to the Ultimate Question of Life, <br>the Universe, and Everything.)</td>
</tr>
<tr>
<td>div_base_x</td>
<td>{ n&gt;=0 | n∈Z }</td>
<td>number of divisions per 1 unit of base along the X axis. <br>(default 1, only use integers. <br>0 means automatically guess the division)</td>
</tr>
<tr>
<td>div_base_y</td>
<td>{ n&gt;=0 | n∈Z }</td>
<td>number of divisions per 1 unit of base along the Y axis. <br>(default 1, only use integers. <br>0 means automatically guess the division)</td>
</tr>
<tr>
<td>style_hole</td>
<td>{ 0, 1, 2, 3 }</td>
<td>the style of holes in the bases <br> • (0) No holes <br> • (1) Magnet holes only <br> • (2) Magnet and screw holes - no printable slit <br> • (3) Magnet and screw holes - with printable slit</td>
</tr>
</tbody>
</table>
<pre><code>// Example: generate a 3x3x6 bin with 2x2 compartments, that is hollow
gridfinityLite(gridx=3, gridy=3, gridz=6, gridz_define=0, enable_lip=true, enable_zsnap=false, length=42, div_base_x=0, div_base_y=0, style_hole=1) {
cutEqual(n_divx=2, n_divy=2, style_tab=1, enable_scoop = false);
}
</code></pre>
</div>
</div><footer>

View File

@ -57,10 +57,6 @@
<li class="toctree-l1"><a class="reference internal" href="./constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="./utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>

File diff suppressed because one or more lines are too long

View File

@ -2,37 +2,32 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<lastmod>2022-11-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<lastmod>2022-11-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<lastmod>2022-11-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<lastmod>2022-11-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<lastmod>2022-11-18</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<changefreq>daily</changefreq>
</url>
<url>
<loc>None</loc>
<lastmod>2022-11-17</lastmod>
<lastmod>2022-11-18</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

Binary file not shown.

View File

@ -1,138 +0,0 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Utility - Gridfinity Rebuilt</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Utility";
var mkdocs_page_input_path = "utility.md";
var mkdocs_page_url = null;
</script>
<script src="../js/jquery-3.6.0.min.js" defer></script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> Gridfinity Rebuilt
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="reference internal" href="..">Home</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../bins/">Bins</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../baseplates/">Baseplates</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../lite/">Lite</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../vase/">Vase</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../constants/">Constants</a>
</li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="./">Utility</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">Gridfinity Rebuilt</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" alt="Docs"></a> &raquo;</li>
<li>Utility</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../constants/" class="btn btn-neutral float-left" title="Constants"><span class="icon icon-circle-arrow-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../constants/" style="color: #fcfcfc">&laquo; Previous</a></span>
</span>
</div>
<script>var base_url = '..';</script>
<script src="../js/theme_extra.js" defer></script>
<script src="../js/theme.js" defer></script>
<script src="../search/main.js" defer></script>
<script defer>
window.onload = function () {
SphinxRtdTheme.Navigation.enable(true);
};
</script>
</body>
</html>

View File

@ -58,16 +58,28 @@
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="./">Vase</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#instructions">Instructions</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#statistics">Statistics</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#script-parameters">Script Parameters</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#modules">Modules</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#gridfinityvase">gridfinityVase</a>
</li>
<li class="toctree-l3"><a class="reference internal" href="#gridfinityvasebase">gridfinityVaseBase</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../constants/">Constants</a>
</li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../utility/">Utility</a>
</li>
</ul>
</div>
</div>
</nav>
@ -91,7 +103,172 @@
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="gridfinity-spiral-vase">gridfinity-spiral-vase</h1>
<p>Some assembly required!
Adaptation of Gridfinity bins to work with spiral vase mode, as to save filament and print time. A big drawback of using vase mode for Gridfinity bins was that they would be very flimsy, and would lack the features that make Gridfinity such a good organizational tool. The goal of this implementation was to maintain the design philosophy while working under the constraints of vase mode. </p>
<p><img alt="Bin" src="../images/vase_dividers.gif" />
<img alt="Bin" src="../images/vase_base.gif" /></p>
<h2 id="instructions">Instructions</h2>
<p>Normal Gridfinity is impossible to convert to vase mode due to the geometry of the bases, meaning most existing vase mode Gridfinity models are limited to 1x1 bins. How this script gets around the impossible is to use two separate pieces. <strong>The bin and bases must be printed separately, and then glued together to form the final bin.</strong> While this is slightly more work, there is an added bonus to this method, as for larger bins you may not need every single grid slot to have a base, you only really need them on the corners, or the edges, with some in the middle for support. Using less bases saves filament and print time.</p>
<p>All parameters are global. The customizer has descriptions for all parameters. It is <strong>essential</strong> that the section <em>Printer Settings</em> matches your preferred slicer's settings, otherwise the model will not slice correctly. Additionally, you have to turn on the spiral vase parameter in your slicer. If you do not know what vase mode is, <a href="https://www.youtube.com/watch?v=HZSFoFYpBaA">this</a> is a helpful video. </p>
<ol>
<li>Change the <em>Printer Settings</em> parameters to match your slicer and printer settings.</li>
<li>Run the <code>gridfinityVaseBase()</code> module. This will generate a single spiral-capable base. Export as an STL file. You will need to print multiple of these, so it recommended to fill a base plate with them using the "complete individual objects" option (or equivilant) in your slicer. You only need to do this step initially, and then each time your printer settings change afterwards. </li>
<li>Change the bin parameters and run <code>gridfinityVase()</code> module to generate the main bin. </li>
<li>Glue bases to the bottom of the bin. I recommend superglue on the corners and the top of the magnet holes. </li>
</ol>
<p>How your sliced files should look (cross section shown for 1x1 bin):</p>
<p><img alt="Bin" src="../images/slicer_bin.png" />
<img alt="Bin" src="../images/slicer_base.png" /></p>
<p>Example sliced files can be found on the <a href="https://www.printables.com/model/284371-spiral-vase-gridfinity-in-openscad">Printables</a> page. </p>
<h2 id="statistics">Statistics</h2>
<p>Given how it has become a bit of a <a href="https://www.printables.com/model/265271-gridfinity-lite-economical-plain-storage-bins">challenge</a> to reduce the weight and print time for these bins, here is a comparison for a large bin:</p>
<table>
<thead>
<tr>
<th>Type</th>
<th>Weight</th>
<th>Time</th>
</tr>
</thead>
<tbody>
<tr>
<td>Plain 4x2x6 Bin</td>
<td>114.66g</td>
<td>3h58m</td>
</tr>
<tr>
<td>Vase 4x2x6 Bin with 8 Bases</td>
<td>68.31g</td>
<td>2h27m</td>
</tr>
<tr>
<td>Vase 4x2x6 Bin with 4 Bases (only corners)</td>
<td>56.43g</td>
<td>1h59m</td>
</tr>
</tbody>
</table>
<p>Clearly, vase mode is very quick and quite lightweight. However, this fundamentally means the bins will be weaker, so keep that in mind. </p>
<h2 id="script-parameters">Script Parameters</h2>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Range</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>type</td>
<td>{ 0 , 1 }</td>
<td>generate the bin (0) or base (1)</td>
</tr>
<tr>
<td>nozzle</td>
<td>{ n&gt;0 | n∈R }</td>
<td>size of 3D printer nozzle</td>
</tr>
<tr>
<td>layer</td>
<td>{ n&gt;0 | n∈R }</td>
<td>size of layers in slicer</td>
</tr>
<tr>
<td>bottom_layer</td>
<td>{ n&gt;0 | n∈Z }</td>
<td>number of layers on the bottom of the print</td>
</tr>
<tr>
<td>gridx</td>
<td>{ n&gt;0 | n∈R }</td>
<td>number of bases along the x-axis</td>
</tr>
<tr>
<td>gridy</td>
<td>{ n&gt;0 | n∈R }</td>
<td>number of bases along the y-axis</td>
</tr>
<tr>
<td>gridz</td>
<td>{ n&gt;0 | n∈R }</td>
<td>bin height. See bin height information and <br> "gridz_define" below.</td>
</tr>
<tr>
<td>length</td>
<td>{ n&gt;0 | n∈R }</td>
<td>length of one unit of the base. <br> default: 42 (The Answer to the Ultimate Question of <br>Life, the Universe, and Everything.)</td>
</tr>
<tr>
<td>n_divx</td>
<td>{ n&gt;0 | n∈Z }</td>
<td>number of compartments along X</td>
</tr>
<tr>
<td>enable_holes</td>
<td>boolean</td>
<td>toggle holes inside the base</td>
</tr>
<tr>
<td>enable_zsnap</td>
<td>boolean</td>
<td>automatically snap the bin size to the nearest <br> 7mm increment. default: true</td>
</tr>
<tr>
<td>enable_lip</td>
<td>boolean</td>
<td>if you are not stacking the bin, you can disable the <br>top lip to save space. default: true</td>
</tr>
<tr>
<td>enable_scoop_chamfer</td>
<td>boolean</td>
<td>toggles the chamfer on bottom edge <br> for easy removal of items</td>
</tr>
<tr>
<td>enable_funnel</td>
<td>boolean</td>
<td>toggles funnel on back of tab. <br> acts as a finger grip and pour spout for small parts.</td>
</tr>
<tr>
<td>enable_inset</td>
<td>boolean</td>
<td>toggles an inset on the front of the bin. <br> adds strength when using scoop.</td>
</tr>
<tr>
<td>enable_pinch</td>
<td>boolean</td>
<td>toggles an outside pinch at the top lip of the bin. <br> adds strength.</td>
</tr>
<tr>
<td>gridz_define</td>
<td>{ n&gt;0 | n∈R }</td>
<td>determine what the variable "gridz" applies to based on <br> your use case. default: 0. <br> • (0) gridz is the height in # of 7mm increments (Zack) <br> • (1) gridz is the internal height in mm <br> • (2) gridz is the overall external height of the bin in mm</td>
</tr>
<tr>
<td>style_tab</td>
<td>{ 0, 1, 2, 3, 4, 5 }</td>
<td>how the tabs for labels are generated. <br> • (0) Full tabs across the entire compartment <br> • (1) automatic tabs <br> - left aligned tabs on the left edge<br> - right aligned tabs on right edge<br> - center tabs otherwise <br> • (2) left aligned tabs <br> • (3) center aligned tabs <br> • (4) right aligned tabs <br> • (5) no tabs</td>
</tr>
<tr>
<td>style_base</td>
<td>{ 0, 1, 2, 3, 4}</td>
<td>specifies the locations for the "X" cutouts for bases. <br> • (0) all <br> • (1) corners <br> • (2) edges <br> • (3) automatic <br> • (4) none</td>
</tr>
<tr>
<td>a_tab</td>
<td>{ n&gt;0 | n∈R }</td>
<td>angle of the tab</td>
</tr>
</tbody>
</table>
<h2 id="modules">Modules</h2>
<h3 id="gridfinityvase">gridfinityVase</h3>
<p>Generates the compartment section of the bin. No parameters as it uses the global parameters for construction. </p>
<p><strong><code>gridfinityVase()</code></strong></p>
<h3 id="gridfinityvasebase">gridfinityVaseBase</h3>
<p>Generates the base section of the bin. No parameters as it uses the global parameters for construction. It only generates a single base, as all of them are the same. Use your slicer with the "outpuit individual objects" option to print a full sheet of these, or as many as you need to fit your bins. </p>
<p><strong><code>gridfinityVaseBase()</code></strong></p>
</div>
</div><footer>