Boolean Union Failure

In the attached file, I cannot boolean union the two solids. From the intersection, it looks to me like Rhino is getting faked out on the tangents.

I can split the two object and join them together. However, (1) splitting produces a bad surface that gets discarded. (2) the splitting creates separate surfaces but they remain joined (they have to be exploded or extractsrf to remove); and (3) I have to do a second split to get all the way through.

Problem Union.3dm (5.4 MB)

So here I have split purple with red (which causes no visible problems). Now I have split red with purple. Notice the spit lines but the surfaces remain joined.

And I can extractsrf or explode them out.

Notice the surface at the top of the opening was not split. But a second Split command does split it.

If I split Red with Purple I get a clean cut of the bottom but I have to do extractsrf on the two surface above because they split but remain joined.

Then I have to do a second split to open the surface above. Then I can split purple with red and join to form a closed polysrf.

In the alternative, I can

  1. Split red with purple and delete the bottom surface that is not joined.
  2. Do a second split of red with purple which unjoins that split but joined surfaces and the surface that was not split.
  3. Split purple with red and joint to create a closed polysrf.

This behavior just seemed odd enough to report.

booleans like really clear intersections… you may be just barely intersecting or very close to file tolerance in your intersection…that may explain the flakiness you are seeing.

try extending the surfaces you are using a bit to make a clearer intersection…does it work better?

I always use the intersect command then examine the curves for breaks or weirdness to diagnose a dodgy boolean.

1 Like

Also, often it is just quicker and simpler to explode and work with Trim and Split at the surface level.


1 Like

Kyle is refering to the Intersect command, not the BooleanIntersection command. The intersection curve needs to either be closed, or starting and ending at surface edges. Also it should not split into two curves.

Added: IntersectTwoSets can also be used to find the intersection curve.

I tried extending the top and bottom but that did not work.

you have coplanar surfaces at the top and bottom of the purple part… Rhino typically does not like that.

I think exploding and splitting at the surface level is your best bet-