PolyDataFilters.extract_feature_edges(feature_angle=30, boundary_edges=True, non_manifold_edges=True, feature_edges=True, manifold_edges=True, progress_bar=False)

Extract edges from the surface of the mesh.

If the given mesh is not PolyData, the external surface of the given mesh is extracted and used.

From vtk documentation, the edges are one of the following:

  1. Boundary (used by one polygon) or a line cell.

  2. Non-manifold (used by three or more polygons).

  3. Feature edges (edges used by two triangles and whose dihedral angle > feature_angle).

  4. Manifold edges (edges used by exactly two polygons).

feature_anglefloat, optional

Feature angle (in degrees) used to detect sharp edges on the mesh. Used only when feature_edges=True. Defaults to 30 degrees.

boundary_edgesbool, optional

Extract the boundary edges. Defaults to True.

non_manifold_edgesbool, optional

Extract non-manifold edges. Defaults to True.

feature_edgesbool, optional

Extract edges exceeding feature_angle. Defaults to True.

manifold_edgesbool, optional

Extract manifold edges. Defaults to True.

progress_barbool, optional

Display a progress bar to indicate progress.


Extracted edges.


Extract the edges from an unstructured grid.

>>> import pyvista
>>> from pyvista import examples
>>> hex_beam = pyvista.read(examples.hexbeamfile)
>>> feat_edges = hex_beam.extract_feature_edges()
>>> feat_edges.clear_data()  # clear array data for plotting
>>> feat_edges.plot(line_width=10)

See the Extract Edges for more examples using this filter.