Mesh Split Problem with disjointed meshes

Hi, I’ve run into a Mesh Split problem.

I’m splitting a mesh using different cutters (letters for engraving) that are joined into a single disjointed mesh. In some cases the split fails - some faces just disappear.

If the split is done using the individual letters, then it works.

All the geometries are generated parametrically, so I’m looking for a solution that works as much as possible independently from possible specific issues related to the location of the mesh intersections.

I’m attaching a Grasshopper example file.
2022-06-07 - MeshSplit (276.2 KB)

By the way, if I just subtract the solid mesh cutters then the mesh difference seems to be working.

Thank you!

I’m coming back to this, as I discovered a possible solution. When working on a custom Mesh Split C# script, I noticed that the Split method has a tolerance input. By setting it small enough, it seems that the mesh splitting problems I was having are fixed.

If this is something to be expected, wouldn’t be a good idea to expose a Tolerance input in the Mesh Split component? (Or to add an “advanced” Mesh Split component with the added inputs as in the Rhino Common method?)

–Edit: even with a very small tolerance there are some failures, however I think having a tolerance exposed would still make sense.

1 Like

The Mesh Class is using floats. Meaning that accuracy/tolerance issues are expected (notably if the items are far from Global Origin).

Thank you for the observation. In this case I believe the issues are generated when there are intersection vertices very close to each other. Anyway, it’s good to know that at least we can specify a different tolerance value.

PS on a different note, in those cases where the geometry is far from the origin, wouldn’t it make sense to move the geometries closer to the origin, execute the split operation and then move them back to their original position?

Is the safest way to cut the Mesh mustard.

So wouldn’t be a good idea to have Rhino do it automatically (I mean inside the Mesh Split function, hidden from the user).
I know we can script this, but I’m wondering if having it done automatically would cause any issue (apart from a minor slowdown).

Well … have in mind that automation is a very bad thing … meaning that better vivere pericolosamente.