Kernel: split a body by a plane or another face's surface
split_body(body, tool) divides every face where the tool meets it and closes each side with the piece of the tool surface inside the body. - Patches have outer loops and holes. - Bands go round a cylinder or another surface of revolution. - Each side falls apart into its connected parts. - A body the tool misses comes back whole. Faces that are B-spline sheets but really planes or circular cylinders (extruded faces) split as the whole plane or cylinder: the tool is extended, and the field is exact and cheap. Tests (volumes): a box split by a plane (2400/3600); a holed plate split through its hole into two equal halves; a box split by a cylinder's side into the core (pi*16*30) and the rest; a plane that misses. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AS5Tn3xieewUSg3uxrMVdL
This commit is contained in:
1 parent
69d7bcfe7d
commit
34be218639
3 files changed
+364
-6
No files matched your search
@@ -52,7 +52,7 @@ pub use ops::{BoolOp, boolean, split_by_plane, transform, transform_matrix};
|
||||
pub use polybool::planar_boolean;
|
||||
pub use polyhedron::{HalfSpace, convex_polyhedron, draft, offset_faces, shell};
|
||||
pub use sew::{EdgeSpec, FaceSpec, SurfSpec, sew};
|
||||
pub use splitface::{SplitTool, split_faces};
|
||||
pub use splitface::{SplitTool, split_body, split_faces};
|
||||
pub use step::step_export;
|
||||
pub use step_in::{ImportedBody, StepImport, StepNode, step_import, step_import_shared, step_orientation_errors, step_validate};
|
||||
pub use step_out::{ExportBody, ExportProduct, StepHeader, step_export_bodies, step_export_products};
|
||||
|
||||
Reference in new issue
Block a user