pyvista.DataObjectFilters.clip

pyvista.DataObjectFilters.clip#

DataObjectFilters.clip(
normal: VectorLike[float] | _NormalsLiteral | None = None,
origin: VectorLike[float] | None = None,
invert: bool = True,
value: float = 0.0,
inplace: bool = False,
return_clipped: bool = False,
progress_bar: bool = False,
crinkle: bool = False,
plane: PolyData | None = None,
)[source]#

Clip a dataset by a plane by specifying the origin and normal.

The origin and normal may be set explicitly or implicitly using a Plane().

If no parameters are given, the clip will occur in the center of the dataset along the x-axis.

Parameters:
normalVectorLike[float] | str, optional

Length-3 vector for the normal vector direction. Can also be specified as a string conventional direction such as 'x' for (1, 0, 0) or '-x' for (-1, 0, 0), etc. The 'x' direction is used by default.

originVectorLike[float], optional

The center (x, y, z) coordinate of the plane on which the clip occurs. The default is the center of the dataset.

invertbool, default: True

If True, remove mesh parts in the normal direction from origin. If False, remove parts in the opposite direction.

valuefloat, default: 0.0

Set the clipping value along the normal direction.

inplacebool, default: False

Updates mesh in-place.

return_clippedbool, default: False

Return both unclipped and clipped parts of the dataset.

progress_barbool, default: False

Display a progress bar to indicate progress.

crinklebool, default: False

Crinkle the clip by extracting the entire cells along the clip. This adds the "cell_ids" array to the cell_data attribute that tracks the original cell IDs of the original dataset.

planePolyData, optional

Plane() mesh to use for clipping. Use this as an alternative to setting origin and normal. The mean of the plane’s normal vectors is used for the normal parameter and the mean of the plane’s points is used for the origin parameter.

Added in version 0.47.

Returns:
outputDataSet | MultiBlock | tuple[DataSet | MultiBlock, DataSet | MultiBlock]

Clipped mesh when return_clipped=False or a tuple containing the unclipped and clipped meshes. Output mesh type matches input type for PointSet, PolyData, and MultiBlock; otherwise the output type is UnstructuredGrid.

Examples

Clip a cube along the +X direction. triangulate is used as the cube is initially composed of quadrilateral faces and subdivide only works on triangles.

>>> import pyvista as pv
>>> cube = pv.Cube().triangulate().subdivide(3)
>>> clipped_cube = cube.clip()
>>> clipped_cube.plot()
../../../_images/pyvista-DataObjectFilters-clip-43394e55bb66b338_00_00.png

Clip a cube in the +Z direction. This leaves half a cube below the XY plane.

>>> import pyvista as pv
>>> cube = pv.Cube().triangulate().subdivide(3)
>>> clipped_cube = cube.clip('z')
>>> clipped_cube.plot()
../../../_images/pyvista-DataObjectFilters-clip-43394e55bb66b338_01_00.png

See Clipping with a Surface for more examples using this filter.