Bug? Can't trim a simple surface

I noticed that Rhino is unable to trim or split simple surfaces that intersect with each other. Is that a bug or just an isolated case?

Can’t trim this surface.3dm (156.9 KB)

Both?

Happens in grasshopper as well.

Your surfaces merge fine with PlanarUnion, and they also produce ‘trimmed’ regions by doing DupBorder on the surfaces then using CurveBoolean - which are way too many steps, I know, compared to what you’re going for.

Both surfaces were built on Z0, so in theory they should intersect together perfectly, but for some reason that’s not the case…

1 Like

I feel you.

Hi Bobi,

Rhino is predicated on the idea that an intersection is a curve. In reality, some intersections - such as your example - are areas. If Rhino was to embrace the truth of this I suspect it would give McNeel the possibility of solving a lot of intersection-related problems.

Rhino 9 wish…

1 Like

Hi Jeremy - I guess you’d expect the border of the coincident area to do the trimming?

Select one surface, start Trim and then select either inside or outside the coincident area? Probably in coplanar surfaces that would be a way - less sure about other cases.

(In this example the way out is sub-object selection of the surface edges)

-Pascal

1 Like

Hi Pascal, I’m aware that I can use the surface edges as the trimming objects, however, I expect that Rhino should be capable to detect intersection between the two co-planar surfaces. If you notice, even the ! _Intersect command fails to find the full curve intersection between the surfaces.

Hi Bobi- that is correct behavior in my opinion - the intersection is not a curve. Even more correct, arguably, would be for Intersect to return a trimmed plane of the coincident area.

-Pascal

I think that the intersection should be built along the border of the two surfaces, because it’s where the intersection ends.

I agree that the ‘border’ curve might be useful - but it is not the intersection, say I. The intersection is a surface.

-Pascal

Sounds like a closed triangle polycurve is the best way to mark the border of such intersection, where the two surfaces touch together equally along the visible triangle.

Hi Pascal,

There are, I think, several use cases. The simple case of a planar intersection area is already partially catered for by the planar boolean functions. Those need a delete (yes/no) parameter, and the addition of a boolean split function.

The next step would be to extend that functionality to non-planar surfaces, so planar boolean becomes surface boolean.

Then as an alternative to Bobi’s example, there are “line through” use cases. These involve intersections that fail because Rhino cannot find a curve that extends all the way across an object. For the purpose of splitting, trimming, wire cutting or booleaning objects, one can argue that from a geometric perspective it doesn’t matter where the intersection line runs across an intersecting area (though there may be manufacturing constraints that should be heeded) so drawing the simplest curve across the area that connects the adjacent intersection curves would be a way to get more successes. I think that would be a popular outcome…

Regards
Jeremy

1 Like