Boolean Diagnostics- objects repair

Is it possible to know exactly why a boolean operation fails, so one might be able to remedy the problem?

I put a great deal of time into making objects match up for final joining and I still get a fail. It seems the boolean functions are rather fussy,

This is an example of two components that need to become one, but were best made seperately. (4.0 MB)

I think I and others have mentioned before that the best way to troubleshoot Boolean operations is to run Intersect on the objects and then inspect the resulting curves - if the Boolean fails, there’s an excellent chance that the curves cannot be used to trim and split the objects - finding the gaps or overlaps in the curves will tell you a lot… Your image tells me you likely have coincident or near coincident surfaces and edges from the two objects - my guess is Intersections will be messy…


Boolean functions In Rhino do not like surfaces which coincide.

Some folks suggest offsetting one of the offending surfaces by a small amount to eliminate the problem. I don’t like to do that for precision modeling because it may introduce errors.

Using the Intersect, Trim, Split, Delete and Join commands is an alternative.

Just a way, but splitting things up once, to get to where the problem is might be an approach. So as to put aside surfaces that are ok.

For the attached the only problem seems to be the overlapping surface with the outer part,
and the front side. Colored part was able boolean ok.
So the overlapping surface is probably the main reason for the failure, tho that should be avoided for boolean. Any tangency seems to likely fail.

ViewFinder_split.3dm (2.0 MB)

I made that change to eliminate the concurrent surfaces and the boolean took. However it was only a few steps later that the boolean process failed again.

It’s boolean bullshit.

But thanks for the attention.

Here’s a bit of the model that continues to misperform.

BooleanBS.3dm (576.5 KB)

What I dont get about that limitation is that a mirrored object shares a concurrent surface with it’s reflection and booleans without any problem.

Sometimes it is quicker, once you know how, to use the appropriate sequence with appropriate object selections of the Intersect, IntersectTwoSets Trim, Split, Delete, etc to do a Boolean type operation.

[quote=“JKayten, post:6, topic:30105”]
What I dont get about that limitation is that a mirrored object shares a concurrent surface with it’s reflection and booleans without any problem.
[/quote]My guess, and only a guess, is the code for Boolan operations recognizes coincident mirrored faces (same except for normal direction) and knows how to deal with them.

Hi Kayten,

yeah, I’d agree if it highlighted some places with some indication where it failed to calculate would be a nice feature to have… it’s be the starting point to fix.
same with the edgefillet command, if it did have an indication it would be nice.

…till then… I guess some manual trimming/split
seems to be a tedious, but a quicker way out than redoing the surfaces and trial and error of booleans…

For the model you posted, the inner part seems to have a naked edge, and fixed that
then the boolean worked ok.

For the other top and bottom part, needed to go through the intersecting and spit or trim process and join at the end to get it done.
I’m still on my learning curve on this as well, so I made some errors in the process
and had to go back and forth… but once you get it, I think it’ll be lot less stress since you’ll
have much control over what you are doing.

BooleanBS_nextsteps.3dm (5.1 MB)

Thanks very much for the model and explanations!

Your diagrammed model study is a generous bit of effort.

I’ve redone the thing several times by now and each time round I learn a bit more of what to do and not to do.

I’ve a question -

The curves extracted in the image - did you create a surface and then extrude it - remaking the U shapes?

What of the other turquoise lines left over from the intersect function - just deleted right?

Thanks again.


For the U shapes I selected the surface to be split then used the split command then selected the turquoise color line. That should split the surface.
Since the line was created using the intersect command I know it is intersecting with that surface so there should be no need to extude into a surface.
If it doesn’t work, the line is probably not closed.

Trim can also be used, but it trims off surface even though the line is not intersecting all the way to the cplane so that should be cared for.

And the turquoise line can be deleted once all the objects are closed and ready.

I’d make a copy of the setup first in different layer so that when something goes wrong and you need to go back you don’t have to undo stuff all the way.

I’m still learning as well but I find by helping others there’s a good learning process in that. Hopefully a win-win. After all that makes a good forum in my opinion. I also learn again from being corrected by the real experts . =)

What not to do is pretty simple


Learn to make this without booleans and your problems will be significantly reduced. There is really no reason to be using booleans for modeling something like this


What are some instances that are best approached with boolean methods?

I wouldn’t worry about that. If you know how to use the tools do this model without booleans then you are in a position to make that sort judgement call.

Those who don’t understand how to do it without booleans are doomed to experience failing booleans forever.

1 Like

Thanks for the advice