build_all, build_images, build_handbook revised so that the html is not ready to use.

This commit is contained in:
=
2026-06-07 20:30:23 +08:00
parent 54d20eb154
commit a4ac88f002
334 changed files with 1309 additions and 8710 deletions
+8 -249
View File
@@ -373,249 +373,37 @@
<div id="searchbox"></div>
<article class="bd-article">
<section id="module-mxpic.components.primitives.spiral">
<span id="mxpic-components-primitives-spiral"></span><h1>mxpic.components.primitives.spiral<a class="headerlink" href="#module-mxpic.components.primitives.spiral" title="Link to this heading">#</a></h1>
<section id="mxpic-components-primitives-spiral">
<h1>mxpic.components.primitives.spiral<a class="headerlink" href="#mxpic-components-primitives-spiral" title="Link to this heading">#</a></h1>
<section id="spiral">
<h2>spiral<a class="headerlink" href="#spiral" title="Link to this heading">#</a></h2>
<a class="reference internal image-reference" href="../../../_images/spiral.png"><img alt="../../../_images/spiral.png" class="align-center" src="../../../_images/spiral.png" style="width: 600px;" />
</a>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.primitives.spiral.</span></span><span class="sig-name descname"><span class="pre">spiral</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">shape</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'circle'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Dmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Rmin_euler</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_bend_center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Rmin_bend_center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gap</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cycles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">layer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_bend_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">res</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cell_transition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Euler_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_build</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Parametric waveguide spiral supporting circular or rectangular footprints.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em>, </em><em>optional</em>) Nazca cell name (default is None).</p></li>
<li><p><strong>shape</strong> (<em>str</em><em>, </em><em>optional</em>) Footprint style used for the spiral path, circular or rectangular (default is “circle”).</p></li>
<li><p><strong>Dmin</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum inner diameter in microns; sets the first loop radius (default is 50).</p></li>
<li><p><strong>R_bend</strong> (<em>float</em><em>, </em><em>optional</em>) Bend radius in microns for rectangular implementations (default is 10).</p></li>
<li><p><strong>Rmin_euler</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum radius inside Euler bends when <code class="docutils literal notranslate"><span class="pre">Euler_bend</span></code> is True (default is 10).</p></li>
<li><p><strong>Lmin</strong> (<em>float</em><em>, </em><em>optional</em>) Straight length in microns used by the innermost rectangular loop (default is 50).</p></li>
<li><p><strong>width</strong> (<em>float</em><em>, </em><em>optional</em>) Nominal waveguide width inside the spiral body (default is 2).</p></li>
<li><p><strong>w_port</strong> (<em>float</em><em>, </em><em>optional</em>) Output-port width in microns. <code class="docutils literal notranslate"><span class="pre">None</span></code> inherits <code class="docutils literal notranslate"><span class="pre">width</span></code> (default is 0.45).</p></li>
<li><p><strong>w_bend_center</strong> (<em>float</em><em>, </em><em>optional</em>) Waveguide width used in the central attachment bends (default is 1).</p></li>
<li><p><strong>Rmin_bend_center</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum radius for the attachment bends (default is 10).</p></li>
<li><p><strong>gap</strong> (<em>float</em><em>, </em><em>optional</em>) Spacing between adjacent turns in microns (default is 1).</p></li>
<li><p><strong>cycles</strong> (<em>float</em><em>, </em><em>optional</em>) Number of half-turns (π radians) laid out in the spiral (default is 20).</p></li>
<li><p><strong>xs</strong> (<em>str</em><em>, </em><em>optional</em>) Cross-section key for the entire structure (default is “strip”).</p></li>
<li><p><strong>layer</strong> (<em>str</em><em>, </em><em>optional</em>) Override layer for polygons; <code class="docutils literal notranslate"><span class="pre">None</span></code> derives from <code class="docutils literal notranslate"><span class="pre">xs</span></code> (default is None).</p></li>
<li><p><strong>w_bend_port</strong> (<em>float</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Width inside the outermost bends; <code class="docutils literal notranslate"><span class="pre">None</span></code> inherits <code class="docutils literal notranslate"><span class="pre">width</span></code> (default is None).</p></li>
<li><p><strong>Ltp_port</strong> (<em>float</em><em>, </em><em>optional</em>) Length of straight tapers that adapt <code class="docutils literal notranslate"><span class="pre">width</span></code> to <code class="docutils literal notranslate"><span class="pre">w_port</span></code> (default is 10).</p></li>
<li><p><strong>res</strong> (<em>float</em><em>, </em><em>optional</em>) Arc-length sampling step (µm) used for polygon tessellation (default is 0.5).</p></li>
<li><p><strong>cell_transition</strong> (<em>nazca.Cell</em><em>, </em><em>optional</em>) Insert XS transitions cell to strip when connecting ports (default is None).</p></li>
<li><p><strong>port_angle</strong> (<em>float</em><em>, </em><em>optional</em>) Output-port deflection angle in degrees, measured from +x (default is 180).</p></li>
<li><p><strong>Euler_bend</strong> (<em>bool</em><em>, </em><em>optional</em>) Use Euler/Clothoid bends at the center instead of circular bends (default is False).</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Draw Nazca stub markers when True (default is False).</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add chamfer helper polygons when True (default is True).</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral.generate_gds" title="Link to this definition">#</a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<section id="spiral-rectangle">
<h2>spiral_rectangle<a class="headerlink" href="#spiral-rectangle" title="Link to this heading">#</a></h2>
<a class="reference internal image-reference" href="../../../_images/spiral_rectangle.png"><img alt="../../../_images/spiral_rectangle.png" class="align-center" src="../../../_images/spiral_rectangle.png" style="width: 600px;" />
</a>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral_rectangle">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.primitives.spiral.</span></span><span class="sig-name descname"><span class="pre">spiral_rectangle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Dmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Rmax_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Rmin_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">wmin_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gap</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cycles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">layer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_bend_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lport</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Ltp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">res</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cell_xs_transition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">in_out_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lpatch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.05</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sample_build</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral_rectangle" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Rectangular spiral with optional cross-section transitions and alignment control.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Nazca cell name (default is None).</p></li>
<li><p><strong>Dmin</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum vertical separation between the first pair of bends (default is 50).</p></li>
<li><p><strong>Rmax_bend</strong> (<em>float</em><em>, </em><em>optional</em>) Maximum radius used inside Clothoid bends (default is 10).</p></li>
<li><p><strong>Rmin_bend</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum radius reached inside Clothoid bends (default is 10).</p></li>
<li><p><strong>wmin_bend</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum waveguide width inside bends (default is 10).</p></li>
<li><p><strong>Lmin</strong> (<em>float</em><em>, </em><em>optional</em>) Straight length of the innermost segment (default is 50).</p></li>
<li><p><strong>width</strong> (<em>float</em><em>, </em><em>optional</em>) Nominal waveguide width along the spiral (default is 2).</p></li>
<li><p><strong>w_port</strong> (<em>float</em><em>, </em><em>optional</em>) IO waveguide width after the final taper (default is 0.45).</p></li>
<li><p><strong>gap</strong> (<em>float</em><em>, </em><em>optional</em>) Spacing between successive turns (default is 1).</p></li>
<li><p><strong>cycles</strong> (<em>float</em><em>, </em><em>optional</em>) Number of rectangular loops (default is 20).</p></li>
<li><p><strong>xs</strong> (<em>str</em><em>, </em><em>optional</em>) Cross-section key (default is “strip”).</p></li>
<li><p><strong>layer</strong> (<em>str</em><em>, </em><em>optional</em>) Override polygon layer (default is None).</p></li>
<li><p><strong>w_bend_port</strong> (<em>float</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Bend waveguide width; inherits <code class="docutils literal notranslate"><span class="pre">width</span></code> when None (default is None).</p></li>
<li><p><strong>Lport</strong> (<em>float</em><em>, </em><em>optional</em>) Length of straight sections appended at each port (default is 10).</p></li>
<li><p><strong>Ltp</strong> (<em>float</em><em>, </em><em>optional</em>) Taper length that converts bend width to <code class="docutils literal notranslate"><span class="pre">width</span></code> (default is 10).</p></li>
<li><p><strong>res</strong> (<em>float</em><em>, </em><em>optional</em>) Arc-length sampling resolution (default is 0.5).</p></li>
<li><p><strong>cell_xs_transition</strong> (<em>nd.Cell</em><em> or </em><em>object</em><em>, </em><em>optional</em>) Pre-built cell that performs cross-section transitions after the ports (default is None).</p></li>
<li><p><strong>port_angle</strong> (<em>float</em><em>, </em><em>optional</em>) Output bend angle in degrees (default is 180).</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Draw Nazca stub markers when True (default is False).</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Insert chamfer helpers when True (default is True).</p></li>
<li><p><strong>in_out_align</strong> (<em>bool</em><em>, </em><em>optional</em>) If True, align input/output along the same axis when <code class="docutils literal notranslate"><span class="pre">port_angle=180</span></code> (default is True).</p></li>
<li><p><strong>Lpatch</strong> (<em>float</em><em>, </em><em>optional</em>) Small straight length inserted before/after bends to ease Boolean ops (default is 0.05).</p></li>
</ul>
</dd>
</dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral_rectangle.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral_rectangle.generate_gds" title="Link to this definition">#</a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<section id="spiral-rect-std">
<h2>Spiral_Rect_STD<a class="headerlink" href="#spiral-rect-std" title="Link to this heading">#</a></h2>
<a class="reference internal image-reference" href="../../../_images/Spiral_Rect_STD.png"><img alt="../../../_images/Spiral_Rect_STD.png" class="align-center" src="../../../_images/Spiral_Rect_STD.png" style="width: 600px;" />
</a>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.Spiral_Rect_STD">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.primitives.spiral.</span></span><span class="sig-name descname"><span class="pre">Spiral_Rect_STD</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Dmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_bend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gap</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cycles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">layer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lport</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">in_out_align</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">res</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cell_xs_transition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.Spiral_Rect_STD" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#mxpic.components.primitives.spiral.spiral_rectangle" title="mxpic.components.primitives.spiral.spiral_rectangle"><code class="xref py py-class docutils literal notranslate"><span class="pre">spiral_rectangle</span></code></a></p>
<p>Convenience preset for rectangular spirals that share a single bend radius.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Nazca cell name (default is None).</p></li>
<li><p><strong>Dmin</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum inner spacing between the first pair of bends (default is 50).</p></li>
<li><p><strong>R_bend</strong> (<em>float</em><em>, </em><em>optional</em>) Bend radius applied to every corner (default is 10).</p></li>
<li><p><strong>Lmin</strong> (<em>float</em><em>, </em><em>optional</em>) Straight length of the innermost segment (default is 50).</p></li>
<li><p><strong>width</strong> (<em>float</em><em>, </em><em>optional</em>) Waveguide width throughout the spiral (default is 2).</p></li>
<li><p><strong>w_port</strong> (<em>float</em><em>, </em><em>optional</em>) IO waveguide width after the final taper (default is 0.45).</p></li>
<li><p><strong>gap</strong> (<em>float</em><em>, </em><em>optional</em>) Spacing between successive turns (default is 1).</p></li>
<li><p><strong>cycles</strong> (<em>float</em><em>, </em><em>optional</em>) Number of rectangular loops (default is 20).</p></li>
<li><p><strong>xs</strong> (<em>str</em><em>, </em><em>optional</em>) Cross-section key (default is “strip”).</p></li>
<li><p><strong>layer</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Override polygon layer (default is None).</p></li>
<li><p><strong>Lport</strong> (<em>float</em><em>, </em><em>optional</em>) Length of straight port extensions (default is 10).</p></li>
<li><p><strong>in_out_align</strong> (<em>bool</em><em>, </em><em>optional</em>) Align input/output along the same axis when <code class="docutils literal notranslate"><span class="pre">port_angle=180</span></code> (default is True).</p></li>
<li><p><strong>res</strong> (<em>float</em><em>, </em><em>optional</em>) Arc-length sampling resolution (default is 0.5).</p></li>
<li><p><strong>cell_xs_transition</strong> (<em>nd.Cell</em><em> or </em><em>object</em><em>, </em><em>optional</em>) Transition cell appended at the ports (default is None).</p></li>
<li><p><strong>port_angle</strong> (<em>float</em><em>, </em><em>optional</em>) Output bend angle in degrees (default is 180).</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Draw Nazca stub markers when True (default is False).</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Insert chamfer helpers when True (default is True).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</section>
<section id="spiral-circle">
<h2>spiral_circle<a class="headerlink" href="#spiral-circle" title="Link to this heading">#</a></h2>
<a class="reference internal image-reference" href="../../../_images/spiral_circle.png"><img alt="../../../_images/spiral_circle.png" class="align-center" src="../../../_images/spiral_circle.png" style="width: 600px;" />
</a>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral_circle">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.primitives.spiral.</span></span><span class="sig-name descname"><span class="pre">spiral_circle</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Dmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_bend_center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gap</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cycles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">layer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lport</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">res</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rib2strip</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Euler_Sbend</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strict_condition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R_ratio_mamnual</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral_circle" title="Link to this definition">#</a></dt>
<dd><p>Bases: <code class="xref py py-class docutils literal notranslate"><span class="pre">object</span></code></p>
<p>Circular spiral with optional internal Euler S-bends and port transitions.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Nazca cell name (default is None).</p></li>
<li><p><strong>Dmin</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum inner diameter in microns (default is 50).</p></li>
<li><p><strong>width</strong> (<em>float</em><em>, </em><em>optional</em>) Nominal waveguide width (default is 2).</p></li>
<li><p><strong>w_port</strong> (<em>float</em><em>, </em><em>optional</em>) Output-port width after the final taper (default is 0.45).</p></li>
<li><p><strong>w_bend_center</strong> (<em>float</em><em>, </em><em>optional</em>) Waveguide width within the central attachment bend (default is 1).</p></li>
<li><p><strong>gap</strong> (<em>float</em><em>, </em><em>optional</em>) Spacing between adjacent turns (default is 1).</p></li>
<li><p><strong>cycles</strong> (<em>float</em><em>, </em><em>optional</em>) Number of half-turns (π radians) (default is 20).</p></li>
<li><p><strong>xs</strong> (<em>str</em><em>, </em><em>optional</em>) Cross-section key (default is “strip”).</p></li>
<li><p><strong>layer</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Override layer for polygons (default is None).</p></li>
<li><p><strong>Lport</strong> (<em>float</em><em>, </em><em>optional</em>) Length of straight sections appended to each port (default is 10).</p></li>
<li><p><strong>res</strong> (<em>float</em><em>, </em><em>optional</em>) Arc-length sampling step (default is 0.5).</p></li>
<li><p><strong>rib2strip</strong> (<em>bool</em><em>, </em><em>optional</em>) Insert rib-to-strip transitions at the ports (default is True).</p></li>
<li><p><strong>port_angle</strong> (<em>float</em><em>, </em><em>optional</em>) Output bend angle in degrees (default is 180).</p></li>
<li><p><strong>Euler_Sbend</strong> (<em>bool</em><em>, </em><em>optional</em>) Use optimized Euler S-bends at the center (default is False).</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Draw Nazca stub markers when True (default is False).</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add chamfer polygons when True (default is True).</p></li>
<li><p><strong>strict_condition</strong> (<em>bool</em><em>, </em><em>optional</em>) Enforce constant spacing by matching the conchoid tilt exactly (default is False).</p></li>
<li><p><strong>R_ratio_mamnual</strong> (<em>tuple</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Manually override the radius ratios used in Euler S-bends; expected form <code class="docutils literal notranslate"><span class="pre">(Rc_ratio,</span> <span class="pre">Rm_ratio,</span> <span class="pre">tilt)</span></code>.</p></li>
</ul>
</dd>
</dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral_circle.cell">
<span class="sig-name descname"><span class="pre">cell</span></span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral_circle.cell" title="Link to this definition">#</a></dt>
<dd><p>Optimizing the bend radius for the minimum and central</p>
</dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral_circle.generate_gds">
<span class="sig-name descname"><span class="pre">generate_gds</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">show_pins</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral_circle.generate_gds" title="Link to this definition">#</a></dt>
<dd></dd></dl>
<dl class="py method">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.spiral_circle.opt_euler">
<span class="sig-name descname"><span class="pre">opt_euler</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">R</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">R0</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.spiral_circle.opt_euler" title="Link to this definition">#</a></dt>
<dd></dd></dl>
</dd></dl>
</section>
<section id="spiral-cicle-mm">
<h2>Spiral_Cicle_MM<a class="headerlink" href="#spiral-cicle-mm" title="Link to this heading">#</a></h2>
<a class="reference internal image-reference" href="../../../_images/Spiral_Cicle_MM.png"><img alt="../../../_images/Spiral_Cicle_MM.png" class="align-center" src="../../../_images/Spiral_Cicle_MM.png" style="width: 600px;" />
</a>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.Spiral_Cicle_MM">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.primitives.spiral.</span></span><span class="sig-name descname"><span class="pre">Spiral_Cicle_MM</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Dmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_bend_center</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gap</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cycles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">layer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lport</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">res</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rib2strip</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strict_condition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.Spiral_Cicle_MM" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#mxpic.components.primitives.spiral.spiral_circle" title="mxpic.components.primitives.spiral.spiral_circle"><code class="xref py py-class docutils literal notranslate"><span class="pre">spiral_circle</span></code></a></p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Nazca cell name (default is None).</p></li>
<li><p><strong>Dmin</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum inner diameter in microns (default is 50).</p></li>
<li><p><strong>width</strong> (<em>float</em><em>, </em><em>optional</em>) Nominal waveguide width (default is 2).</p></li>
<li><p><strong>w_port</strong> (<em>float</em><em>, </em><em>optional</em>) Output-port width after the final taper (default is 0.45).</p></li>
<li><p><strong>w_bend_center</strong> (<em>float</em><em>, </em><em>optional</em>) Waveguide width within the central attachment bend (default is 1).</p></li>
<li><p><strong>gap</strong> (<em>float</em><em>, </em><em>optional</em>) Spacing between adjacent turns (default is 1).</p></li>
<li><p><strong>cycles</strong> (<em>float</em><em>, </em><em>optional</em>) Number of half-turns (π radians) (default is 20).</p></li>
<li><p><strong>xs</strong> (<em>str</em><em>, </em><em>optional</em>) Cross-section key (default is “strip”).</p></li>
<li><p><strong>layer</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Override polygon layer (default is None).</p></li>
<li><p><strong>Lport</strong> (<em>float</em><em>, </em><em>optional</em>) Length of straight port extensions (default is 10).</p></li>
<li><p><strong>res</strong> (<em>float</em><em>, </em><em>optional</em>) Arc-length sampling step (default is 0.5).</p></li>
<li><p><strong>rib2strip</strong> (<em>bool</em><em>, </em><em>optional</em>) Insert rib-to-strip transitions at the ports (default is True).</p></li>
<li><p><strong>port_angle</strong> (<em>float</em><em>, </em><em>optional</em>) Output bend angle in degrees (default is 180).</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Draw Nazca stub markers when True (default is False).</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add chamfer polygons when True (default is True).</p></li>
<li><p><strong>strict_condition</strong> (<em>bool</em><em>, </em><em>optional</em>) Enforce constant-spacing constraints when True (default is False).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</section>
<section id="spiral-cicle-std">
<h2>Spiral_Cicle_STD<a class="headerlink" href="#spiral-cicle-std" title="Link to this heading">#</a></h2>
<a class="reference internal image-reference" href="../../../_images/Spiral_Cicle_STD.png"><img alt="../../../_images/Spiral_Cicle_STD.png" class="align-center" src="../../../_images/Spiral_Cicle_STD.png" style="width: 600px;" />
</a>
<dl class="py class">
<dt class="sig sig-object py" id="mxpic.components.primitives.spiral.Spiral_Cicle_STD">
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mxpic.components.primitives.spiral.</span></span><span class="sig-name descname"><span class="pre">Spiral_Cicle_STD</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">name</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Dmin</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">50</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">width</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">2</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">w_port</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.45</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">gap</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">1</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">cycles</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">20</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">xs</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">'strip'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">layer</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">Lport</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">10</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">res</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">0.5</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rib2strip</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">port_angle</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">180</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">show_pins</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">sharp_patch</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">strict_condition</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#mxpic.components.primitives.spiral.Spiral_Cicle_STD" title="Link to this definition">#</a></dt>
<dd><p>Bases: <a class="reference internal" href="#mxpic.components.primitives.spiral.spiral_circle" title="mxpic.components.primitives.spiral.spiral_circle"><code class="xref py py-class docutils literal notranslate"><span class="pre">spiral_circle</span></code></a></p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>name</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Nazca cell name (default is None).</p></li>
<li><p><strong>Dmin</strong> (<em>float</em><em>, </em><em>optional</em>) Minimum inner diameter in microns (default is 50).</p></li>
<li><p><strong>width</strong> (<em>float</em><em>, </em><em>optional</em>) Waveguide width throughout the spiral (default is 2).</p></li>
<li><p><strong>w_port</strong> (<em>float</em><em>, </em><em>optional</em>) Output-port width after the final taper (default is 0.45).</p></li>
<li><p><strong>gap</strong> (<em>float</em><em>, </em><em>optional</em>) Spacing between adjacent turns (default is 1).</p></li>
<li><p><strong>cycles</strong> (<em>float</em><em>, </em><em>optional</em>) Number of half-turns (π radians) (default is 20).</p></li>
<li><p><strong>xs</strong> (<em>str</em><em>, </em><em>optional</em>) Cross-section key (default is “strip”).</p></li>
<li><p><strong>layer</strong> (<em>str</em><em> or </em><em>None</em><em>, </em><em>optional</em>) Override polygon layer (default is None).</p></li>
<li><p><strong>Lport</strong> (<em>float</em><em>, </em><em>optional</em>) Length of straight port extensions (default is 10).</p></li>
<li><p><strong>res</strong> (<em>float</em><em>, </em><em>optional</em>) Arc-length sampling step (default is 0.5).</p></li>
<li><p><strong>rib2strip</strong> (<em>bool</em><em>, </em><em>optional</em>) Insert rib-to-strip transitions at the ports (default is True).</p></li>
<li><p><strong>port_angle</strong> (<em>float</em><em>, </em><em>optional</em>) Output bend angle in degrees (default is 180).</p></li>
<li><p><strong>show_pins</strong> (<em>bool</em><em>, </em><em>optional</em>) Draw Nazca stub markers when True (default is False).</p></li>
<li><p><strong>sharp_patch</strong> (<em>bool</em><em>, </em><em>optional</em>) Add chamfer polygons when True (default is True).</p></li>
<li><p><strong>strict_condition</strong> (<em>bool</em><em>, </em><em>optional</em>) Enforce constant-spacing constraints when True (default is False).</p></li>
</ul>
</dd>
</dl>
</dd></dl>
</section>
</section>
@@ -666,41 +454,12 @@
</div>
<nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral">spiral</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral"><code class="docutils literal notranslate"><span class="pre">spiral</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral.generate_gds"><code class="docutils literal notranslate"><span class="pre">spiral.generate_gds()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-rectangle">spiral_rectangle</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral_rectangle"><code class="docutils literal notranslate"><span class="pre">spiral_rectangle</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral_rectangle.generate_gds"><code class="docutils literal notranslate"><span class="pre">spiral_rectangle.generate_gds()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-rect-std">Spiral_Rect_STD</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.Spiral_Rect_STD"><code class="docutils literal notranslate"><span class="pre">Spiral_Rect_STD</span></code></a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-circle">spiral_circle</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral_circle"><code class="docutils literal notranslate"><span class="pre">spiral_circle</span></code></a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral_circle.cell"><code class="docutils literal notranslate"><span class="pre">spiral_circle.cell</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral_circle.generate_gds"><code class="docutils literal notranslate"><span class="pre">spiral_circle.generate_gds()</span></code></a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.spiral_circle.opt_euler"><code class="docutils literal notranslate"><span class="pre">spiral_circle.opt_euler()</span></code></a></li>
</ul>
</li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-cicle-mm">Spiral_Cicle_MM</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.Spiral_Cicle_MM"><code class="docutils literal notranslate"><span class="pre">Spiral_Cicle_MM</span></code></a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-cicle-std">Spiral_Cicle_STD</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#mxpic.components.primitives.spiral.Spiral_Cicle_STD"><code class="docutils literal notranslate"><span class="pre">Spiral_Cicle_STD</span></code></a></li>
</ul>
</li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral">spiral</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-rectangle">spiral_rectangle</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-rect-std">Spiral_Rect_STD</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-circle">spiral_circle</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-cicle-mm">Spiral_Cicle_MM</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#spiral-cicle-std">Spiral_Cicle_STD</a></li>
</ul>
</nav></div>