Boolean Operations not responding well. BUG?

Hello. I was using boolean operations and it was functioning like it has to do, but now its not making sense anymore. I want to know what did happen and what do i have to do for ir to respond the right way.

When i BooleanDifference Red and Purple this is the result

When i BooleanUnion Blue and Red it only duplicates the red one. (In the image I moved the result up)

Here’s the file.
booleanbug.3dm (242.8 KB)

Whats happening? :confused:

Failure could be due to coplanarity of some of the subsurfaces

How do I fix this? I just found it kinda inverted boolean difference with boolean intersection.

Edit: And Boolean Union too xD

Hi @Gustavo_Soares_Silva
The red object has a non-manifild edge (where the triangles meet, and therefore Rhino sees the outside as the inside and vice versa - and hence the boolean operations act up. Non-manifolds are not a good idea in NURBS, so either move the edges apart of add thickness to the area.


When fixed, your booleans will work.
HTH, Jakob

1 Like

In this case you could try _Boolean2Objects.

1 Like

Thanks. I exploded removed the non-manifold edge manually (removing connected faces and remaking them). Is there a way to remove the non manifold edge without deleting related faces? I’d love just click it and delete but its not possible. What do you mean by add thickness to the area?

Hi @Gustavo_Soares_Silva
Non-manifold in NURBS means that more than 2 edges (in your case 4) meet at the same place. It’s not something that NURBS programs in general like a lot, since it creates a singularity with zero-thickness. Either move the edges apart (A) or make the two rectangles overlap (B) - even just by 0.01mm


HTH, Jakob

2 Likes

Non-manifold edges require more than 2 edges to be joined, not just coincide.

Procedure which eliminates the non-manifold edge without moving anything:

Results of ShowEdge before fix:

Explode the red object.

Split the large surface at the “non-manifold edge” using the Isocurve option with Shrink=Yes.

Join two of the the surfaces which meet at the “non-manifold edge”.

Join the other two surfaces which meet at the “non-manifold edge”

Select all the red objects and Join.

Non-manifold edges are eliminated without moving anything.

4 Likes

Do you think it is possible to make a Grasshopper definition for automatically doing this? I found that working with boolean operations create these non manifold edges more than i’d like it

Simpler method to remove the non-manifold edge:
Explode the red object.
Select all the red objects.
Join

1 Like

It worked lol. How have I not tried this before? I’m laughing at myself :joy: