Two closed mesh creates an opened mesh when joined - why?

Whatever angle, position, anything I try, the two closed mesh 100% creates a mesh that has “no naked edges 22 non-manifold edges” when I “join” them.

Oddly, when I further join meshes on top of it, it will stay at “no naked edges 22 non-manifold edges”
Never 23 or 21 non-manifold edges - it’s determined to give me exactly 22 non-manifold edges with no naked edges.

Furthermore, when I command “ShowEdges” and try to highlight the non-manifold edges in bright red (against a light grey mesh) there’s none - I’ve manually scoured the mesh all over the place and zoomed in and out and practically licked it clean - not even one is highlighted in red.
(Yes I tried Ghost mode as well to make sure)

The attached screenshot shows the mesh in concern - so the bird statue is a mesh of its own and each of the feathers you can see on the wings, are individual meshes.

All feathers and the body is a “closed mesh - no naked edges and no non-manifold edges” and is checked to be “valid mesh”

A join mesh between the body of the bird and any 1 of the feathers, however, triggers the issue described above. “Repairmesh” unfortunately exacerbates the situation and creates more non-manifold edges (shoots up to the 1000s) and “reduce mesh” doesn’t help much either because, whatever percentage I set to reduce (1~99%) it will shift the problem to “24 naked edges and 1 non-manifold edge”
(By the way, even in this case the “Showedges” command doesn’t highlight any of the supposedly 24 naked edges…it’s frustrating how I can’t command myself to zoom into it on pinpoint so I can deal with it. It doesn’t let me find the naked edge)

What do you think is going on? Any way to possibly go around it? I would want to refrain from disclosing the actual data (mainly because it is quite heavy) but if no possible solution is devisable…I’ll try to do it.


1 Like

Without a file, one can only surmise…

With NURBS, you cannot “join” closed objects to other objects. With meshes however, you can join all selected mesh objects into one single mesh with Join, and this whether they intersect/overlap or not.

If non-overlapping mesh objects are joined, they make what is called a “disjoint mesh”. So I suspect when you are “joining” your two closed meshes, you are creating a disjoint mesh, but maybe with faces that overlap, hence the designation “non-manifold” - which means more than two mesh faces share the same edge.

To unify your two closed meshes into one, you need to either remove the overlapping faces from both to create a common open border and then use Join (and perhaps MatchMeshEdge), or you can try MeshBooleanUnion…

1 Like

Hi, thanks for trying to solve it - I understand without the file it might be hard to investigate.
I…tried something and “joined” the mesh when they are clearly disjoint i.e. absolutely no surfaces are touching.

If both meshes are closed, then this should give me a “closed disjoint mesh” right?

However, it’s determined to give me a non-manifold edge it seems - instead of a disjoint mesh, it gets me an open mesh. “no naked edges and 18 non-manifold edges”

Above are the two meshes (the body and the set of feathers) post “join” command. I tried joining this way - As it is clear, they definitely do not intersect in any way…and yet, before “join” both are closed meshes, after join it suddenly has “18 non-manifold edges” and an open mesh.

I can’t think of any logical reason as to why…just because I “joined” meshes, it now has non-manifold edges when in essence, nothing should have changed. They aren’t intersecting at all, neither is interfered with any edges or surface/faces.

Is it an error on Rhino’s end? Is it a bug? Or can this peculiar scenario occur for a good reason?
That might be the cause…if there are number of reasons that this could happen, then well…I guess we can’t keep on speculating…

Hi -


My thinking is that if you want to make these two objects become one then you will want to do a mesh boolean union.

There is a big difference between say grouping, joining, and boolean objects together and will net very different results.

See the resulting geometry when using Join vs Boolean. This is a Boolean operation not Join.

I presume this is because the meshes came from a 3D scan or something like that. And the mesh joining is doing a thorough check internally as it makes the new mesh, so it discovers non-manifold edges that probably were there to begin with… Just a guess.

If you have access to rhino 8 wip then you can try the new shrinkwrap command to make a new skin of all the meshes. It’s pretty awesome, but you might loose some details as it makes a totally new mesh from ground up, resampling the input.

I have used it a few times with good results to quickly 3D print some badly modeled geometry.

Hey guys, I think I solved it. Quite manual labor, though but I’ll leave a note here how I did it.

So, ShowEdges command tells me it has 18 non-manifold edges and I didn’t think of clicking on the Zoom button (on the panel - so in my UI, I have the ShowEdges command conjure a panel where I can select naked edges, All edges and non-manifold edges to highlight it - the button is there) and then it zooms all the way in to the highlighted area otherwise not visible.

It was situated right around the shoulder are of my model…super super small and it looked like…it wasn’t even on the surface? Just very weird place to have faces…but anyways, good news I know where the problem is.

Then, I exploded the meshes which isolated the problematic faces - then, I deselcted everything else apart from that annoying face. I simply deleted the non-manifold edges (well, it looked more like “points”) manually.

Then, re joined the exploded mesh bar the problematic face and boom, I got a closed disjointed mesh.

That’s how I went about this one…thanks for all your help

1 Like

Are you still using Join? Show the cross section through the mesh after completing what was done, want to see what’s happening.