

.. _sphx_glr_examples_01_readers:

.. _readers:

Reading CAD formats
===================

Examples that take a CAD file on disk and produce a PyVista dataset.
Every reader is reachable through ``pv.read(...)`` once
``pyvista_cad`` is installed.


.. raw:: html

  <div id='sg-tag-list' class='sphx-glr-tag-list'></div>


.. raw:: html

    <div class="sphx-glr-thumbnails">

.. thumbnail-parent-div-open

.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="3MF is the modern interchange format for additive manufacturing. It carries per-object geometry, names, colors, and units in a single archive. This example loads a real 3MF from the 3MF Consortium sample set (BSD-2-Clause): a colored dodecahedron chain from the material extension.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_3mf_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_3mf`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read a 3MF package</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="BREP is OpenCASCADE&#x27;s native shape serialization, the format every OCCT-backed tool (FreeCAD, build123d, cadquery) can round-trip losslessly. No openly licensed real-world .brep corpus exists, so this example takes a real STEP part, the NIST AM Bench 2022 LPBF bridge specimen (public domain, https://doi.org/10.18434/mds2-2607), serializes it to BREP, and reads it back into pyvista.PolyData.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_brep_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_brep`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read a BREP solid</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="DXF is the dominant 2D interchange format: mechanical drawings, PCB outlines, architectural floor plans. This example loads a real DXF drawing from the ezdxf project (MIT) whose entities span three named layers (``0``, BLUE, RED), and shows how every drawable entity becomes a cell on a single pyvista.PolyData with its originating layer preserved on the cad.layer cell-data array.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_dxf_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_dxf`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read a DXF drawing</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip=".FCStd is FreeCAD&#x27;s native document format: a zip archive carrying Document.xml plus one BREP per part. pyvista_cad.read_fcstd parses the manifest and tessellates the BREPs via OCP, no FreeCAD binary required.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_fcstd_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_fcstd`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read a FreeCAD document</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="IFC (Industry Foundation Classes) is the dominant interchange format for buildings and infrastructure (BIM). This example loads a real BIM model, the buildingSMART &quot;Single-family house&quot; sample (CC-BY 4.0, buildingSMART International), and confirms that every product becomes one block in a pyvista.MultiBlock with cad.guid, cad.ifc_type, cad.label, and cad.material field data attached.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_ifc_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_ifc`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read an IFC building</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="IGES (``.iges`` / .igs) is one of the older neutral CAD interchange formats, still common for legacy mechanical hand-offs and turbomachinery. pyvista_cad.read_iges wraps pyiges and tessellates analytic surfaces with geomdl.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_iges_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_iges`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read an IGES file</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="pyvista_cad.read_scad shells out to the openscad CLI, captures the STL it emits, and returns it as a pyvista.PolyData. The OpenSCAD binary must be installed and on PATH.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_scad_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_scad`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Compile an OpenSCAD source file</div>
    </div>


.. raw:: html

    <div class="sphx-glr-thumbcontainer" tooltip="STEP is the dominant neutral interchange format in mechanical CAD. This example loads a real STEP part, the NIST AM Bench 2022 LPBF bridge specimen (public domain, https://doi.org/10.18434/mds2-2607), and inspects the resulting pyvista.MultiBlock. Every STEP part becomes one block with its OCCT label and color attached as cad.label / cad.color field data.">

.. only:: html

  .. image:: /examples/01_readers/images/thumb/sphx_glr_read_step_thumb.png
    :alt:

  :doc:`/examples/01_readers/read_step`

.. raw:: html

      <div class="sphx-glr-thumbnail-title">Read a STEP part</div>
    </div>


.. thumbnail-parent-div-close

.. raw:: html

    </div>


.. toctree::
   :hidden:

   /examples/01_readers/read_3mf
   /examples/01_readers/read_brep
   /examples/01_readers/read_dxf
   /examples/01_readers/read_fcstd
   /examples/01_readers/read_ifc
   /examples/01_readers/read_iges
   /examples/01_readers/read_scad
   /examples/01_readers/read_step

