MeshBooleanSplit fails with partial intersections


I was trying to script something using Rhino.Geometry.Mesh.MeshBooleanSplit() when I discovered this problem and realized that not only is the RhinoCommon method buggy but also the native Rhino command MeshBooleanSplit - in both V5 and the WIP (hence the post in this category).

Very simple, just create two partially intersecting mesh planes and run the function (example file below). With Breps of course, the partial intersection results in a non-split, so nothing is done. With meshes, the split is just wrong… This not only applies to MBSplit, but also to Union, Difference and Intersection.

(Edited for accuracy/more detail)
Drilling down into RhinoCommon, what is happening is the result of the split is not None - the result is actually two partially split parts which are duplicates… The mesh being split is actually partially cut through and gets an internal “seam” joint, the other mesh is just a small collection of triangles at the joint. The native Rhino MeshBooleanSplit result deletes the main mesh being split and just leaves the few triangles at the intersection…

This is not how it should work IMO, a mesh should not split at all with this function if it cannot be completely split - just like it works with Breps now.

MBS-Fail.3dm (29.2 KB)


(Pascal Golay) #2

Hi Mitch - I see it, thanks…



Thanks Pascal, MeshSplit actually has the same problem, so I added a comment to the YT item to that effect.