Boolean Union Difficulty


In the attached file, the red was created using planar surfaces at the top, bottom and sides, a loft towards the end and a networksrf at the right. They were all joined together and shelled.

The purple surface is a loft and planar surfaces at the top and bottom. The surface at the top of the purple and the bottom of the red were created from the same curves (prior to shelling).

Yet boolean union fails on these. I can use extractsrf at the matching points join, and cap to union but I was wondering why this causes Boolean Union so much trouble?

Problem Union.3dm (4.3 MB)


Yes, that’s exactly what you should do in this case, much more reliable.

Probably your overlapping surfaces (the ones you would remove) that are not just simple planes, there’s probably some areas where Rhino cannot determine a single perfect intersection loop.

As has been stated numerous times here, when Boolean ops fail, run Intersect and inspect the resulting curve(s). 99.5% of the time it/they will tell you where the problem is.


I should have added that they do no union even when the red is not shelled.

I did the intersection and the mismatch depends upon how I build the red part. If I networksrf to build the left and right, I get a point discontinuity at the vertical seem visible. If I use sweep2, I get multiple discontinuities.

Again, I am curious why the identical curve at the interface causes so much trouble here. In particular, the interface curves are built off of arcs with tangency. I was wondering if that might be the source of the proble.


Surfaces should generally match input rails/edges to within the file tolerance. However if you build surfaces from the same set of curves with several different approximate methods such as sweeps and/or network - which by the way has its own edge tolerance override - the results might not be close enough everywhere for the surface edges to join - and it only takes one place to cause a failure. It may work better to build first one part, then work from the surface edges of that part to build the second part instead of the original curves. It might theoretically avoid a tolerance buildup.

But it seems clear that if you can extract the mating surfaces and delete them, then join the rest up into a closed part within tolerances, that your nearly coincident mating surfaces are what were causing the problem.