Border from planar surface is not always planar curve

Can anyone explain why (many times not always) when I extract border curves from planar surface’s the result is not a planar curve. I understand that it’s relevant to precision but why rhino doesn’t handle this correct to the level of the document precision. The same happens many times when I intersect planar surfaces with curved surfaces. The result is not always planar curve.
This cause many lost hours in design process.

Can you provide a Rhino file with examples?

why_not_planar.3dm (1.3 MB)

in the example were i intersect the curved surface with the planar surfaces the internal curves are planar the external not.

Hello- are you determining this using SelPlanarCrv?
I see that some of the curves in your file are not ringing up as planar (though they are to well withing tolerance, it looks like) , but if I make new intersections with the planes, they all work as expected. How did you get the curves, exactly? What command?
Actually that is not true - but I did get the expected curves once. I’ll dig some more.
It looks like SelPlanarCrv is simply too stringent - the curves are planar to within


Is there a problem that this causes other than selection using this command?

However, @ar00302 I am testing the curves of intersection with SelPlanarCrv, I am not sure, in your file, if there is something else I should be looking at - the subject of this topic suggests there is.


Actually you are right. They are planar in terms of document precision. But they report non planar in selplanarcrv command and in Buble plugin. Also the curve extracted from the boundary of planar surface is degree 3. I would expect a degree 1 curve. This planar surface is the result of an intersection more than one planar surfaces with only straight edges. So I don’t expect and don’t want a degree 3 curve as a result.
And the biggest problem many times is that joining many of these surfaces to produce a closed brep ends up with an open brep.

In the second example I used the intersect two sets command. After your post I tried the intersect command. Strange now it report the outer curve as plannar and the inner as non planar.

Can you post just the inputs and the results, of one of these?

SimplifyCrv will clean up linear curves that are degree 3.


I am not sure that I have the original planes of this example. I have done many modification now. I will try to reproduce it tomorrow and I will post.

1 Like

why_not_planar.3dm (1.5 MB)
I was able to reproduce it.
You can see a closed shape which is the result of several trimmed surfaces degree 1. I have dupborder from all surfaces. The curves of the top sloped surfaces are planar but degree 3. I know i can clean the curves but still the results are not the expected.

The closed shape seems to have a lot of unnecessary isocurves and looking at problematic section curves at least some of them are almost coincident with isocurves. Not sure if this is really a problem but I wouldn’t be surprised.

I rebuilt your base shape. You can see the curves I used for the Sweep1 in the file attached. The rail is a rebuilt curve with just 6 points. Not sure if this is an acceptable result for you but less control points generally lead to better results downstream… I offset the Sweep1 polysurface by 0.15 inwards and the result is a closed polysurface.

Orange curves with a lot of control points especially on the inner curves which may be a result of a bad offset. Green curves all closed and planar.

planar.3dm (1.7 MB)

Based on my result I’d say the way you built the solid shape is the problem.

Also I’d like to suggest a more appropriate title:

Section curves of closed polysurface and planar surfaces not always planar

Thanks for the answer.
I created this shape with the following order:
First i sweep two closed curves, both contained 4 straight edges with a fillet at the corners.
After i offset the surface.
That’s why the inner srf has so many cps.
Maybe it would be a better workflow to offset the starting closed curves and sweep them along the same path.
But anyway the intersection of anything with a plane should be planar. Even in the 9th digit. I know that mathematically this is not possible in the 9th or whatever the document precision is digit, but the rhino command should after compute the mathematic intersections to project them automatically to the plane. This what I am doing manual to solve the problem.

Your rail has too many control points.

why_not_planar.3dm (1.4 MB)
These are my curves.
But as I said even bud surfaces when intersect with planes, the result should be planar.

Ok, your curves are actually ok. But something went wrong on the creation of the surfaces.

How did you create the offset?



I recreated your Sweep1 and I get a much cleaner looking shape.

better_solid.3dm (1.7 MB)

Yes right now me to. Telling the truth I don’t remember what I’ve done. The main question that make me remember also this problem was the extract border function from planar srf, which again result non planar ( yes in the ninth digit) curves and also degree 3 curves even if the srf is degree 1 with only straight edges.
Thanks anyway.