Open Polysurface

How is it possible to have an open polysurface with no naked edges?

If Rhino says you have one, how do you fix?

Probably because it’s non-manifold. That counts as an open polysurface even if there are technically no “naked” edges - just the opposite, there is at least one spot where there are more than two surfaces that share a single edge. Does it highlight if you type SelNonManifold?

There was a thread awhile back on this stuff, you were actually involved…


Actually, there were no non-manifold edges either. I should have mentioned that in the original.

Select bad object selected nothing as well.

And I should have saved the object. I was just wondering what to look for with:

  1. No naked edges
  2. No non-manifold edges; but
  3. Not a closed polysurface.

Yeah, without that it’s difficult to know what happened.

If a polysurface is valid and has no non-manifold or naked edges, it should be considered “closed” by Rhino. If it’s not, it could be a bug - quite rare, but possible.

One other possibility is a single closed surface (like a sphere) which will not select when you run SelClosedPolySrf - because it’s a surface, not a polysurface.


I am kind of kicking myself on this. I was in such a frantic mode trying to solve the problem, It was actually a fairly complicated object. I had either done it using Shell or OffsetSrf. I think that I had done JoinEdge to the point where there were no more naked edges but object panel was saying it was still open.

ShowEdges and ZoomNonManifold, definitely said none.

When I had calmed down, I was wondering what could cause that situation.

This is not generally a good idea. JoinEdge is only to be used in situations where you need a “watertight” display or export mesh for either rendering or or prototyping. JoinEdge - despite what the name might suggest" - does not actually change the underlying geometry, it just forces two edges together which are too far apart to be joined normally. In doing so you are throwing your surface edges out of tolerance, which could cause objects to go bad. You might also think you had no more naked edges because you don’t see any more, but there might be some micro ones left.

If your edges aren’t joining within tolerance, you had best go back and fix the surfaces in question until they do join up instead of trying to use JoinEdge. Unjoinable edges are a sign of modeling inaccuracy or trouble somewhere, best fix them before continuing to model or they will likely come back to bite you in the a$$ later.


I have found that the result of the patch command frequently does not follow the edges of the input shape very well. How would done mate a patch to another surface without a joinedge in such a case?Problem33.3dm (334.9 KB)

For example, here is a planarsrf and a patch where they share a common curve. However, they will not join unless the tolerance is very large (0.01 works, but 0.001 does not).

What would the approved solution be here?

Yes, that is one of the limitations of Patch, the edges are not guaranteed to be within tolerance of the input geometry, that comes from trying to fit a trimmed surface so that the trimmed edges match some arbitrary geometry. It is always an approximation; how close you can get depends on what geometry it has to match and what kind of parameters you feed to Patch.

To make the surface edges more conformable to surrounding geometry, you can either give the surface more CV’s - which make the surface more locally “conformable”- or you can decrease its stiffness, which makes the “skin” more soft and flexible; or both of the above. This comes at the expense of the surface becoming “heavier” if you add CV’s and perhaps forming unwanted wrinkles. More CV’s means a control point has more local influence, but less general control over the whole surface. Your example above shows some of this, there are some funny wrinkles on the left end.

There are many situations that are geometrically impossible to resolve with Patch, imagine trying to fill a square opening with a domed patch. The surface can simply not crease to fit at the square’s corners, you can try to minimize the mismatch but you can never eliminate it.

This is why Patch should be used with caution and that you should check the results carefully afterward - it is not necessarily the best solution for many situations.

In your example, I guess I would try to build the vertical surface as a two rail sweep then trim out the shape on the right end; can’t guarantee that it would match exactly the trim curves on the right though.


Without seeing what all has to be built I would probably go about tis different.

Personally, I never use patch. I find it unpredictable. My theory is if the surfaces are built right we shouldn’t need to use patch.

In this case I would probably take your patched surface and split it into 3 sections in the Y so the small / short end that goes under neath your planar surface would sweep to the long angled surface. Make sense?

Duplicate the edge and then rebuild so I have as low a point count as possible.

that is the most logical approach if i was building this from scratch.


The problem I found with sweep and networksrf is that I would get a crease at the bottom of the upper curve.

Essentially, that shape is what I have to build.