BooleanUnion Issue

Im trying to boolean union two objects but failing (tested in r8 & r9)

Failed to bUnion these two solid extrusions, cant seem to figure out why. (r9)

“Objects do not intersect” (r9)

“Found one intersection” (Closed curve, r9)

The intersection seems to be non manifold (rhino8)

What am i missing? Is there something to do with normals/orientation? Is it a tolerance issue? Is it a self intersecting boundary? Is it only on my machine and can anyone else replicate this error? Im going crazy, please help, i usually understand boolean operations but this one is doing my head in.

Also, interestingly im getting different results in r8 and r9 for some reason?

bUnion.3dm (111.7 KB)

Hi,
V9 can’t Boolean this here either (so it’s not your installation fault).
Usually I set my model tolerance to 0.001. In your file it’s 0.01, and after changing it to 0.001, the Boolean Union works correctly in V9.
In V8 it works without changing the tolerance, so it could be that the new intersector code in V9 needs some improvement.
Btw, fitting curves before extruding can cause fewer problems in subsequent commands (red original, green after fit 0.01).

bUnion_LZ.3dm (223.8 KB)

Very interesting, thank you for the refit curve tip, ill use that.


my guess - the challenge for the boolean operation are the touching planar surfaces that form multiple regions and also have edges with overlaps.

instead of using boolean operations you can also create the closed intersection curve (with serval approaches) … then trim join.
I did:
_dupFaceBoarder (2x, the 2 touching faces)
_curveBoolean
_trim
_join
_mergeAllCoplanarFaces

another attempt is working with booleanUnion:
use the intersections of the Face Boarders for snapping
split the edges at the overlapping start/end of the 2 contours.
then booleanUnion is doing the job
screenshot shows the _splitEdge result

Be careful with changing document tolerance - it s always a good idea to keep the initial tolerance your project / file startet with, especially tightening it might introduce new error sources.

happy modelling - kind regards - tom

Hi Tom,

I agree with all your points.

Let’s say that the best practice would be to start from good curves instead of making workarounds.

I changed the tolerance just to see if it would force V9 to solve the boolean operation (not sure if that forces the recomputation of all trimmed surfaces involved or simply allows for more decimals during the process), but I wouldn’t use the “change tolerance trick” to fix any of my models.

I always start with a specific tolerance and keep it until the end.