.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples\01-HFSS3DLayout\EDB_in_3DLayout.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_01-HFSS3DLayout_EDB_in_3DLayout.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_01-HFSS3DLayout_EDB_in_3DLayout.py:


HFSS 3D Layout: PCB and EDB in 3D layout
----------------------------------------
This example shows how you can use HFSS 3D Layout combined with EDB to
interact with a 3D layout.

.. GENERATED FROM PYTHON SOURCE LINES 7-19

.. code-block:: Python



    import os
    import tempfile
    import pyaedt

    tmpfold = tempfile.gettempdir()
    temp_folder = os.path.join(tmpfold, pyaedt.generate_unique_name("Example"))
    if not os.path.exists(temp_folder):
        os.makedirs(temp_folder)
    print(temp_folder)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    D:\Temp\Example_CM8492




.. GENERATED FROM PYTHON SOURCE LINES 20-23

Copy example into temporary folder
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Copy an example into the temporary folder.

.. GENERATED FROM PYTHON SOURCE LINES 23-28

.. code-block:: Python


    targetfile = pyaedt.downloads.download_aedb()
    print(targetfile)
    aedt_file = targetfile[:-12] + "aedt"





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    D:\Temp\PyAEDTExamples\edb/Galileo.aedb\edb.def




.. GENERATED FROM PYTHON SOURCE LINES 29-33

Set non-graphical mode
~~~~~~~~~~~~~~~~~~~~~~
Set non-graphical mode. 
You can set ``non_graphical`` either to ``True`` or ``False``.

.. GENERATED FROM PYTHON SOURCE LINES 33-37

.. code-block:: Python


    non_graphical = False
    NewThread = True








.. GENERATED FROM PYTHON SOURCE LINES 38-41

Set AEDT version
~~~~~~~~~~~~~~~~
Set AEDT version.

.. GENERATED FROM PYTHON SOURCE LINES 41-44

.. code-block:: Python


    aedt_version = "2024.1"








.. GENERATED FROM PYTHON SOURCE LINES 45-49

Initialize AEDT and launch HFSS 3D Layout
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Initialize AEDT and launch HFSS 3D Layout.
The ``h3d`` object contains the :class:`pyaedt.Edb` class query methods.

.. GENERATED FROM PYTHON SOURCE LINES 49-56

.. code-block:: Python


    d = pyaedt.launch_desktop(aedt_version, non_graphical, NewThread)
    if os.path.exists(aedt_file):
        os.remove(aedt_file)
    h3d = pyaedt.Hfss3dLayout(targetfile)
    h3d.save_project(os.path.join(temp_folder, "edb_demo.aedt"))





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    True



.. GENERATED FROM PYTHON SOURCE LINES 57-60

Print boundaries
~~~~~~~~~~~~~~~~
Print boundaries from the ``setups`` object.

.. GENERATED FROM PYTHON SOURCE LINES 60-63

.. code-block:: Python


    h3d.boundaries





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    []



.. GENERATED FROM PYTHON SOURCE LINES 64-67

Hide all nets
~~~~~~~~~~~~~
Hide all nets.

.. GENERATED FROM PYTHON SOURCE LINES 67-70

.. code-block:: Python


    h3d.modeler.change_net_visibility(visible=False)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    True



.. GENERATED FROM PYTHON SOURCE LINES 71-74

Show only two nets
~~~~~~~~~~~~~~~~~~
Show only two specified nets.

.. GENERATED FROM PYTHON SOURCE LINES 74-79

.. code-block:: Python


    h3d.modeler.change_net_visibility(["A0_GPIO", "A0_MUX"], visible=True)
    edb = h3d.modeler.edb
    edb.nets.plot(["A0_GPIO", "A0_MUX"])




.. image-sg:: /examples/01-HFSS3DLayout/images/sphx_glr_EDB_in_3DLayout_001.png
   :alt: Galileo_um
   :srcset: /examples/01-HFSS3DLayout/images/sphx_glr_EDB_in_3DLayout_001.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 80-83

Show all layers
~~~~~~~~~~~~~~~
Show all layers.

.. GENERATED FROM PYTHON SOURCE LINES 83-87

.. code-block:: Python


    for layer in h3d.modeler.layers.all_signal_layers:
        layer.is_visible = True








.. GENERATED FROM PYTHON SOURCE LINES 88-91

Change layer color
~~~~~~~~~~~~~~~~~~
Change the layer color.

.. GENERATED FROM PYTHON SOURCE LINES 91-96

.. code-block:: Python


    layer = h3d.modeler.layers.layers[h3d.modeler.layers.layer_id("TOP")]
    layer.set_layer_color(0, 255, 0)
    h3d.modeler.fit_all()








.. GENERATED FROM PYTHON SOURCE LINES 97-102

Disable component visibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Disable component visibility for ``"TOP"`` and ``"BOTTOM"``.
The :func:`pyaedt.modules.LayerStackup.Layer.update_stackup_layer` method
applies modifications to the layout.

.. GENERATED FROM PYTHON SOURCE LINES 102-109

.. code-block:: Python


    top = h3d.modeler.layers.layers[h3d.modeler.layers.layer_id("TOP")]
    top.is_visible_component = False

    bot = h3d.modeler.layers.layers[h3d.modeler.layers.layer_id("BOTTOM")]
    bot.is_visible_component = False








.. GENERATED FROM PYTHON SOURCE LINES 110-113

Fit all
~~~~~~~
Fit all so that you can visualize all.

.. GENERATED FROM PYTHON SOURCE LINES 113-116

.. code-block:: Python


    h3d.modeler.fit_all()








.. GENERATED FROM PYTHON SOURCE LINES 117-122

Close AEDT
~~~~~~~~~~
After the simulation completes, you can close AEDT or release it using the
:func:`pyaedt.Desktop.release_desktop` method.
All methods provide for saving the project before closing.

.. GENERATED FROM PYTHON SOURCE LINES 122-125

.. code-block:: Python


    h3d.close_project()
    d.release_desktop()




.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    True




.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 52.913 seconds)


.. _sphx_glr_download_examples_01-HFSS3DLayout_EDB_in_3DLayout.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: EDB_in_3DLayout.ipynb <EDB_in_3DLayout.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: EDB_in_3DLayout.py <EDB_in_3DLayout.py>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_