Unexpected and no results when performing addition and subtraction of solids

Jormungandr.zip (3.5 MB)

Using Grasshopper, I’m adding a closed brep:

… to a referenced closed brep, at which point things start to look weird:

… and then an array of closed breps:

… is subtracted from the added closed and referenced closed breps, with - unexpectedly - no result, and taking an unexpectedly long time.:

The objects being added and subtracted all appear to be the right way out, and are not inside-out.

How can I get the expected results, and why is it taking so long when it appears to me that it should take only a few seconds at most?

I’ve included my Rhino and Grasshopper files in case they will help.

Hello - generally the best way to check on Booleans is to switch to wireframe and run the Intersect command on the two objects, then inspect the resulting curves, if any. Typically, Boolean operations will fail even if the visible intersection appears complete if the intersection is exactly along brep face edges and if non planar surfaces are coincident or come tangent to one another, and that seems to be true for both in your file. The way to clean up by hand in Rhino - I have not looked at all of the objects yet - is to extract and join the surfaces you want to have in included.


Hi, Pascal,

I think the weird-looking surface in screenshot #2 was just an artefact caused by overlapping objects…

However, it appears that the subtracting objects from screenshot 3 had coincident surfaces with the object from which they were being subtracted, and removing the coincidence has made it all a lot faster…

However, even if I try to subtract the array or even a single brep from the surface of rotation, the surface of rotation is unchanged. Analysing the surfaces shows that they all have the correct directionality.

What would make this subtraction fail in this manner?

Hello - can you post a file with just the two surfaces/breps you’re asking about?


Jormungandr_temp.3dm (647.7 KB)
Hi, It has been a while… sorry.

The solid can’t be subtracted from the ring… why?

Did you do this?
The intersection between your two objects should, in this case, be a single closed curve.

… but this is what you get: 4 curves and only one is closed.

This is still the case in your model:

Also, on the back side (to the right in the picture) of the ring, you have a very short area (0.014 units) where the section is horizontal in the otherwise sloping surface. This seems to be meant to coincide with an equally short part on the green part.

While the intersector seems to find an intersection curve here, this kind of modeling is asking for problems. Try to make clean shapes that cut through each other.

Thanks… I thought I had fixed that… Obviously not. I got it to work with altered shapes, but had to reduce the tolerances.