I ran into this today: depending on the tolerance settings (0.001 or 0.01) the intersection curve between the plane and the curved surface is planar or non-planar, respectively.

Interestingly, the incorrect non-planar result (obtained at 0.01 tolerance) consists of three segments. The middle segment is correct and the same as the one obtained at 0.001 tolerance, whereas the two outer segments seem to force the intersection curve to the edges of the curved surface in a non-planar fashion. Why does this happen? Is there a setting to prevent this?

I find this behavior a bit troubling, it looks like the developer went to great lengths to add curve segments that are not needed. But maybe there is another explanation?

Hi Menno - the .01 tolerance result is well within .01 of the planar versions (pulled to the plane, or intersected at a tighter tolerance). So I guess the setting is the tolerance. I assume the extra parts are there because the surfaces are within tolerance there - Rhino thinks they intersect. The curved surface’s edge curve is only .002 away from the plane at the end of the .01 intersection curve.

The low level surface intersector (Greg) does not cause this. It’s the process that takes the surface intersection curve and figures out how it fits in with the trimming edges. As Pascal said, since the end of the intersection curve is within tolerance of the edge, the curve gets yanked to the edge.