start updating lib to use solidLib.settings
2
Makefile
|
@ -1,4 +1,4 @@
|
|||
GENERATE = bin grid grid_inv pill rcube round_box round_flat_box toolinlay1 toolinlay2
|
||||
GENERATE = bin grid grid_inv pill rcube rfcube toolinlay1 toolinlay2
|
||||
|
||||
doc_images: $(GENERATE:%=docs/img/%.png)
|
||||
|
||||
|
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.8 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
@ -122,8 +122,10 @@
|
|||
<span></span><span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
||||
<span class="kn">import</span> <span class="nn">solid</span> <span class="k">as</span> <span class="nn">scad</span>
|
||||
<span class="kn">from</span> <span class="nn">.</span> <span class="kn">import</span> <span class="n">primitives</span> <span class="k">as</span> <span class="n">slp</span>
|
||||
<span class="kn">import</span> <span class="nn">solidLib</span> <span class="k">as</span> <span class="nn">sl</span>
|
||||
|
||||
<span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Union</span><span class="p">,</span> <span class="n">Iterable</span>
|
||||
|
||||
<span class="c1"># import .primitives as slp</span>
|
||||
|
||||
|
||||
|
@ -133,8 +135,6 @@
|
|||
<span class="n">w</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
||||
<span class="n">h</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1.5</span><span class="p">,</span>
|
||||
<span class="n">fillet</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">dim</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">59</span><span class="p">,</span>
|
||||
<span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">36</span><span class="p">,</span>
|
||||
<span class="p">):</span>
|
||||
<span class="sd">"""generate a grid of (flattened) triangles with or without fillet</span>
|
||||
|
||||
|
@ -149,7 +149,7 @@
|
|||
<span class="n">out</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">polygon</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="n">w</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="n">w</span> <span class="o">/</span> <span class="mi">2</span> <span class="o">-</span> <span class="n">h</span><span class="p">,</span> <span class="n">h</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">h</span><span class="p">]])</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">out</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">polygon</span><span class="p">([[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="n">w</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span> <span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">h</span><span class="p">]])</span>
|
||||
<span class="n">out</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">linear_extrude</span><span class="p">(</span><span class="n">dim</span><span class="p">)(</span><span class="n">out</span><span class="p">)</span>
|
||||
<span class="n">out</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">linear_extrude</span><span class="p">(</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">)(</span><span class="n">out</span><span class="p">)</span>
|
||||
<span class="n">out</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">([</span><span class="mi">90</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">90</span><span class="p">])(</span><span class="n">out</span><span class="p">)</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">fillet</span><span class="p">:</span>
|
||||
|
@ -158,25 +158,25 @@
|
|||
<span class="n">scallop</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">pill</span><span class="p">(</span>
|
||||
<span class="p">[</span>
|
||||
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">h</span> <span class="o">-</span> <span class="p">(</span><span class="n">w</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">h</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">dsl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">h</span> <span class="o">-</span> <span class="p">(</span><span class="n">w</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">h</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="c1"># [0,0,h], [dim - 2 * h - (w - 2 * h),0,h]</span>
|
||||
<span class="p">],</span>
|
||||
<span class="n">h</span><span class="p">,</span>
|
||||
<span class="n">segments</span><span class="o">=</span><span class="n">segments</span><span class="p">,</span>
|
||||
<span class="n">segments</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">scallop</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">90</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">scallop</span><span class="p">)</span> <span class="o">+</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">dim</span> <span class="o">-</span> <span class="n">w</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])(</span>
|
||||
<span class="n">scallop</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">90</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">scallop</span><span class="p">)</span> <span class="o">+</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">-</span> <span class="n">w</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">90</span><span class="p">,</span> <span class="mi">0</span><span class="p">])(</span><span class="n">scallop</span><span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">scallop</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">w</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span> <span class="n">w</span> <span class="o">/</span> <span class="mi">2</span><span class="p">,</span> <span class="n">h</span><span class="p">))(</span><span class="n">scallop</span><span class="p">)</span>
|
||||
<span class="n">out</span> <span class="o">-=</span> <span class="n">scallop</span>
|
||||
|
||||
<span class="n">out</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="n">dim</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">90</span><span class="p">))(</span><span class="n">out</span><span class="p">))</span>
|
||||
<span class="n">out</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">dim</span><span class="p">,</span> <span class="n">dim</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">180</span><span class="p">))(</span><span class="n">out</span><span class="p">))</span>
|
||||
<span class="n">out</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="o">-</span><span class="mi">90</span><span class="p">))(</span><span class="n">out</span><span class="p">))</span>
|
||||
<span class="n">out</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">scad</span><span class="o">.</span><span class="n">rotate</span><span class="p">((</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">180</span><span class="p">))(</span><span class="n">out</span><span class="p">))</span>
|
||||
|
||||
<span class="n">result</span> <span class="o">=</span> <span class="n">out</span>
|
||||
<span class="k">for</span> <span class="n">dx</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">x_dim</span><span class="p">):</span>
|
||||
<span class="k">for</span> <span class="n">dy</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">y</span><span class="p">):</span>
|
||||
<span class="n">result</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">dim</span> <span class="o">*</span> <span class="n">dx</span><span class="p">,</span> <span class="n">dim</span> <span class="o">*</span> <span class="n">dy</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">out</span><span class="p">)</span>
|
||||
<span class="n">result</span> <span class="o">+=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">dx</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">dy</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span><span class="n">out</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">result</span></div>
|
||||
|
||||
|
@ -187,29 +187,28 @@
|
|||
<span class="n">w</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
||||
<span class="n">h</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">1.5</span><span class="p">,</span>
|
||||
<span class="n">fillet</span><span class="p">:</span> <span class="nb">bool</span> <span class="o">=</span> <span class="kc">False</span><span class="p">,</span>
|
||||
<span class="n">dim</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">59</span><span class="p">,</span>
|
||||
<span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">36</span><span class="p">,</span>
|
||||
<span class="p">):</span>
|
||||
<span class="n">g</span> <span class="o">=</span> <span class="n">grid</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">fillet</span><span class="p">,</span> <span class="n">dim</span><span class="p">,</span> <span class="n">segments</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">x</span> <span class="o">*</span> <span class="n">dim</span><span class="p">,</span> <span class="n">y</span> <span class="o">*</span> <span class="n">dim</span><span class="p">,</span> <span class="n">h</span><span class="p">])</span> <span class="o">-</span> <span class="n">g</span></div>
|
||||
<span class="n">g</span> <span class="o">=</span> <span class="n">grid</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">fillet</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">)</span>
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">x</span> <span class="o">*</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">y</span> <span class="o">*</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">h</span><span class="p">])</span> <span class="o">-</span> <span class="n">g</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="bin"><a class="viewcode-back" href="../../solidLib.html#solidLib.assortment.bin">[docs]</a><span class="k">def</span> <span class="nf">bin</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">h</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">67</span><span class="p">,</span> <span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">36</span><span class="p">,</span> <span class="n">dim</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">59</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="bin"><a class="viewcode-back" href="../../solidLib.html#solidLib.assortment.bin">[docs]</a><span class="k">def</span> <span class="nf">bin</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">h</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">67</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> standardized container</span>
|
||||
|
||||
<span class="sd"> .. image:: img/bin.png</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">class</span> <span class="nc">dims</span><span class="p">:</span>
|
||||
<span class="n">wall</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">r_in</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">r_out</span> <span class="o">=</span> <span class="n">r_in</span> <span class="o">+</span> <span class="n">wall</span>
|
||||
|
||||
<span class="n">bulk</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">round_flat_box</span><span class="p">(</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x</span><span class="p">,</span> <span class="n">dim</span> <span class="o">*</span> <span class="n">y</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">dims</span><span class="o">.</span><span class="n">r_out</span><span class="p">)</span>
|
||||
<span class="n">hole</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">round_box</span><span class="p">(</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x</span> <span class="o">-</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="n">dim</span> <span class="o">*</span> <span class="n">y</span> <span class="o">-</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="n">h</span><span class="p">,</span> <span class="n">dims</span><span class="o">.</span><span class="n">r_in</span><span class="p">)</span>
|
||||
<span class="n">bulk</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">rfcube</span><span class="p">([</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">y</span><span class="p">,</span> <span class="n">h</span><span class="p">],</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="o">.</span><span class="n">r_out</span><span class="p">)</span>
|
||||
<span class="n">hole</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">rcube</span><span class="p">([</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x</span> <span class="o">-</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">y</span> <span class="o">-</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="n">h</span><span class="p">],</span> <span class="n">dims</span><span class="o">.</span><span class="n">r_in</span><span class="p">)</span>
|
||||
<span class="n">hole</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">dims</span><span class="o">.</span><span class="n">wall</span><span class="p">,</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</span><span class="p">,</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</span><span class="p">])(</span><span class="n">hole</span><span class="p">)</span>
|
||||
|
||||
<span class="n">wall_o</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cylinder</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">dims</span><span class="o">.</span><span class="n">r_out</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">dims</span><span class="o">.</span><span class="n">r_out</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">segments</span><span class="p">)</span>
|
||||
<span class="n">wall_o</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cylinder</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">dims</span><span class="o">.</span><span class="n">r_out</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">dims</span><span class="o">.</span><span class="n">r_out</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">)</span>
|
||||
|
||||
<span class="n">g</span> <span class="o">=</span> <span class="n">grid</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">)</span>
|
||||
|
||||
|
@ -226,8 +225,6 @@
|
|||
<span class="n">r_tool</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">7</span><span class="p">,</span>
|
||||
<span class="n">inset</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
|
||||
<span class="n">maxh</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">67</span><span class="p">,</span>
|
||||
<span class="n">dim</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">59</span><span class="p">,</span>
|
||||
<span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">36</span>
|
||||
<span class="p">):</span>
|
||||
<span class="sd">"""toolinlay1</span>
|
||||
|
||||
|
@ -244,19 +241,19 @@
|
|||
<span class="n">r_in</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">tool_ins</span> <span class="o">=</span> <span class="mi">3</span>
|
||||
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">round_flat_box</span><span class="p">(</span><span class="n">x</span> <span class="o">*</span> <span class="n">dim</span><span class="p">,</span> <span class="n">y</span> <span class="o">*</span> <span class="n">dim</span><span class="p">,</span> <span class="n">height</span> <span class="o">+</span> <span class="n">inset</span><span class="p">,</span> <span class="n">r_in</span> <span class="o">+</span> <span class="n">wall</span><span class="p">)</span>
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">rfcube</span><span class="p">([</span><span class="n">x</span> <span class="o">*</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">y</span> <span class="o">*</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">height</span> <span class="o">+</span> <span class="n">inset</span><span class="p">],</span> <span class="n">r_in</span> <span class="o">+</span> <span class="n">wall</span><span class="p">)</span>
|
||||
|
||||
<span class="n">toolindent</span> <span class="o">=</span> <span class="mf">0.1</span>
|
||||
<span class="n">toolindent_w</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">toolbase_l</span> <span class="o">=</span> <span class="n">dim</span> <span class="o">*</span> <span class="n">x</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r_tool</span>
|
||||
<span class="n">toolbase_l</span> <span class="o">=</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r_tool</span>
|
||||
<span class="n">toolbase_t</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">toolbase_l</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">toolindent</span><span class="p">),</span> <span class="mf">0.001</span><span class="p">,</span> <span class="n">tool_ins</span><span class="p">])</span>
|
||||
<span class="n">toolbase_b</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">toolbase_l</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">toolindent</span><span class="p">),</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">])(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">toolbase_l</span> <span class="o">*</span> <span class="n">toolindent</span> <span class="o">-</span> <span class="n">toolindent_w</span><span class="p">,</span> <span class="mf">0.001</span><span class="p">,</span> <span class="n">tool_ins</span><span class="p">])</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">toolcutout</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">minkowski</span><span class="p">()(</span>
|
||||
<span class="n">toolbase_t</span><span class="p">,</span> <span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">r_tool</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">segments</span><span class="p">)</span>
|
||||
<span class="n">toolbase_t</span><span class="p">,</span> <span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">r_tool</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">)</span>
|
||||
<span class="p">)</span> <span class="o">+</span> <span class="n">scad</span><span class="o">.</span><span class="n">minkowski</span><span class="p">()(</span>
|
||||
<span class="n">toolbase_b</span><span class="p">,</span> <span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">r_tool</span> <span class="o">+</span> <span class="n">toolindent_w</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">segments</span><span class="p">)</span>
|
||||
<span class="n">toolbase_b</span><span class="p">,</span> <span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">r_tool</span> <span class="o">+</span> <span class="n">toolindent_w</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="n">toolcutout</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">(</span>
|
||||
|
@ -264,14 +261,14 @@
|
|||
<span class="p">)(</span><span class="n">toolcutout</span><span class="p">)</span>
|
||||
|
||||
<span class="n">toolcutouts</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">((</span><span class="n">dim</span> <span class="o">*</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">wall</span><span class="p">)</span> <span class="o">//</span> <span class="p">(</span><span class="n">r_tool</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">toolindent_w</span><span class="p">)):</span>
|
||||
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">((</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">wall</span><span class="p">)</span> <span class="o">//</span> <span class="p">(</span><span class="n">r_tool</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">toolindent_w</span><span class="p">)):</span>
|
||||
<span class="n">toolcutouts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="n">i</span> <span class="o">*</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">r_tool</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">toolindent_w</span> <span class="o">+</span> <span class="mf">1.4</span><span class="p">),</span> <span class="mi">0</span><span class="p">])(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">color</span><span class="p">(</span><span class="s2">"yellow"</span><span class="p">)(</span><span class="n">toolcutout</span><span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="n">lower</span> <span class="o">=</span> <span class="nb">bin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">maxh</span> <span class="o">-</span> <span class="n">height</span><span class="p">,</span> <span class="n">dim</span><span class="o">=</span><span class="n">dim</span><span class="p">)</span>
|
||||
<span class="n">lower</span> <span class="o">=</span> <span class="nb">bin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">maxh</span> <span class="o">-</span> <span class="n">height</span><span class="p">,</span> <span class="n">dim</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">)</span>
|
||||
<span class="n">lower</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">color</span><span class="p">(</span><span class="s2">"red"</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)(</span><span class="n">lower</span><span class="p">)</span>
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">maxh</span> <span class="o">-</span> <span class="n">height</span> <span class="o">-</span> <span class="n">inset</span><span class="p">])(</span><span class="n">base</span><span class="p">)</span>
|
||||
|
||||
|
@ -284,9 +281,7 @@
|
|||
<span class="n">inset</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">4</span><span class="p">,</span>
|
||||
<span class="n">inset_tool</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">3</span><span class="p">,</span>
|
||||
<span class="n">maxh</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">67</span><span class="p">,</span>
|
||||
<span class="n">dim</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">59</span><span class="p">,</span>
|
||||
<span class="n">wall</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mi">2</span><span class="p">,</span>
|
||||
<span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">36</span><span class="p">,</span>
|
||||
<span class="p">):</span>
|
||||
<span class="sd">"""toolinlay2</span>
|
||||
|
||||
|
@ -299,14 +294,11 @@
|
|||
<span class="sd"> :param inset: depth of toolinlay inset</span>
|
||||
<span class="sd"> :param inset_tool: depth of additional toolspace inset</span>
|
||||
<span class="sd"> :param maxh: system height restriction</span>
|
||||
<span class="sd"> :param dim: system raster dimension</span>
|
||||
<span class="sd"> :param segments: circular object segments</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">x_dim</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">y_dim</span> <span class="o">=</span> <span class="mi">3</span>
|
||||
<span class="n">x_dim</span> <span class="o">=</span> <span class="mi">3</span>
|
||||
<span class="n">r_in</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">round_flat_box</span><span class="p">(</span><span class="n">x_dim</span> <span class="o">*</span> <span class="n">dim</span><span class="p">,</span> <span class="n">y_dim</span> <span class="o">*</span> <span class="n">dim</span><span class="p">,</span> <span class="n">height</span> <span class="o">+</span> <span class="n">inset</span><span class="p">,</span> <span class="n">r_in</span> <span class="o">+</span> <span class="n">wall</span><span class="p">)</span>
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="n">slp</span><span class="o">.</span><span class="n">rfcube</span><span class="p">([</span><span class="n">x_dim</span> <span class="o">*</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">y_dim</span> <span class="o">*</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">,</span> <span class="n">height</span> <span class="o">+</span> <span class="n">inset</span><span class="p">],</span> <span class="n">r_in</span> <span class="o">+</span> <span class="n">wall</span><span class="p">)</span>
|
||||
|
||||
<span class="n">toolindent</span> <span class="o">=</span> <span class="mf">0.1</span>
|
||||
<span class="n">toolindent_w</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
|
@ -315,12 +307,12 @@
|
|||
<span class="n">tool_rs</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="k">if</span> <span class="ow">not</span> <span class="nb">isinstance</span><span class="p">(</span><span class="n">r_tool</span><span class="p">,</span> <span class="nb">list</span><span class="p">):</span>
|
||||
<span class="n">tool_rs</span> <span class="o">=</span> <span class="p">[</span><span class="n">r_tool</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span>
|
||||
<span class="p">(</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">wall</span><span class="p">)</span> <span class="o">//</span> <span class="p">(</span><span class="n">r_tool</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">toolindent_w</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
|
||||
<span class="p">(</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">3</span> <span class="o">*</span> <span class="n">wall</span><span class="p">)</span> <span class="o">//</span> <span class="p">(</span><span class="n">r_tool</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">toolindent_w</span><span class="p">)</span> <span class="o">-</span> <span class="mi">1</span>
|
||||
<span class="p">)</span>
|
||||
<span class="k">else</span><span class="p">:</span>
|
||||
<span class="n">tool_rs</span> <span class="o">=</span> <span class="n">r_tool</span>
|
||||
|
||||
<span class="n">toolbase_l</span> <span class="o">=</span> <span class="n">dim</span> <span class="o">*</span> <span class="n">y_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">tool_rs</span><span class="p">)</span>
|
||||
<span class="n">toolbase_l</span> <span class="o">=</span> <span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">y_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">max</span><span class="p">(</span><span class="n">tool_rs</span><span class="p">)</span>
|
||||
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">r</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">tool_rs</span><span class="p">):</span>
|
||||
<span class="n">toolbase_t</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="mf">0.001</span><span class="p">,</span> <span class="n">toolbase_l</span> <span class="o">*</span> <span class="p">(</span><span class="mi">1</span> <span class="o">-</span> <span class="n">toolindent</span><span class="p">),</span> <span class="n">inset_tool</span><span class="p">])</span>
|
||||
<span class="c1"># toolbase_b = scad.translate([0, toolbase_l * (1 - toolindent), 0])(</span>
|
||||
|
@ -348,12 +340,12 @@
|
|||
<span class="p">[</span>
|
||||
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="mi">0</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">dim</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||||
<span class="p">[</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span> <span class="o">*</span> <span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">wall</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span><span class="p">,</span> <span class="mi">10</span><span class="p">],</span>
|
||||
<span class="p">]</span>
|
||||
<span class="p">)</span>
|
||||
<span class="o">+</span> <span class="p">[</span><span class="mi">9</span> <span class="o">+</span> <span class="n">wall</span><span class="p">,</span> <span class="mi">9</span> <span class="o">+</span> <span class="n">wall</span><span class="p">,</span> <span class="n">maxh</span> <span class="o">-</span> <span class="n">inset_tool</span><span class="p">],</span>
|
||||
|
@ -361,14 +353,19 @@
|
|||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">toolcutouts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span><span class="mi">0</span><span class="p">))(</span>
|
||||
<span class="n">slp</span><span class="o">.</span><span class="n">round_flat_box</span><span class="p">(</span>
|
||||
<span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span> <span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span> <span class="o">-</span> <span class="n">wall</span><span class="p">,</span> <span class="mi">100</span><span class="p">,</span> <span class="mi">9</span><span class="o">-</span><span class="n">wall</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">segments</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">((</span><span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="n">wall</span> <span class="o">*</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">0</span><span class="p">))(</span>
|
||||
<span class="n">slp</span><span class="o">.</span><span class="n">rfcube</span><span class="p">(</span>
|
||||
<span class="p">[</span>
|
||||
<span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span><span class="p">,</span>
|
||||
<span class="n">toolindent</span> <span class="o">*</span> <span class="n">toolbase_l</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="mi">9</span> <span class="o">-</span> <span class="n">wall</span><span class="p">,</span>
|
||||
<span class="mi">100</span><span class="p">,</span>
|
||||
<span class="p">],</span>
|
||||
<span class="mi">9</span> <span class="o">-</span> <span class="n">wall</span><span class="p">,</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="n">lower</span> <span class="o">=</span> <span class="nb">bin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">maxh</span> <span class="o">-</span> <span class="n">height</span><span class="p">,</span> <span class="n">dim</span><span class="o">=</span><span class="n">dim</span><span class="p">)</span>
|
||||
<span class="n">lower</span> <span class="o">=</span> <span class="nb">bin</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="n">maxh</span> <span class="o">-</span> <span class="n">height</span><span class="p">,</span> <span class="n">dim</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">raster</span><span class="p">)</span>
|
||||
<span class="n">lower</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">color</span><span class="p">(</span><span class="s2">"red"</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">)(</span><span class="n">lower</span><span class="p">)</span>
|
||||
<span class="n">base</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">maxh</span> <span class="o">-</span> <span class="n">height</span> <span class="o">-</span> <span class="n">inset</span><span class="p">])(</span><span class="n">base</span><span class="p">)</span>
|
||||
|
||||
|
|
|
@ -123,35 +123,19 @@
|
|||
|
||||
<span class="kn">import</span> <span class="nn">solid</span> <span class="k">as</span> <span class="nn">scad</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">solidLib</span> <span class="k">as</span> <span class="nn">sl</span>
|
||||
|
||||
<span class="kn">import</span> <span class="nn">numpy</span> <span class="k">as</span> <span class="nn">np</span>
|
||||
<span class="kn">import</span> <span class="nn">logging</span> <span class="k">as</span> <span class="nn">log</span>
|
||||
|
||||
<span class="n">log</span><span class="o">.</span><span class="n">basicConfig</span><span class="p">(</span><span class="n">level</span><span class="o">=</span><span class="n">log</span><span class="o">.</span><span class="n">INFO</span><span class="p">)</span>
|
||||
|
||||
<div class="viewcode-block" id="round_box"><a class="viewcode-back" href="../../solidLib.html#solidLib.primitives.round_box">[docs]</a><span class="k">def</span> <span class="nf">round_box</span><span class="p">(</span><span class="n">x_dim</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">y_dim</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">z_dim</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">radius</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">32</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> creates a round box with radius r</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> x_dim (float): .</span>
|
||||
|
||||
<span class="sd"> Important:</span>
|
||||
<span class="sd"> deprecated</span>
|
||||
|
||||
<span class="sd"> .. image:: img/round_box.png</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">box</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">x_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">radius</span><span class="p">,</span> <span class="n">y_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">radius</span><span class="p">,</span> <span class="n">z_dim</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">radius</span><span class="p">])</span>
|
||||
<span class="n">wall</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">radius</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">segments</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">radius</span><span class="p">,</span> <span class="n">radius</span><span class="p">,</span> <span class="n">radius</span><span class="p">])(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">minkowski</span><span class="p">()(</span><span class="n">box</span><span class="p">,</span> <span class="n">wall</span><span class="p">)</span>
|
||||
<span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="rcube"><a class="viewcode-back" href="../../solidLib.html#solidLib.primitives.rcube">[docs]</a><span class="k">def</span> <span class="nf">rcube</span><span class="p">(</span><span class="n">dim</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">radius</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">32</span><span class="p">):</span>
|
||||
<div class="viewcode-block" id="rcube"><a class="viewcode-back" href="../../solidLib.html#solidLib.primitives.rcube">[docs]</a><span class="k">def</span> <span class="nf">rcube</span><span class="p">(</span><span class="n">dim</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">radius</span><span class="p">:</span> <span class="nb">float</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> creates a cube with rounded corners</span>
|
||||
|
||||
<span class="sd"> .. image:: img/round_box.png</span>
|
||||
<span class="sd"> .. image:: img/rcube.png</span>
|
||||
|
||||
<span class="sd"> Args:</span>
|
||||
<span class="sd"> dim: cube dimensions to base box on.</span>
|
||||
|
@ -164,29 +148,30 @@
|
|||
<span class="k">for</span> <span class="n">dy</span> <span class="ow">in</span> <span class="p">[</span><span class="n">radius</span><span class="p">,</span> <span class="n">dim</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="n">radius</span><span class="p">]:</span>
|
||||
<span class="k">for</span> <span class="n">dz</span> <span class="ow">in</span> <span class="p">[</span><span class="n">radius</span><span class="p">,</span> <span class="n">dim</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="n">radius</span><span class="p">]:</span>
|
||||
<span class="n">corners</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="p">,</span> <span class="n">dz</span><span class="p">])((</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">radius</span><span class="p">)</span>
|
||||
<span class="p">))</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">dx</span><span class="p">,</span> <span class="n">dy</span><span class="p">,</span> <span class="n">dz</span><span class="p">])(</span>
|
||||
<span class="p">(</span><span class="n">scad</span><span class="o">.</span><span class="n">sphere</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">radius</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">))</span>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">hull</span><span class="p">()(</span><span class="o">*</span><span class="n">corners</span><span class="p">)</span></div>
|
||||
|
||||
<div class="viewcode-block" id="round_flat_box"><a class="viewcode-back" href="../../solidLib.html#solidLib.primitives.round_flat_box">[docs]</a><span class="k">def</span> <span class="nf">round_flat_box</span><span class="p">(</span><span class="n">x</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">y</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">z</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">r</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span> <span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">32</span><span class="p">):</span>
|
||||
|
||||
<div class="viewcode-block" id="rfcube"><a class="viewcode-back" href="../../solidLib.html#solidLib.primitives.rfcube">[docs]</a><span class="k">def</span> <span class="nf">rfcube</span><span class="p">(</span><span class="n">dim</span><span class="p">:</span> <span class="n">Iterable</span><span class="p">[</span><span class="nb">float</span><span class="p">],</span> <span class="n">r</span><span class="p">:</span> <span class="nb">float</span><span class="p">):</span>
|
||||
<span class="sd">"""creates a round box with radius r and flat top/bottom</span>
|
||||
|
||||
<span class="sd"> .. image:: img/round_flat_box.png</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">box</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">x</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">,</span> <span class="n">y</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">,</span> <span class="n">z</span><span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">])</span>
|
||||
<span class="n">wall</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cylinder</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">r</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="mi">2</span><span class="o">*</span><span class="n">r</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">SEGMENTS</span><span class="p">)</span>
|
||||
<span class="n">box</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cube</span><span class="p">([</span><span class="n">dim</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">,</span> <span class="n">dim</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">,</span> <span class="n">dim</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">-</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">])</span>
|
||||
<span class="n">wall</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">cylinder</span><span class="p">(</span><span class="n">r</span><span class="o">=</span><span class="n">r</span><span class="p">,</span> <span class="n">h</span><span class="o">=</span><span class="mi">2</span> <span class="o">*</span> <span class="n">r</span><span class="p">,</span> <span class="n">segments</span><span class="o">=</span><span class="n">sl</span><span class="o">.</span><span class="n">settings</span><span class="o">.</span><span class="n">segments</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">r</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="mi">0</span><span class="p">])(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">minkowski</span><span class="p">()(</span><span class="n">box</span><span class="p">,</span> <span class="n">wall</span><span class="p">)</span>
|
||||
<span class="p">)</span></div>
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">([</span><span class="n">r</span><span class="p">,</span> <span class="n">r</span><span class="p">,</span> <span class="mi">0</span><span class="p">])(</span><span class="n">scad</span><span class="o">.</span><span class="n">minkowski</span><span class="p">()(</span><span class="n">box</span><span class="p">,</span> <span class="n">wall</span><span class="p">))</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="pill"><a class="viewcode-back" href="../../solidLib.html#solidLib.primitives.pill">[docs]</a><span class="k">def</span> <span class="nf">pill</span><span class="p">(</span><span class="n">ps</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">List</span><span class="p">[</span><span class="nb">float</span><span class="p">]],</span> <span class="n">r</span><span class="p">,</span> <span class="n">segments</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">36</span><span class="p">):</span>
|
||||
<span class="sd">"""</span>
|
||||
<span class="sd"> create a pill around given points</span>
|
||||
|
||||
<span class="sd"> .. image:: img/pill.png</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">ps</span><span class="p">)</span> <span class="o"><</span> <span class="mi">2</span><span class="p">:</span>
|
||||
<span class="k">raise</span> <span class="ne">Exception</span><span class="p">(</span><span class="s2">"requires 2 or more points"</span><span class="p">)</span>
|
||||
|
@ -195,9 +180,7 @@
|
|||
<span class="n">spheres</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<span class="c1"># log.info(ps)</span>
|
||||
<span class="k">for</span> <span class="n">p</span> <span class="ow">in</span> <span class="n">ps</span><span class="p">:</span>
|
||||
<span class="n">spheres</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
|
||||
<span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">(</span><span class="n">p</span><span class="p">)(</span><span class="n">s</span><span class="p">)</span>
|
||||
<span class="p">)</span>
|
||||
<span class="n">spheres</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">scad</span><span class="o">.</span><span class="n">translate</span><span class="p">(</span><span class="n">p</span><span class="p">)(</span><span class="n">s</span><span class="p">))</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">scad</span><span class="o">.</span><span class="n">hull</span><span class="p">()(</span><span class="o">*</span><span class="n">spheres</span><span class="p">)</span></div>
|
||||
</pre></div>
|
||||
|
|
|
@ -189,14 +189,12 @@
|
|||
<table style="width: 100%" class="indextable genindextable"><tr>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="solidLib.html#solidLib.settings.raster">raster (solidLib.settings attribute)</a>
|
||||
</li>
|
||||
<li><a href="solidLib.html#solidLib.primitives.rcube">rcube() (in module solidLib.primitives)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="solidLib.html#solidLib.primitives.round_box">round_box() (in module solidLib.primitives)</a>
|
||||
<li><a href="solidLib.html#solidLib.primitives.rcube">rcube() (in module solidLib.primitives)</a>
|
||||
</li>
|
||||
<li><a href="solidLib.html#solidLib.primitives.round_flat_box">round_flat_box() (in module solidLib.primitives)</a>
|
||||
<li><a href="solidLib.html#solidLib.primitives.rfcube">rfcube() (in module solidLib.primitives)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
</tr></table>
|
||||
|
|
|
@ -1 +1 @@
|
|||
Search.setIndex({docnames:["index","solidLib"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","solidLib.rst"],objects:{"":{solidLib:[1,0,0,"-"]},"solidLib.assortment":{bin:[1,1,1,""],grid:[1,1,1,""],grid_inv:[1,1,1,""],toolinlay1:[1,1,1,""],toolinlay2:[1,1,1,""]},"solidLib.primitives":{pill:[1,1,1,""],rcube:[1,1,1,""],round_box:[1,1,1,""],round_flat_box:[1,1,1,""]},"solidLib.settings":{height:[1,3,1,""],raster:[1,3,1,""],segments:[1,3,1,""]},solidLib:{assortment:[1,0,0,"-"],primitives:[1,0,0,"-"],settings:[1,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},terms:{"2x3":1,"class":1,"float":1,"int":1,abov:1,addit:1,alex:1,arg:1,around:1,assort:0,base:1,bin:1,bool:1,bottom:1,box:1,circular:1,contain:1,content:0,corner:1,creat:1,cube:1,deprec:1,depth:1,dim:1,dimens:1,dolidlib:1,fals:1,fillet:1,flat:1,flatten:1,gener:1,given:1,global:1,grid:1,grid_inv:1,gridspac:1,height:1,index:0,inset:1,inset_tool:1,iter:1,list:1,lower:1,maxh:1,modul:0,object:1,packag:0,page:0,paramet:1,pill:1,point:1,primit:0,r_tool:1,radiu:1,raster:1,rcube:1,restrict:1,round:1,round_box:1,round_flat_box:1,search:0,segment:1,set:1,size:1,sourc:1,standard:1,structur:1,submodul:0,system:1,toolinlai:1,toolinlay1:1,toolinlay2:1,toolspac:1,tooltrai:1,top:1,triangl:1,union:1,used:1,wall:1,width:1,without:1,x_dim:1,y_dim:1,z_dim:1},titles:["Welcome to solidLib\u2019s documentation!","solidLib package"],titleterms:{assort:1,content:1,document:0,global:[],indic:0,modul:1,packag:1,primit:1,solidlib:[0,1],submodul:1,tabl:0,welcom:0}})
|
||||
Search.setIndex({docnames:["index","solidLib"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":1,"sphinx.ext.todo":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","solidLib.rst"],objects:{"":{solidLib:[1,0,0,"-"]},"solidLib.assortment":{bin:[1,1,1,""],grid:[1,1,1,""],grid_inv:[1,1,1,""],toolinlay1:[1,1,1,""],toolinlay2:[1,1,1,""]},"solidLib.primitives":{pill:[1,1,1,""],rcube:[1,1,1,""],rfcube:[1,1,1,""]},"solidLib.settings":{height:[1,3,1,""],raster:[1,3,1,""],segments:[1,3,1,""]},solidLib:{assortment:[1,0,0,"-"],primitives:[1,0,0,"-"],settings:[1,2,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},terms:{"2x3":1,"class":1,"float":1,"int":1,abov:1,addit:1,alex:1,arg:1,around:1,assort:0,base:1,bin:1,bool:1,bottom:1,box:1,circular:1,contain:1,content:0,corner:1,creat:1,cube:1,deprec:[],depth:1,dim:1,dimens:1,dolidlib:1,fals:1,fillet:1,flat:1,flatten:1,gener:1,given:1,global:1,grid:1,grid_inv:1,gridspac:1,height:1,index:0,inset:1,inset_tool:1,iter:1,list:1,lower:1,maxh:1,modul:0,object:1,packag:0,page:0,paramet:1,pill:1,point:1,primit:0,r_tool:1,radiu:1,raster:1,rcube:1,restrict:1,rfbox:[],rfcube:1,round:1,round_box:[],round_flat_box:[],search:0,segment:1,set:1,size:1,sourc:1,standard:1,structur:1,submodul:0,system:1,toolinlai:1,toolinlay1:1,toolinlay2:1,toolspac:1,tooltrai:1,top:1,triangl:1,union:1,used:1,wall:1,width:1,without:1,x_dim:1,y_dim:[],z_dim:[]},titles:["Welcome to solidLib\u2019s documentation!","solidLib package"],titleterms:{assort:1,content:1,document:0,global:[],indic:0,modul:1,packag:1,primit:1,solidlib:[0,1],submodul:1,tabl:0,welcom:0}})
|
|
@ -149,14 +149,14 @@
|
|||
<span id="solidlib-assortment-module"></span><h2>solidLib.assortment module<a class="headerlink" href="#module-solidLib.assortment" title="Permalink to this headline">¶</a></h2>
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.assortment.bin">
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">bin</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">h</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">67</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">36</span></em>, <em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">59</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#bin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.bin" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">bin</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">h</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">67</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#bin"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.bin" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>standardized container</p>
|
||||
<img alt="_images/bin.png" src="_images/bin.png" />
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.assortment.grid">
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">grid</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x_dim</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">w</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">3</span></em>, <em class="sig-param"><span class="n">h</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.5</span></em>, <em class="sig-param"><span class="n">fillet</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">59</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">36</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#grid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.grid" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">grid</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x_dim</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">int</span></em>, <em class="sig-param"><span class="n">w</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">3</span></em>, <em class="sig-param"><span class="n">h</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.5</span></em>, <em class="sig-param"><span class="n">fillet</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#grid"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.grid" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>generate a grid of (flattened) triangles with or without fillet</p>
|
||||
<p>the generated grid is x by y in size with a gridspace of size dim,
|
||||
the triangles used for the base structure is given by their height and width</p>
|
||||
|
@ -165,12 +165,12 @@ the triangles used for the base structure is given by their height and width</p>
|
|||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.assortment.grid_inv">
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">grid_inv</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">w</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">3</span></em>, <em class="sig-param"><span class="n">h</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.5</span></em>, <em class="sig-param"><span class="n">fillet</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em>, <em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">59</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">36</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#grid_inv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.grid_inv" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">grid_inv</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">w</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">3</span></em>, <em class="sig-param"><span class="n">h</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">1.5</span></em>, <em class="sig-param"><span class="n">fillet</span><span class="p">:</span> <span class="n">bool</span> <span class="o">=</span> <span class="default_value">False</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#grid_inv"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.grid_inv" title="Permalink to this definition">¶</a></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.assortment.toolinlay1">
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">toolinlay1</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">height</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="n">r_tool</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">7</span></em>, <em class="sig-param"><span class="n">inset</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">4</span></em>, <em class="sig-param"><span class="n">maxh</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">67</span></em>, <em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">59</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">36</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#toolinlay1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.toolinlay1" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">toolinlay1</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">height</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="o">*</span><span class="n">args</span></em>, <em class="sig-param"><span class="n">r_tool</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">7</span></em>, <em class="sig-param"><span class="n">inset</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">4</span></em>, <em class="sig-param"><span class="n">maxh</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">67</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#toolinlay1"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.toolinlay1" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>creates a tooltray for alex container bins (2x3)</p>
|
||||
<img alt="_images/toolinlay1.png" src="_images/toolinlay1.png" />
|
||||
<dl class="field-list simple">
|
||||
|
@ -185,7 +185,7 @@ the triangles used for the base structure is given by their height and width</p>
|
|||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.assortment.toolinlay2">
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">toolinlay2</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">height</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">r_tool</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>float<span class="p">, </span>Iterable<span class="p">[</span>float<span class="p">]</span><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">7</span></em>, <em class="sig-param"><span class="n">inset</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">4</span></em>, <em class="sig-param"><span class="n">inset_tool</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">3</span></em>, <em class="sig-param"><span class="n">maxh</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">67</span></em>, <em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">59</span></em>, <em class="sig-param"><span class="n">wall</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">2</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">36</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#toolinlay2"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.toolinlay2" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-prename descclassname">solidLib.assortment.</code><code class="sig-name descname">toolinlay2</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">height</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">r_tool</span><span class="p">:</span> <span class="n">Union<span class="p">[</span>float<span class="p">, </span>Iterable<span class="p">[</span>float<span class="p">]</span><span class="p">]</span></span> <span class="o">=</span> <span class="default_value">7</span></em>, <em class="sig-param"><span class="n">inset</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">4</span></em>, <em class="sig-param"><span class="n">inset_tool</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">3</span></em>, <em class="sig-param"><span class="n">maxh</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">67</span></em>, <em class="sig-param"><span class="n">wall</span><span class="p">:</span> <span class="n">float</span> <span class="o">=</span> <span class="default_value">2</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/assortment.html#toolinlay2"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.assortment.toolinlay2" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>creates a tooltray for alex container bins (2x3)</p>
|
||||
<img alt="_images/toolinlay2.png" src="_images/toolinlay2.png" />
|
||||
<dl class="field-list simple">
|
||||
|
@ -196,8 +196,6 @@ the triangles used for the base structure is given by their height and width</p>
|
|||
<li><p><strong>inset</strong> – depth of toolinlay inset</p></li>
|
||||
<li><p><strong>inset_tool</strong> – depth of additional toolspace inset</p></li>
|
||||
<li><p><strong>maxh</strong> – system height restriction</p></li>
|
||||
<li><p><strong>dim</strong> – system raster dimension</p></li>
|
||||
<li><p><strong>segments</strong> – circular object segments</p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
@ -210,13 +208,14 @@ the triangles used for the base structure is given by their height and width</p>
|
|||
<dt id="solidLib.primitives.pill">
|
||||
<code class="sig-prename descclassname">solidLib.primitives.</code><code class="sig-name descname">pill</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">ps</span><span class="p">:</span> <span class="n">List<span class="p">[</span>List<span class="p">[</span>float<span class="p">]</span><span class="p">]</span></span></em>, <em class="sig-param"><span class="n">r</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">36</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/primitives.html#pill"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.primitives.pill" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>create a pill around given points</p>
|
||||
<img alt="_images/pill.png" src="_images/pill.png" />
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.primitives.rcube">
|
||||
<code class="sig-prename descclassname">solidLib.primitives.</code><code class="sig-name descname">rcube</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">Iterable<span class="p">[</span>float<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">radius</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">32</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/primitives.html#rcube"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.primitives.rcube" title="Permalink to this definition">¶</a></dt>
|
||||
<code class="sig-prename descclassname">solidLib.primitives.</code><code class="sig-name descname">rcube</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">Iterable<span class="p">[</span>float<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">radius</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/primitives.html#rcube"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.primitives.rcube" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>creates a cube with rounded corners</p>
|
||||
<img alt="_images/round_box.png" src="_images/round_box.png" />
|
||||
<img alt="_images/rcube.png" src="_images/rcube.png" />
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
|
@ -229,25 +228,8 @@ the triangles used for the base structure is given by their height and width</p>
|
|||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.primitives.round_box">
|
||||
<code class="sig-prename descclassname">solidLib.primitives.</code><code class="sig-name descname">round_box</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x_dim</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">y_dim</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">z_dim</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">radius</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">32</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/primitives.html#round_box"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.primitives.round_box" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>creates a round box with radius r</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>x_dim</strong> (<em>float</em>) – <p>.</p>
|
||||
</p>
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="admonition important">
|
||||
<p class="admonition-title">Important</p>
|
||||
<p>deprecated</p>
|
||||
</div>
|
||||
<img alt="_images/round_box.png" src="_images/round_box.png" />
|
||||
</dd></dl>
|
||||
|
||||
<dl class="py function">
|
||||
<dt id="solidLib.primitives.round_flat_box">
|
||||
<code class="sig-prename descclassname">solidLib.primitives.</code><code class="sig-name descname">round_flat_box</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">x</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">y</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">z</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">r</span><span class="p">:</span> <span class="n">float</span></em>, <em class="sig-param"><span class="n">segments</span><span class="p">:</span> <span class="n">int</span> <span class="o">=</span> <span class="default_value">32</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/primitives.html#round_flat_box"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.primitives.round_flat_box" title="Permalink to this definition">¶</a></dt>
|
||||
<dt id="solidLib.primitives.rfcube">
|
||||
<code class="sig-prename descclassname">solidLib.primitives.</code><code class="sig-name descname">rfcube</code><span class="sig-paren">(</span><em class="sig-param"><span class="n">dim</span><span class="p">:</span> <span class="n">Iterable<span class="p">[</span>float<span class="p">]</span></span></em>, <em class="sig-param"><span class="n">r</span><span class="p">:</span> <span class="n">float</span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/solidLib/primitives.html#rfcube"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#solidLib.primitives.rfcube" title="Permalink to this definition">¶</a></dt>
|
||||
<dd><p>creates a round box with radius r and flat top/bottom</p>
|
||||
<img alt="_images/round_flat_box.png" src="_images/round_flat_box.png" />
|
||||
</dd></dl>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
union() {
|
||||
|
@ -10,10 +10,30 @@ union() {
|
|||
}
|
||||
}
|
||||
translate(v = [2, 2, 2]) {
|
||||
hull() {
|
||||
translate(v = [2, 2, 2]) {
|
||||
minkowski() {
|
||||
cube(size = [51, 51, 63]);
|
||||
sphere($fn = 32, r = 2);
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 2, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 53, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 53, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 2, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 2, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 53, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 53, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -474,10 +494,30 @@ union() {
|
|||
}
|
||||
}
|
||||
translate(v = [2, 2, 2]) {
|
||||
hull() {
|
||||
translate(v = [2, 2, 2]) {
|
||||
minkowski() {
|
||||
cube(size = [51, 51, 63]);
|
||||
sphere($fn = 32, r = 2);
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 2, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 53, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 53, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 2, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 2, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 53, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [53, 53, 65]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -495,8 +535,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
union() {
|
||||
|
@ -277,8 +277,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
difference() {
|
||||
|
@ -280,8 +280,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
hull() {
|
||||
|
@ -21,8 +21,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -1,30 +1,30 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
hull() {
|
||||
translate(v = [0.2500000000, 0.2500000000, 0.2500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.2500000000, 0.2500000000, 0.7500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.2500000000, 0.7500000000, 0.2500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.2500000000, 0.7500000000, 0.7500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.7500000000, 0.2500000000, 0.2500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.7500000000, 0.2500000000, 0.7500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.7500000000, 0.7500000000, 0.2500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
translate(v = [0.7500000000, 0.7500000000, 0.7500000000]) {
|
||||
sphere(r = 0.2500000000);
|
||||
sphere($fn = 36, r = 0.2500000000);
|
||||
}
|
||||
}
|
||||
/***********************************************
|
||||
|
@ -39,8 +39,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
translate(v = [0.2500000000, 0.2500000000, 0]) {
|
||||
minkowski() {
|
||||
cube(size = [0.5000000000, 0.5000000000, 0.5000000000]);
|
||||
cylinder($fn = 36, h = 0.5000000000, r = 0.2500000000);
|
||||
}
|
||||
}
|
||||
/***********************************************
|
||||
********* SolidPython code: **********
|
||||
************************************************
|
||||
|
||||
# import solidLib as sl
|
||||
import solidLib.primitives as slp
|
||||
import solidLib.assortment as sla
|
||||
import solid as s
|
||||
|
||||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
s.scad_render_to_file(sla.grid_inv(2,3), "docs/files/grid_inv.scad")
|
||||
|
||||
s.scad_render_to_file(sla.toolinlay1(15), "docs/files/toolinlay1.scad")
|
||||
s.scad_render_to_file(sla.toolinlay2(15), "docs/files/toolinlay2.scad")
|
||||
|
||||
|
||||
************************************************/
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:21:44
|
||||
|
||||
|
||||
translate(v = [0.2500000000, 0.2500000000, 0]) {
|
||||
|
@ -19,8 +19,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/round_flat_box.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
difference() {
|
||||
|
@ -20,10 +20,30 @@ difference() {
|
|||
}
|
||||
}
|
||||
translate(v = [2, 2, 2]) {
|
||||
hull() {
|
||||
translate(v = [2, 2, 2]) {
|
||||
minkowski() {
|
||||
cube(size = [110, 169, 48]);
|
||||
sphere($fn = 32, r = 2);
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1624,10 +1644,30 @@ difference() {
|
|||
}
|
||||
}
|
||||
translate(v = [2, 2, 2]) {
|
||||
hull() {
|
||||
translate(v = [2, 2, 2]) {
|
||||
minkowski() {
|
||||
cube(size = [110, 169, 48]);
|
||||
sphere($fn = 32, r = 2);
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1809,8 +1849,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Generated by SolidPython 1.0.5 on 2021-02-12 20:02:04
|
||||
// Generated by SolidPython 1.0.5 on 2021-02-14 10:24:57
|
||||
|
||||
|
||||
difference() {
|
||||
|
@ -20,10 +20,30 @@ difference() {
|
|||
}
|
||||
}
|
||||
translate(v = [2, 2, 2]) {
|
||||
hull() {
|
||||
translate(v = [2, 2, 2]) {
|
||||
minkowski() {
|
||||
cube(size = [110, 169, 48]);
|
||||
sphere($fn = 32, r = 2);
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1624,10 +1644,30 @@ difference() {
|
|||
}
|
||||
}
|
||||
translate(v = [2, 2, 2]) {
|
||||
hull() {
|
||||
translate(v = [2, 2, 2]) {
|
||||
minkowski() {
|
||||
cube(size = [110, 169, 48]);
|
||||
sphere($fn = 32, r = 2);
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [2, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 2, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 2]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
translate(v = [112, 171, 50]) {
|
||||
sphere($fn = 36, r = 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1771,8 +1811,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|
BIN
docs/img/bin.png
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 15 KiB |
After Width: | Height: | Size: 6.4 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
@ -1,8 +1,10 @@
|
|||
import numpy as np
|
||||
import solid as scad
|
||||
from . import primitives as slp
|
||||
import solidLib as sl
|
||||
|
||||
from typing import Union, Iterable
|
||||
|
||||
# import .primitives as slp
|
||||
|
||||
|
||||
|
@ -12,8 +14,6 @@ def grid(
|
|||
w: float = 3,
|
||||
h: float = 1.5,
|
||||
fillet: bool = False,
|
||||
dim: float = 59,
|
||||
segments: int = 36,
|
||||
):
|
||||
"""generate a grid of (flattened) triangles with or without fillet
|
||||
|
||||
|
@ -28,7 +28,7 @@ def grid(
|
|||
out = scad.polygon([[0, 0], [w / 2, 0], [w / 2 - h, h], [0, h]])
|
||||
else:
|
||||
out = scad.polygon([[0, 0], [w / 2, 0], [0, h]])
|
||||
out = scad.linear_extrude(dim)(out)
|
||||
out = scad.linear_extrude(sl.settings.raster)(out)
|
||||
out = scad.rotate([90, 0, 90])(out)
|
||||
|
||||
if fillet:
|
||||
|
@ -37,25 +37,25 @@ def grid(
|
|||
scallop = slp.pill(
|
||||
[
|
||||
[0, 0, 0],
|
||||
[dim - 2 * h - (w - 2 * h), 0, 0],
|
||||
[dsl.settings.raster - 2 * h - (w - 2 * h), 0, 0],
|
||||
# [0,0,h], [dim - 2 * h - (w - 2 * h),0,h]
|
||||
],
|
||||
h,
|
||||
segments=segments,
|
||||
segments=sl.settings.segments,
|
||||
)
|
||||
scallop += scad.rotate((0, -90, 0))(scallop) + scad.translate([dim - w, 0, 0])(
|
||||
scallop += scad.rotate((0, -90, 0))(scallop) + scad.translate([sl.settings.raster - w, 0, 0])(
|
||||
scad.rotate([0, -90, 0])(scallop)
|
||||
)
|
||||
scallop = scad.translate((w / 2, w / 2, h))(scallop)
|
||||
out -= scallop
|
||||
|
||||
out += scad.translate((0, dim, 0))(scad.rotate((0, 0, -90))(out))
|
||||
out += scad.translate((dim, dim, 0))(scad.rotate((0, 0, 180))(out))
|
||||
out += scad.translate((0, sl.settings.raster, 0))(scad.rotate((0, 0, -90))(out))
|
||||
out += scad.translate((sl.settings.raster, sl.settings.raster, 0))(scad.rotate((0, 0, 180))(out))
|
||||
|
||||
result = out
|
||||
for dx in range(x_dim):
|
||||
for dy in range(y):
|
||||
result += scad.translate((dim * dx, dim * dy, 0))(out)
|
||||
result += scad.translate((sl.settings.raster * dx, sl.settings.raster * dy, 0))(out)
|
||||
|
||||
return result
|
||||
|
||||
|
@ -66,29 +66,28 @@ def grid_inv(
|
|||
w: float = 3,
|
||||
h: float = 1.5,
|
||||
fillet: bool = False,
|
||||
dim: float = 59,
|
||||
segments: int = 36,
|
||||
):
|
||||
g = grid(x, y, w, h, fillet, dim, segments)
|
||||
return scad.cube([x * dim, y * dim, h]) - g
|
||||
g = grid(x, y, w, h, fillet, sl.settings.raster, sl.settings.segments)
|
||||
return scad.cube([x * sl.settings.raster, y * sl.settings.raster, h]) - g
|
||||
|
||||
|
||||
def bin(x: float, y: float, h: float = 67, segments: int = 36, dim: float = 59):
|
||||
def bin(x: float, y: float, h: float = 67):
|
||||
"""
|
||||
standardized container
|
||||
|
||||
.. image:: img/bin.png
|
||||
"""
|
||||
|
||||
class dims:
|
||||
wall = 2
|
||||
r_in = 2
|
||||
r_out = r_in + wall
|
||||
|
||||
bulk = slp.round_flat_box(dim * x, dim * y, h, dims.r_out)
|
||||
hole = slp.round_box(dim * x - dims.wall * 2, dim * y - dims.wall * 2, h, dims.r_in)
|
||||
bulk = slp.rfcube([sl.settings.raster * x, sl.settings.raster * y, h], sl.settings.raster.r_out)
|
||||
hole = slp.rcube([sl.settings.raster * x - dims.wall * 2, sl.settings.raster * y - dims.wall * 2, h], dims.r_in)
|
||||
hole = scad.translate([dims.wall, dims.wall, dims.wall])(hole)
|
||||
|
||||
wall_o = scad.cylinder(r=dims.r_out, h=dims.r_out, segments=segments)
|
||||
wall_o = scad.cylinder(r=dims.r_out, h=dims.r_out, segments=sl.settings.segments)
|
||||
|
||||
g = grid(x, y)
|
||||
|
||||
|
@ -105,8 +104,6 @@ def toolinlay1(
|
|||
r_tool: float = 7,
|
||||
inset: float = 4,
|
||||
maxh: float = 67,
|
||||
dim: float = 59,
|
||||
segments: int = 36
|
||||
):
|
||||
"""toolinlay1
|
||||
|
||||
|
@ -123,19 +120,19 @@ def toolinlay1(
|
|||
r_in = 2
|
||||
tool_ins = 3
|
||||
|
||||
base = slp.round_flat_box(x * dim, y * dim, height + inset, r_in + wall)
|
||||
base = slp.rfcube([x * sl.settings.raster, y * sl.settings.raster, height + inset], r_in + wall)
|
||||
|
||||
toolindent = 0.1
|
||||
toolindent_w = 2
|
||||
toolbase_l = dim * x - 2 * wall - 2 * r_tool
|
||||
toolbase_l = sl.settings.raster * x - 2 * wall - 2 * r_tool
|
||||
toolbase_t = scad.cube([toolbase_l * (1 - toolindent), 0.001, tool_ins])
|
||||
toolbase_b = scad.translate([toolbase_l * (1 - toolindent), 0, 0])(
|
||||
scad.cube([toolbase_l * toolindent - toolindent_w, 0.001, tool_ins])
|
||||
)
|
||||
toolcutout = scad.minkowski()(
|
||||
toolbase_t, scad.sphere(r=r_tool, segments=segments)
|
||||
toolbase_t, scad.sphere(r=r_tool, segments=sl.settings.segments)
|
||||
) + scad.minkowski()(
|
||||
toolbase_b, scad.sphere(r=r_tool + toolindent_w, segments=segments)
|
||||
toolbase_b, scad.sphere(r=r_tool + toolindent_w, segments=sl.settings.segments)
|
||||
)
|
||||
|
||||
toolcutout = scad.translate(
|
||||
|
@ -143,14 +140,14 @@ def toolinlay1(
|
|||
)(toolcutout)
|
||||
|
||||
toolcutouts = []
|
||||
for i in range((dim * y - 3 * wall) // (r_tool * 2 + 2 * toolindent_w)):
|
||||
for i in range((sl.settings.raster * y - 3 * wall) // (r_tool * 2 + 2 * toolindent_w)):
|
||||
toolcutouts.append(
|
||||
scad.translate([0, i * (2 * r_tool + 2 * toolindent_w + 1.4), 0])(
|
||||
scad.color("yellow")(toolcutout)
|
||||
)
|
||||
)
|
||||
|
||||
lower = bin(2, 3, h=maxh - height, dim=dim)
|
||||
lower = bin(2, 3, h=maxh - height, dim=sl.settings.raster)
|
||||
lower = scad.color("red", 0.5)(lower)
|
||||
base = scad.translate([0, 0, maxh - height - inset])(base)
|
||||
|
||||
|
@ -163,9 +160,7 @@ def toolinlay2(
|
|||
inset: float = 4,
|
||||
inset_tool: float = 3,
|
||||
maxh: float = 67,
|
||||
dim: float = 59,
|
||||
wall: float = 2,
|
||||
segments: int = 36,
|
||||
):
|
||||
"""toolinlay2
|
||||
|
||||
|
@ -178,14 +173,11 @@ def toolinlay2(
|
|||
:param inset: depth of toolinlay inset
|
||||
:param inset_tool: depth of additional toolspace inset
|
||||
:param maxh: system height restriction
|
||||
:param dim: system raster dimension
|
||||
:param segments: circular object segments
|
||||
"""
|
||||
x_dim = 2
|
||||
y_dim = 3
|
||||
x_dim = 3
|
||||
r_in = 2
|
||||
|
||||
base = slp.round_flat_box(x_dim * dim, y_dim * dim, height + inset, r_in + wall)
|
||||
base = slp.rfcube([x_dim * sl.settings.raster, y_dim * sl.settings.raster, height + inset], r_in + wall)
|
||||
|
||||
toolindent = 0.1
|
||||
toolindent_w = 2
|
||||
|
@ -194,12 +186,12 @@ def toolinlay2(
|
|||
tool_rs = []
|
||||
if not isinstance(r_tool, list):
|
||||
tool_rs = [r_tool] * (
|
||||
(dim * x_dim - 3 * wall) // (r_tool * 2 + 2 * toolindent_w) - 1
|
||||
(sl.settings.raster * x_dim - 3 * wall) // (r_tool * 2 + 2 * toolindent_w) - 1
|
||||
)
|
||||
else:
|
||||
tool_rs = r_tool
|
||||
|
||||
toolbase_l = dim * y_dim - 2 * wall - 2 * np.max(tool_rs)
|
||||
toolbase_l = sl.settings.raster * y_dim - 2 * wall - 2 * np.max(tool_rs)
|
||||
for i, r in enumerate(tool_rs):
|
||||
toolbase_t = scad.cube([0.001, toolbase_l * (1 - toolindent), inset_tool])
|
||||
# toolbase_b = scad.translate([0, toolbase_l * (1 - toolindent), 0])(
|
||||
|
@ -227,12 +219,12 @@ def toolinlay2(
|
|||
[
|
||||
[0, 0, 0],
|
||||
[0, toolindent * toolbase_l, 0],
|
||||
[dim * x_dim - 2 * wall - 2 * 9, 0, 0],
|
||||
[dim * x_dim - 2 * wall - 2 * 9, toolindent * toolbase_l, 0],
|
||||
[sl.settings.raster * x_dim - 2 * wall - 2 * 9, 0, 0],
|
||||
[sl.settings.raster * x_dim - 2 * wall - 2 * 9, toolindent * toolbase_l, 0],
|
||||
[0, 0, 10],
|
||||
[0, toolindent * toolbase_l, 10],
|
||||
[dim * x_dim - 2 * wall - 2 * 9, 0, 10],
|
||||
[dim * x_dim - 2 * wall - 2 * 9, toolindent * toolbase_l, 10],
|
||||
[sl.settings.raster * x_dim - 2 * wall - 2 * 9, 0, 10],
|
||||
[sl.settings.raster * x_dim - 2 * wall - 2 * 9, toolindent * toolbase_l, 10],
|
||||
]
|
||||
)
|
||||
+ [9 + wall, 9 + wall, maxh - inset_tool],
|
||||
|
@ -240,14 +232,19 @@ def toolinlay2(
|
|||
)
|
||||
)
|
||||
toolcutouts.append(
|
||||
scad.translate((wall * 2,wall * 2,0))(
|
||||
slp.round_flat_box(
|
||||
toolindent * toolbase_l + 2 * 9, toolindent * toolbase_l + 2 * 9 - wall, 100, 9-wall, segments=segments
|
||||
scad.translate((wall * 2, wall * 2, 0))(
|
||||
slp.rfcube(
|
||||
[
|
||||
toolindent * toolbase_l + 2 * 9,
|
||||
toolindent * toolbase_l + 2 * 9 - wall,
|
||||
100,
|
||||
],
|
||||
9 - wall,
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
lower = bin(2, 3, h=maxh - height, dim=dim)
|
||||
lower = bin(2, 3, h=maxh - height, dim=sl.settings.raster)
|
||||
lower = scad.color("red", 0.5)(lower)
|
||||
base = scad.translate([0, 0, maxh - height - inset])(base)
|
||||
|
||||
|
|
|
@ -9,30 +9,12 @@ import logging as log
|
|||
|
||||
log.basicConfig(level=log.INFO)
|
||||
|
||||
def round_box(x_dim: float, y_dim: float, z_dim: float, radius: float, segments: int = 32):
|
||||
"""
|
||||
creates a round box with radius r
|
||||
|
||||
Args:
|
||||
x_dim (float): .
|
||||
|
||||
Important:
|
||||
deprecated
|
||||
|
||||
.. image:: img/round_box.png
|
||||
"""
|
||||
box = scad.cube([x_dim - 2 * radius, y_dim - 2 * radius, z_dim - 2 * radius])
|
||||
wall = scad.sphere(r=radius, segments=segments)
|
||||
|
||||
return scad.translate([radius, radius, radius])(
|
||||
scad.minkowski()(box, wall)
|
||||
)
|
||||
|
||||
def rcube(dim: Iterable[float], radius: float, segments: int = 32):
|
||||
def rcube(dim: Iterable[float], radius: float):
|
||||
"""
|
||||
creates a cube with rounded corners
|
||||
|
||||
.. image:: img/round_box.png
|
||||
.. image:: img/rcube.png
|
||||
|
||||
Args:
|
||||
dim: cube dimensions to base box on.
|
||||
|
@ -45,29 +27,30 @@ def rcube(dim: Iterable[float], radius: float, segments: int = 32):
|
|||
for dy in [radius, dim[1] - radius]:
|
||||
for dz in [radius, dim[2] - radius]:
|
||||
corners.append(
|
||||
scad.translate([dx, dy, dz])((
|
||||
scad.sphere(r=radius)
|
||||
))
|
||||
scad.translate([dx, dy, dz])(
|
||||
(scad.sphere(r=radius, segments=sl.settings.segments))
|
||||
)
|
||||
)
|
||||
|
||||
return scad.hull()(*corners)
|
||||
|
||||
def round_flat_box(x: float, y: float, z: float, r: float, segments: int = 32):
|
||||
|
||||
def rfcube(dim: Iterable[float], r: float):
|
||||
"""creates a round box with radius r and flat top/bottom
|
||||
|
||||
.. image:: img/round_flat_box.png
|
||||
"""
|
||||
box = scad.cube([x - 2 * r, y - 2 * r, z- 2 * r])
|
||||
wall = scad.cylinder(r=r, h=2*r, segments=sl.settings.segments)
|
||||
box = scad.cube([dim[0] - 2 * r, dim[1] - 2 * r, dim[2] - 2 * r])
|
||||
wall = scad.cylinder(r=r, h=2 * r, segments=sl.settings.segments)
|
||||
|
||||
return scad.translate([r, r, 0])(
|
||||
scad.minkowski()(box, wall)
|
||||
)
|
||||
return scad.translate([r, r, 0])(scad.minkowski()(box, wall))
|
||||
|
||||
|
||||
def pill(ps: List[List[float]], r, segments: int = 36):
|
||||
"""
|
||||
create a pill around given points
|
||||
|
||||
.. image:: img/pill.png
|
||||
"""
|
||||
if len(ps) < 2:
|
||||
raise Exception("requires 2 or more points")
|
||||
|
@ -76,8 +59,6 @@ def pill(ps: List[List[float]], r, segments: int = 36):
|
|||
spheres = []
|
||||
# log.info(ps)
|
||||
for p in ps:
|
||||
spheres.append(
|
||||
scad.translate(p)(s)
|
||||
)
|
||||
spheres.append(scad.translate(p)(s))
|
||||
|
||||
return scad.hull()(*spheres)
|
||||
|
|
3
tests.py
|
@ -6,8 +6,7 @@ import solid as s
|
|||
|
||||
s.scad_render_to_file(slp.pill([[0,0,0],[1, 1, 1]], .25), "./docs/files/pill.scad")
|
||||
s.scad_render_to_file(slp.rcube([1, 1, 1], .25), "./docs/files/rcube.scad")
|
||||
s.scad_render_to_file(slp.round_box(1, 1, 1, .25), "./docs/files/round_box.scad")
|
||||
s.scad_render_to_file(slp.round_flat_box(1, 1, 1, .25), "./docs/files/round_flat_box.scad")
|
||||
s.scad_render_to_file(slp.rfcube([1, 1, 1], .25), "./docs/files/rfcube.scad")
|
||||
|
||||
s.scad_render_to_file(sla.bin(1, 1), "./docs/files/bin.scad")
|
||||
s.scad_render_to_file(sla.grid(2,3), "docs/files/grid.scad")
|
||||
|
|