- PolyData.boolean_difference(other_mesh, tolerance=1e-05, progress_bar=False)¶
Perform a boolean difference operation between two meshes.
Essentially, boolean union, difference, and intersection are all the same operation. Just different parts of the objects are kept at the end.
The difference of two manifold meshes
Bis the volume of the mesh in
Anot belonging to
If your boolean operations don’t react the way you think they should (i.e. the wrong parts disappear), one of your meshes probably has its normals pointing inward. Use
PolyDataFilters.plot_normals()to visualize the normals.
Changed in version 0.32.0: Behavior changed to match default VTK behavior.
The result of the boolean operation.
Demonstrate a boolean difference with two spheres. Note how the final mesh only includes
>>> import pyvista >>> sphere_a = pyvista.Sphere() >>> sphere_b = pyvista.Sphere(center=(0.5, 0, 0)) >>> result = sphere_a.boolean_difference(sphere_b) >>> pl = pyvista.Plotter() >>> _ = pl.add_mesh(sphere_a, color='r', style='wireframe', line_width=3) >>> _ = pl.add_mesh(sphere_b, color='b', style='wireframe', line_width=3) >>> _ = pl.add_mesh(result, color='tan') >>> pl.camera_position = 'xz' >>> pl.show()
See Boolean Operations for more examples using this filter.