Boolean difference failed


I’m trying to make a boolean difference between the solids present in this model (TestTubo.3dm (300.5 KB) ) but without success.
More precisely, I would like to subtract from the solid present in the layer “Livello 1” the two solids of the layer “Livello 2”. Anyone have any advice on how to do this?


Hi Alessia,

These polysurfaces will not Boolean because they share one or more edges. If you wanted to make Boolean difference work, you could extend your green cut object past the object you want to subtract from so that it doesn’t share any edges. With that said, in this case, why not extract isocurve (or draw a circle/DupEdge and move), snap it to the edge of your green cut object (shown in red), explode, trim, loft, and join?

TestTubo.3dm (305.5 KB)

I tried to increase the size of the green solid so that the edges do not coincide but the Boolean difference still fails. The second solution you propose works but unfortunately it is difficult to generalize and code aumatize and therefore it is impractical for my situation.

Hi Alessia - I’ve created RH-57580 for a developer to take a look.
Note that this does not mean that this can be fixed and even if it can, it will be something that will go into Rhino 7 or beyond. You are running Rhino 5 and thus need to find a way around this.

When you run the Intersect command on a pair of the objects, you will notice that several curves are returned. One of these curves is closed and can be used to trim surfaces that can then be used to create a closed polysurface. I don’t know if that is something that you can use as a post-process in your code.

An alternative would be to work on making cleaner input. Without knowing anything about the design history, the green objects seem to be unnecessarily messy. It would seem that simple lines and arcs could be used to create geometry that won’t have problems with the Boolean operation: