BUG: Long standing MeshBooleanDifference issue

Hi guys,
(@pascal and @piac can you take a look at this?)
I think it is about hight time you fix the mesh boolean issue with disjoined meshes:

This should seriously be easy to fix and has been reported too many times.
Having to split disjoined meshes before mesh boolean and then manually delete the objects within the boolean and rejoin shouldn’t be necessary.

This is supereasy to recreate, but here is a file none the less:
MeshBooleanDifference Disjoined mesh issue.3dm (312.3 KB)

Oh, and when I try to split a disjoined mesh I sometimes get an “error with mesh dialog” so I have to run CullDegenerateMeshFaces first, but I think SplitDisjonedMesh should try this automatically if it fails the first time. This too is simple to add and would be a big help for new users (and a timesaver for oldtimers ;))

I also think that tools like MeshBoolean should run CullDegenerate after completion, I can not imagine a situation where anybody wants those bad surfaces anyway.

Thanks for listening.

Hi Jørgen @Holo

I fully agree with you! I’m fighting a somehow lonely battle with mesh intersections. So far I’ve managed to target MeshSplit, MeshIntersect and I got some good results. I am working on making these as robust as possible, and occasionally I also broke a few things. I am asking for some help internally, but honestly this isn’t getting as much attention as I would like. So, thank you for speaking up, and letting everyone know that this is something you want to get fixed a.s.a.p.



Giulio Piacentino
for Robert McNeel & Associates

PS, some insight: When I took on this project, mesh intersections were a daily struggle of Tech support and in the “Tech Top 10”, which is an internal list of the most excruciating problems of Tech Support. Now only few techs report these issues, so I’m fearing this is losing some traction. We need these reports so that we know you care about these issues and we can make intersections robust.


Thanks for the reply and the understanding Giulio.
Mesh Boolean Difference is quite robust once it is ran on splitted meshes so I guess it should be quite easy to figure out if a “sub mesh” is within the boundry of the booleaning part and thus just delete it, and then join up the rest. Nurbs booleanDifference manages this so I imagine it would be possible to reuse some of that code. And then joining up the parts when boolean is done. Just fixing that part is a HUGE step in the right direction.

1 Like

Big “Thank you” for all the work on Mesh commands Giulio - V7 has been a HUGE improvement with most of the mesh split-related operations working much better (or actually just finally working!) compared to previous Rhino versions.

+1 on fixing the MeshBoolean that Jørgen mentioned - we run into this problem often too, but it has been around for so long that we got used to painful workarounds.