Boolean unify what can be and ignore problems

One thing that is incredibly tedious with Rhino is to boolean unify a lot of objects.

In my case, I somethimes need to create a single polygon of a model of jewelry for 3D printing a mock-up. Sometimes I want to unify the gems of a pave, the prongs, really hundreds of polysurfaces.

I usually have a hard time doing that because I can’t select eveything and click boolean union, because every time one of the polysurfaces can’t be unified with another polysurface. It doesn’t matter if it’s just one on hundreds, the function aborts and return "Boolean union failed.", giving no clue what polysurface is causing the problem. As a result, the workaround is to unify by batch of 5 polysurfaces, and everytime it fails try again with each of the five until you find the one causing a problem by elimination. If you already had complex geometries, it can take ages to process a file like this.

I would much prefer that the boolean union command unify what can be, and return an error message telling me that “x objects couldn’t be unified”.

1 Like

ABSOLUTELY! Is there some reason why it’s a big deal to do this? Perhaps the failed objects could emerge selected, or at least color highlighted.

1 Like

Hello - the Boolean* mechanism does not really support that - it does not test every intersecting pair. If you go after it in stages though, you can generally get the working parts unioned and locate the problem areas.


Yes I imagine that your current implementation of boolean union does not test every intersecting pair, my point is that I would love it if it did ( and apparently I’m not alone, see @AlW comment ). I don’t know how your boolean union is coded, but I’m pretty sure that if it can know that the whole operation failed, then it can be a recursive function that repeat itself for every pair to unify. Yes it may be longer, but it may be an option as well, or even a separate function in the UI. Anyway I doubt it will be longer than the hour I spent yesterday trying to unify my 300+ polygons.

dear @felix.mariotto
your approach can be implemented by a simple script - some kind of “stepwise” boolean-union, that tests first for intersection and then tries to boolean union - if it is a professional context send me a private message.
… are you on mac or windows ?
Another option might be to check the settings / capacity / preferences of your slicer / 3d-printer software. Some slicers accept unjoined Mesh-Volumes - as they only look at the geometry on a level by level basis.
Did you try to send multiple Mesh-Objects to your printer ?

best -tom

Hi Felix -

I’ve thrown this feature request on the list as RH-61699. I would say that this sounds like a new command… It is very likely that many different combinations of objects would be possible. Would you expect this to go through all possible combinations and return the fewest groups of merged objects, return the largest new object, …?

As @Tom_ mentions, it is very well possible that you don’t have to boolean union any objects at all for this purpose.