start updating lib to use solidLib.settings
This commit is contained in:
+16
-33
@@ -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"> .. 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>
|
||||
|
||||
Reference in New Issue
Block a user