Boolean difference failed. - Beginner Question



Help pleeease
Trying to subtract purple form from black form and don’t understand why Boolean difference fails.
Rhino5 file:

(Pascal Golay) #2

Hello - you can make this work by replacing the lower edge surface on the bell with a PlanarSrf
V5 does not like the revolved surface apparently. I’ll make sure this works in 6 or get it on the bug pile.

ExtractSrf, Delete, PlanarSrf, Join

then the Boolean should work.

The standard diagnostic tool for failed Boolean operations is to run Intersect on the objects - inspecting the resulting curves will generally show you where there is a problem - in this case there’s an extra ‘spur’ on the curve of intersection.

Booleans use the same information to split up the inputs, so this is a good indicator.

It looks like the revolved lower face has a problem - the control points are doubled up. @mristau is the curve you used to make the surface from Illustrator by any chance?



Got it. Most helpful. Thanks!


Well I had success with the previous form based on your instructions Pascal.
However I again have two closed polysurfaces and cannot subtract the red from the bell. I ran intersect but do not see why the indicated highlights are a problem.

If this is no longer a problem in R6, it would be worth the upgrade!

(David Cockey) #5

Boolean operations frequently fail when surfaces coincide. The solution is to either modify one or both objects so the faces do not coincide, or use a combination of Intersect, Split, Trim and Delete to obtain the desired results.

Boolean operations are best considered as similar to an autopilot. They can ease the workload but it the operator should be proficient in accomplishing the same tasks “manually”.


The intersection is incomplete.The intersection fails in V6 also.

It looks like the reason for the failure is the 2 revolved planes have a badly formed singularity.
To avoid that problem just extract the 2 planar surfaces and delete them. Then use the Cap command to replace them. Then try the intersection again and you should see two complete loops. Your boolean will now work. You can also use Trim and Join commands to accomplish the same thing.


Understand now. Thanks for your helps!