Boolean Union not working



Hi! I am struggling with Boolean Union. I have created 255 curved rib shapes (via sweep2) that I want to attach via BooleanUnion to my sole. All shapes are closed polysurfaces. Most attach but about 15 don’t attach. When checking the intersect line, they are not always fully attached. I am unsure how to solve this and I hope someone can have a suggestion for me. Thank you very much in advance! Carola

The end of the pipe looks like nearly coincident with the other surface which can be the reason why you’re having trouble.

1 Like

post your 3dm file please.
hard to help from a screenshot.

guessing is possible:

the pink and light blue Surface / area is nearly co-planar.
Boolean operations don t like this.

solution:
make the “curved ribs shapes” longer then needed.
_extractSrf (the pink surface, copy = yes)
_extendSrf (the extracted Surface)
BooleanSplit the “ribs” with this surface.
_shrinktrimmedSurface (optional, might speed up processing) the ribs
Booleanunion should now work now as tsurfaces are identical / match

??

Boolean fails only.3dm (4. Thank you Tom for replying. My file was too big to attached so I exported only the ribs that fail with the Boolean and my sole. Please find attached. And thanks for the tip of extending the ribs, this sometimes helps but sometimes not.

Thanks for your suggestion!

Thanks Tom for your suggestions, this helps for some, not all, see file attached
Boolean fails only.3dm (4.3 MB)

tbh, I think you first have to address the model issues. The surfaces are highly inaccurate:

Thanks for your input Gijs, I will work on that, do you feel that is the problem why the Boolean Union is not working?

As mentioned in my comment, when seams or edges are nearly coincident or almost on the same surface very close together, things can go wrong quickly. It also depends on your file tolerance.

1 Like

Thanks Martin, I am trying different shapes, but still running into some ribs not attaching. I believe my sole now has a more accurate surface like Gijs suggested and also I am not using the same surface anymore. PS Thank you all for looking at my challenges, very kind!
Boolean fail 2.3dm (11.3 MB)

Please post a file before doing any boolean operations.

This one in the post above has a few problems.

Before Booleon.3dm (18.7 MB)
Please find attached the latest upload but before Boolean operations

ideal boolean.3dm (19.5 MB)
Ideally I use this sole instead FYI, but the one in fire ‘Before Booleon’ is more simple, so I thought that would work, but it didnt

Do you create this ribs in Grasshopper?

And btw… your file tolerance… why just 0.1? It’s 0.001 usually

I thought if I have a less tight tolerance it would work better. I am new to Rhino, so if I am wrong in my understanding, I would love to know :). I did create the ribs individually. I am not yet familiar with Grasshopper. I used sweep2 to make the ribs (254 times repeating this step).

I think the union would work better if the ends of the ribs didn’t end right on the edge of the sole. As a test, I offset the inner wall of the sole by 0.5 mm and blended the surfaces in between again. The union still does not work and the next issue I see is the seam of the ribs. Ideally, the seam is placed so it is inside the boolean union and not intersecting as it is now.

Can you please recreate the ribs?

You need to move the seam of the two section curves so the seam ends up on the inside. Obviously cap everything.

To be honest, I also have some doubts with this part of the sole:

Not sure how you built it.

BlendSrf could result in a more consistent shape.

I have no clue how you created the ribs.

I would do it in Grasshopper but if I needed to do it in Rhino, I’d probably use _FlowAlongSrf

My example isn’t exactly your situation which is on purpose.

sole.3dm (10.7 MB)

1 Like

Hello Catharina,

Sorry, I am a bit confused: You were able to get the Union to work on the ideal boolean.3dm file or not?

Thank you,

Andy

Hello Martin, it worked! I followed your instructions and now I have a rib along the edge of my sole and the Boolean Union worked! I I recreated the curve with seam on the inside. FYI the previous rib was made with sweep 2 and the new one I made I made with sweep 1. I tried myself to make a base surface with a reference point, but I couldn’t figure it out how to do it, so I used yours in the end. Thank you very much for providing me with the file! Do you mind telling me the steps of how you made the base surface (the green rectangle with the yellow dot)? And how you added the yellow dot to the sole as well? Thank you so much! For your reference, see attached the rib I made, the sole created and the base surface I am referencing in my question.



1 Like