Intersection fail... again

Hi all,
I had been working on other projects and haven’t used grasshopper for quite a while. I returned to it for some sculptures I’m doing and I run to an age old problem I’ve run into many times in the past:

In Boolean operations, (intersection, difference, union) It usually fails when the edges intersect.
In the example below, I have two closed breps (produced by previous boolean operations) and the intersection is not working. I tried increasing the unit precision settings to the 6th decimal but it didn’t help. It only works when I move one of the breps ever so slightly but this turns my 4 edged surfaces into 5 edged surfaces and it messes up with the operations that follow.
I searched for solutions but I didn’t find any, should I just surrender to the idea that this cannot be solved?


boolean.gh (214.6 KB)

This is caused by the slight movement. These edges should meet into a a point and since they don’t they turn the adjacent surfaces into 5 edged surfaces.
Capture


You have many surfaces that are tangent each-other in some part. But almost tangent, almost coincident.
You are making it hard to solve…

Your design is using the same divisions to create surfaces, and that’s why you have so many coincident edges (a problem for rhino since ever). But, exactly because you have coincident edges you could design with a different logic to have almost the same shape but without intersection problems.
Using booleans is always tricky.

Or, if you don’t really care about having coincident edges, indeed move your shape by a bit and that’s it.
Are you designing a mold (draft and stuff, done with CNC milling) or something to 3d print (where micro-details are useless) ??


It’s more a rhino nurbs intersector problem, rather than grasshopper.

all the surfaces are developable conic sections to be unfolded and cut with plasma cnc. I need them to be 4 edged so as to map other shapes on them.
If I understand your response correctly, you are telling me that there is no solution right?

What units and tolerance settings are you using in the Rhino file?

I would evaluate how big is the final object compared to the movement needed to make the solid boolean operation work.
I mean… you are not manufacturing the outer gear of a roller bearing…


As you want edges/vertices to be coincident, I would try this way:
create intersection curves between the conic surfaces and use the intersections to make a straight loft
2023-05-24 13_03_32-Window
no solid booleans involved.

…talking without knowing the full situation…

1 Like

sounds like a good idea, I will try it right now (although it will mean a lot of extra steps)

as i said: it was the first thing I tried: 0.000001

Ok I only saw this now.

This would be called ‘Absolute tolerance’…

I think it is way too small and should be increased.

What units are you using?

1 Like

meters. I tried all the digits in between. Do you think the unit plays a role? I always imagined that in 3d space it is irrelevant

boolean V0.gh (1.7 MB)

An explanation provided by Fusion 360:

Error: There was a problem combining geometry together.
If attempting a Join/Cut/Intersect, try to ensure that the bodies have a clear overlap (problems can occur where faces and edges are nearly coincident).
Failed to Boolean bodies together

So I give the ring a tiny bit of fillet: 0.01, then:


I guess it can be done in Rhino either.

Units and tolerance play a role, yes.

A first test when something does not work with intersections in Grasshopper is to check the intersection curves in Rhino.

Some of the intersection curves are incomplete. Look at the ridges here

When the arc segment on the XZ plane and the line to the tip of your larger object intersect, the intersection of the two objects is going to fail.

Moving the midpoints of the arcs outwards by 0.03 units solves the intersection problems.

boolean_adjusted.gh (225.3 KB)

1 Like

so in essence it was my problem, not the program’s!
The arcs intersected from the beginning!
This solves it!!! Thank you very much!!!

Adjusting the arcs solves most of the problems.

There seems to be another imprecision in your model.

The ridges / rays pointing towards the origin / tip of the model do not align nicely.

I think this could be modeled more accurately.

When the arc segment on the XZ plane and the line to the tip of your larger object intersect, the intersection of the two objects is going to fail.

Is there a tool or method that can tell if the arcs and the line are badly intersecting?
I mean I zoom into the intersection but really can not tell with my eye.

I untrimmed some of the segments of your smaller object.

The end points of the arcs are not all on a circle.

Did you create both objects in Grasshopper and can you share the definition?

I’ve created an example for you

The tips of the extrusions always need to lay on the axis which is used for the divisions of the circles which can infact also be ellipses. The distance for the displacement of the arc midpoints could be more sophisticated…

You can check whether the discontinuities of the intersection curves are on the edges that point towards the tip of the ‘cones’. They points which aren’t on these edges indicate problems. Ellipse 2 in my example is a problematic situation…

boolean_adjusted.gh (254.5 KB)

1 Like