Why does the intersection of these two planar surfaces return no intersection curves?

Hi all

Hopefully a quick one - I have created these two planar surfaces, same shape and area - each the result of chopping down from separate larger solids. They are planar and I’ve specifically moved them to be horizontal and on the same z value (z=0).

When I use the Rhino (v5) Intersection command, it says 0 interections found.

I’ve tried to call Intersection.BrepBrep in Rhinocommon too and received the same result: though the function returns True (successful calculation), it returns no intersection curves.

Can somebody tell me what is it about these two surfaces that causes that result? As far as I can tell and understand, they definitely should result in an intersection curve that is basically equal to their edge curves.



TestIntersection.3dm (49.5 KB)

It seems like one of these is a NURBS surface. Is it expected that Rhino doesn’t intersect two surfaces when one of them is a NURBS surface and the other a planar surface?

That isn’t how intersection works, it works in slices where the surfaces cross, if entire parts of the surface (in this case the entire surface) are overlayed, how will it know where to section? Keep in mind intersection does not have anything to do with the surface edges.

This is an intersection:

If you want the edge of that shape you can use DupBorder:

Rhinocommon marks it as true because it knows they touch, but since they touch everywhere there isnt a curve it can make (essentially the real output intersection would be another copy of the surface if you think about it)

It might be a fair point that I’m not using Intersection in the spirit of what the function is meant to do.

However I have seen in general that if two planar surfaces are on the same plane and I call Intersect on them, that it results in an outline of the overlap between the surfaces.

The only reason I mention the edge curves is because in this case, the overlap between these two surfaces of the same shape happens to be the same as their edge curves.



That works here in the latest in-house build of V6…



If your use case is getting the compined outline of planar surfaces overlap you could ‘dupborder’ all surfaces and then ‘curveboolean’ the resulting curves. It’s a bit more manual though