add toolinserts and pill primitive
This commit is contained in:
+350
@@ -0,0 +1,350 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>solidLib.assortment — solidLib documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
|
||||
<script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for solidLib.assortment</h1><div class="highlight"><pre>
|
||||
<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">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>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="grid"><a class="viewcode-back" href="../../solidLib.html#solidLib.assortment.grid">[docs]</a><span class="k">def</span> <span class="nf">grid</span><span class="p">(</span>
|
||||
<span class="n">x_dim</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
||||
<span class="n">y</span><span class="p">:</span> <span class="nb">int</span><span class="p">,</span>
|
||||
<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>
|
||||
|
||||
<span class="sd"> the generated grid is x by y in size with a gridspace of size dim,</span>
|
||||
<span class="sd"> the triangles used for the base structure is given by their height and width</span>
|
||||
|
||||
<span class="sd"> .. image:: img/grid.png</span>
|
||||
<span class="sd"> :alt: 2x3 grid with defaults</span>
|
||||
<span class="sd"> """</span>
|
||||
|
||||
<span class="k">if</span> <span class="n">w</span> <span class="o">></span> <span class="n">h</span> <span class="o">*</span> <span class="mi">2</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="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">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>
|
||||
<span class="c1"># scallop = scad.cube([dim - 2 * h - (w - 2 * h), 0.0001, 0.0001])</span>
|
||||
<span class="c1"># scallop = scad.minkowski()(scallop, scad.sphere(r=h, segments=segments))</span>
|
||||
<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="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="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">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">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="k">return</span> <span class="n">result</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="grid_inv"><a class="viewcode-back" href="../../solidLib.html#solidLib.assortment.grid_inv">[docs]</a><span class="k">def</span> <span class="nf">grid_inv</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">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>
|
||||
|
||||
|
||||
<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>
|
||||
<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">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">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">goverlay</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="o">=</span><span class="mi">2</span> <span class="o">+</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">dims</span><span class="o">.</span><span class="n">wall</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_in</span><span class="p">,</span> <span class="n">fillet</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
|
||||
<span class="n">goverlay</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">dims</span><span class="o">.</span><span class="n">wall</span><span class="p">])(</span><span class="n">goverlay</span><span class="p">)</span>
|
||||
<span class="n">goverlay</span> <span class="o">=</span> <span class="n">scad</span><span class="o">.</span><span class="n">intersection</span><span class="p">()(</span><span class="n">goverlay</span><span class="p">,</span> <span class="n">hole</span><span class="p">)</span>
|
||||
|
||||
<span class="k">return</span> <span class="n">bulk</span> <span class="o">-</span> <span class="n">hole</span> <span class="o">-</span> <span class="n">g</span> <span class="o">+</span> <span class="n">goverlay</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="toolinlay1"><a class="viewcode-back" href="../../solidLib.html#solidLib.assortment.toolinlay1">[docs]</a><span class="k">def</span> <span class="nf">toolinlay1</span><span class="p">(</span>
|
||||
<span class="n">height</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="o">*</span><span class="n">args</span><span class="p">,</span>
|
||||
<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>
|
||||
|
||||
<span class="sd"> creates a tooltray for alex container bins (2x3)</span>
|
||||
|
||||
<span class="sd"> .. image:: img/bin_toolinlay1.png</span>
|
||||
|
||||
<span class="sd"> :param height: height of inset above lower bin</span>
|
||||
<span class="sd"> :param inset: depth of inset</span>
|
||||
<span class="sd"> """</span>
|
||||
<span class="n">x</span> <span class="o">=</span> <span class="mi">2</span>
|
||||
<span class="n">y</span> <span class="o">=</span> <span class="mi">3</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">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">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_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="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="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>
|
||||
<span class="p">[</span><span class="n">r_tool</span> <span class="o">+</span> <span class="n">wall</span><span class="p">,</span> <span class="n">r_tool</span> <span class="o">+</span> <span class="n">wall</span> <span class="o">+</span> <span class="n">toolindent_w</span><span class="p">,</span> <span class="n">maxh</span> <span class="o">-</span> <span class="n">tool_ins</span><span class="p">]</span>
|
||||
<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="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="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>
|
||||
|
||||
<span class="k">return</span> <span class="n">base</span> <span class="o">-</span> <span class="n">lower</span> <span class="o">-</span> <span class="n">toolcutouts</span></div>
|
||||
|
||||
|
||||
<div class="viewcode-block" id="toolinlay2"><a class="viewcode-back" href="../../solidLib.html#solidLib.assortment.toolinlay2">[docs]</a><span class="k">def</span> <span class="nf">toolinlay2</span><span class="p">(</span>
|
||||
<span class="n">height</span><span class="p">:</span> <span class="nb">float</span><span class="p">,</span>
|
||||
<span class="n">r_tool</span><span class="p">:</span> <span class="n">Union</span><span class="p">[</span><span class="nb">float</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="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">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>
|
||||
|
||||
<span class="sd"> creates a tooltray for alex container bins (2x3)</span>
|
||||
|
||||
<span class="sd"> .. image:: img/bin_toolinlay2.png</span>
|
||||
|
||||
<span class="sd"> :param height: height of inset above lower bin</span>
|
||||
<span class="sd"> :param r_tool: toolspace radius as float or list of floats</span>
|
||||
<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">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">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">toolcutouts</span> <span class="o">=</span> <span class="p">[]</span>
|
||||
<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="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="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>
|
||||
<span class="c1"># scad.cube([0.001, toolbase_l * toolindent - toolindent_w, tool_ins])</span>
|
||||
<span class="c1"># )</span>
|
||||
<span class="n">toolcutout</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="n">np</span><span class="o">.</span><span class="n">array</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">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="n">toolbase_l</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="mi">0</span><span class="p">,</span> <span class="mi">10</span><span class="p">]])</span>
|
||||
<span class="o">+</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="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="o">+</span> <span class="n">r</span><span class="p">]</span>
|
||||
<span class="o">+</span> <span class="p">[</span><span class="n">i</span> <span class="o">*</span> <span class="p">(</span><span class="n">toolindent_w</span> <span class="o">+</span> <span class="mf">1.4</span><span class="p">)</span> <span class="o">+</span> <span class="n">np</span><span class="o">.</span><span class="n">sum</span><span class="p">(</span><span class="n">tool_rs</span><span class="p">[</span><span class="mi">0</span><span class="p">:</span><span class="n">i</span><span class="p">])</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="mi">0</span><span class="p">],</span>
|
||||
<span class="n">r</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>
|
||||
<span class="p">(</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="o">+</span> <span class="n">wall</span> <span class="o">+</span> <span class="n">toolindent_w</span><span class="p">,</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="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>
|
||||
<span class="p">)</span>
|
||||
<span class="p">)(</span><span class="n">toolcutout</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">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="n">toolcutouts</span><span class="o">.</span><span class="n">append</span><span class="p">(</span>
|
||||
<span class="n">slp</span><span class="o">.</span><span class="n">pill</span><span class="p">(</span>
|
||||
<span class="n">np</span><span class="o">.</span><span class="n">array</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="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="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="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>
|
||||
<span class="mi">9</span><span class="p">,</span>
|
||||
<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="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="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>
|
||||
|
||||
<span class="k">return</span> <span class="n">base</span> <span class="o">-</span> <span class="n">lower</span> <span class="o">-</span> <span class="n">toolcutouts</span></div>
|
||||
</pre></div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">solidLib</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../solidLib.html">solidLib package</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="../index.html">Module code</a><ul>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2021, Patrick Nisble.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 3.4.3</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
+151
@@ -0,0 +1,151 @@
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>solidLib.primitives — solidLib documentation</title>
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/alabaster.css" type="text/css" />
|
||||
<script id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
|
||||
<script src="../../_static/jquery.js"></script>
|
||||
<script src="../../_static/underscore.js"></script>
|
||||
<script src="../../_static/doctools.js"></script>
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
|
||||
<link rel="stylesheet" href="../../_static/custom.css" type="text/css" />
|
||||
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />
|
||||
|
||||
</head><body>
|
||||
|
||||
|
||||
<div class="document">
|
||||
<div class="documentwrapper">
|
||||
<div class="bodywrapper">
|
||||
|
||||
|
||||
<div class="body" role="main">
|
||||
|
||||
<h1>Source code for solidLib.primitives</h1><div class="highlight"><pre>
|
||||
<span></span><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">List</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">.globals</span> <span class="kn">import</span> <span class="n">SEGMENTS</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">"""creates a round box with radius r</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="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>
|
||||
<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="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>
|
||||
|
||||
|
||||
<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="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>
|
||||
<span class="n">s</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">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">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="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>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
|
||||
<div class="sphinxsidebarwrapper">
|
||||
<h1 class="logo"><a href="../../index.html">solidLib</a></h1>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Navigation</h3>
|
||||
<p class="caption"><span class="caption-text">Contents:</span></p>
|
||||
<ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="../../solidLib.html">solidLib package</a></li>
|
||||
</ul>
|
||||
|
||||
<div class="relations">
|
||||
<h3>Related Topics</h3>
|
||||
<ul>
|
||||
<li><a href="../../index.html">Documentation overview</a><ul>
|
||||
<li><a href="../index.html">Module code</a><ul>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="searchbox" style="display: none" role="search">
|
||||
<h3 id="searchlabel">Quick search</h3>
|
||||
<div class="searchformwrapper">
|
||||
<form class="search" action="../../search.html" method="get">
|
||||
<input type="text" name="q" aria-labelledby="searchlabel" />
|
||||
<input type="submit" value="Go" />
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<script>$('#searchbox').show(0);</script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="clearer"></div>
|
||||
</div>
|
||||
<div class="footer">
|
||||
©2021, Patrick Nisble.
|
||||
|
||||
|
|
||||
Powered by <a href="http://sphinx-doc.org/">Sphinx 3.4.3</a>
|
||||
& <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user