Incorrect results from Geometry.Intersect

I get unexpected/missing results from the geometry.intersect node.

The solids are generated from a Generic Model that can be either L shape or rectangle. I don’t think this should really matter once the geometry is in Dynamo, but maybe i’m overlooking something. The intent is to have part of these elements overlap, and retrieve the geometry of the surface intersection. Rect:Rect and L:Rect interfaces return the expected results.

but the L:L interface does not.

when the solids are just touching, I get the expected result

but when part of the solids overlap, it doesn’t return the remaining surface/line intersection, and only returns the solid intersection

I’m expecting to get the solid, and two lists of 4 curves defining the planar intersection

image

I tried flattening this to a 2d problem and the results are the same. the curve intersections aren’t returned, only the overlapping surface.

Maybe you can get edges from resulting solid?

1 Like

Can you post the initial solids built as native Dynamo geometry?

Hello,
I tried to understand
yesterday

here is script:
07 aout forum anglais rep2.dyn (34.8 KB)

and

edit:
(I had thought that as it finds an intersection at the first gradation of geometric shape [3D, 2D face I don’t think it is necessary to recover surfaces, 1D] but not sure of my analysis so I had not answered)

Cordially
christian.stan

Here is a solution

Cordially
christian.stan

intesectSample.sat (56.8 KB)

here are the 3 configurations of the solids i was testing with:
. not intersecting
. overlap
. adjacent intersection.

I was thinking about this and maybe the reason is something like Geometry.Intersect returns the highest dimension response? like the reason i’m not getting the lines that define the surface:surface intersection, but am getting the solid overlap is the same reason you don’t get all the verticies that intersect.

this seems a little contradictory to my experience in the past where Geometry.Intersect will return multiple types based on the different intersections.

The implementation for this needs to be cross laced (finding surface intersections of multiple solids)

What if solids has been rotated? Cuboid won’t work.

with a translate of 0 (if the object has been rotated) the copy will always be in the same place and we can operate the same boolean subtraction
I don’t know if brings more clarity (I may have misunderstood your comment, I’m still a beginner)

Cordially
christian.stan

surf.dyn (20.6 KB)

1 Like