PLANARSRF not working


Using Rhino for Mac, with an dxf 2007 imported from autocad. One closed curve will not planarsrf. It looks as if it is stuck in wire image, (when all other layers render, shadow, etc), and it does not act as surface when using the drape command.

I have exploded and rejoined, re-imported from cad. All the other line work is exactly the same, and renders properly. I’ve tried selbadobjects and there are none. I’ve tried analyzing, etc.

Any advice is greatly appreciated.

If a curve will not make a PlanarSrf, either it is not closed, not planar or both. If you say it is definitely closed (Properties will tell you), then it is most likely not planar.

Feel free to post the curve in question so someone can look…


Can you post a file with the curve please?

problemcurve.3dm (451.1 KB)

it is the large closed curve on layer 04.

How do I check if something is planar?

I made sure all curves were closed in CAD, and then adjusted vertical height on all objects from each layer using gumball

Next time, please select the specific objects and export them to their own smaller file instead of sending a lot of unrelated geometry.


Is this the curve?
PlanarSrf works fine for me here.
problemcurve04.3dm (42.4 KB)

yes, that is the curve.

you sent without a surface?

Does your surface render or view shaded? it seems to only be a wire frame. It does not take on the “look” of the other surfaces, and when I use the drape command, it does not drape the way the other rendered or shaded surfaces hold form.

The problem is inside the concentric red circles I created in this file. The polycurve has a very small part which is folded back on itself. Open the attached file and zoom to the center of the large red circle. Then keep zooming to the center of the small red circle. Keep zooming in and the fold will become visible. (The polycurve is exploded into individual curves in the attached file.)
problemcurve04DC.3dm (46.3 KB)
Edit: Image of fold added.


Thank you!

If you know of anyway I could have corrected that in CAD, please share. I tried PURGE, OVERKILL & AUDIT.

Thank you again!

Anyone know why the planar surface created by the curve does not shade or render?

@SP1 Did you import the polycurve from another program?

Hi David - since there is a loop in the curve the mesher does not know which side to mesh and it meshes the loop - if you ExtractRenderMesh you get a tiny little fragment at the loop.


It was imported from AUTOCAD.

@Pascal Thanks for the response. There is not a loop in this case, at least not one I can find. The problem I found is a fold that results in a “Z” shape, no closed loops. I didn’t find a render mesh fragment with ExtractRenderMesh.

Wellll. I got a tiny mesh when I tried this a little while ago - I was able to zoom to it after extracting - now I get what appears to be a mesh with with some unused vertices and a single polygon. For the moment I still blame the loop or Z or something similar elsewhere on the curve. I’ll poke a bit more - thanks.

RebuildMesh on my bogus result from the above creates a tiny triangle in the ‘problem area’ as I got the first time directly. At any rate, I will guess that even if not strictly a loop, the fold-back here is making the mesher undecided as to where to make the faces. I am guessing that the unused vertices above came from the initial tessellation of the perimeter curve…


Fix the Z and PlanarSrf works fine, complete with a good render mesh.

I fixed the Z by exploding the polycurve, deleting the middle of the Z, trimming the overlapping curves so they didn’t overlap (actually Split using the Point option, then deleting the unwanted parts) and forcing Join even though the ends are 0.003 apart. Not elegant but established the Z is the problem.

you can use ProjectToCPlane at least in rhino, it will do the job for you, doing that manually is always a bad idea and could also be a cause for this fold which david found so bravely, i wonder how you found that @davidcockey did you meditate yourself into it at super zoom driving all along till you find it? i must say i would have given up there :smiley:

i just have a weird theory, maybe its possible that the display mesh goes beyond the possibility of tessellation because its just way too small there, i dont know how it decides to make the display polygons how big on which part, but maybe it just popped the display mesh like a soup bubble.

ProjectToCPlane will make a curve or surface planar, but by itself will not indicate if the original was non-planar.

All control points of a curve (including polyline) or surface are planar if and only if the object is planar. One way to test to see if an object is planar is to:

  1. Turn control points on
  2. PlaneThroughPt using the control points as input to create a best fit plane
  3. PointDeviation to measure the deviation of the control points from the plane

A simple tool to check if an object is planar would be useful.

I found the problem but breaking the exploding the closed curve, selecting a some of the adjacent lines and arcs, joining the selected lines and arcs together, and closing the ends of the joined section. Then tried creating a PlanarSrf for that smaller closed curve. Repeated the process until I found a segment which didn’t produce a good surface. Then divided it. Got lucky and had a problem with closing a segment so I went looking for a problem with it.