How is this open polysurface of non-intersecting surfaces possible/re-created?

I have a 3dm file that when opened, it presents an ‘open polysurface’ that is composed of non-intersecting surfaces.

RotorInPipeVoid1.3dm (1012.3 KB)

If I explode that ‘open polysurface’, I get 103 open surfaces.

Then, when I join all 103 surfaces again, I get 2 solids, not the ‘open polysurface’ that was there to begin with…

I really would like to be able to get back where it started without having to re-open the original file.

Ant ideas how I can put these 103 open surfaces back into a single ‘open polysurface’?

Hello - no. You can make a single closed but disjoint polysurface using NonManifoldMerge on the two polysurfaces returned by Join after the Explode. But you will not get all those unjoined edges.


1 Like

Darn, I really need to figure out how to get Rhino to be able to Boolean subtract one solid from another if it lies totally inside the one you want to subtract from.

That file was an export from OnShape, of a solid pipe with that smaller ‘propeller solid’ subtracted from it…

There is a need to be able to accomplish this in Rhino for Computational Fluid Dynamics purposes.

Any ideas?

Hello- if NonManifoldMerge does not get you the thing you want then you can mesh the joined object, then SplitDisjointMesh, then Flip the inner bit (vanes etc) so that the normals point inward (Dir command) then Join the two into a disjoint mesh. Assuming a mesh is OK for your analysis stuff.

RotorInPipeVoid1_Mesh.3dm (5.3 MB)


1 Like

Unfortunately, I try to avoid sending meshes to my CFD software, the first thing it does is re-mesh them which adds another level of interpolation errors than if the CFD mesher starts with a 3dm file…

I will try NonManifoldMerge and see how close I get.


EDIT: Sorry, juggling to many things at once here, I should have tried the ‘NonManifoldMerge’ before I posted. SO, NonManifoldMerge looks promising, I will report back and see if CFD mesher likes 3dm file like that…

EDIT: So, CFD mesher does not see this ‘open polysurface’ that contains 103 open surfaces (if those 103 open surfaces were joined, then there would be 2 solids) as one solid with an internal void in it (it just sees two solids). NO JOY :weary:

Right- there is not a way to make the normals point inward on the cavity - that is why I suggested a mesh, where that does work. I don’t know if connecting the void to the outer cylinder with a small hole is allowed - of course that would void the void…


WOW, Pascal, you are on the ball…

I had just finished solving this as an XY problem and then I read your last post.

By putting that ‘rotor’ on a 1 micron diameter center shaft that extends to each end of the pipe, I then Booleaned that rotor and shaft out of the pipe.

Strange and glorious thing is that the CFD mesher does mesh this properly and simply ignores that 1 micron shaft as being too small to resolve.


1 Like

Aha - I did not know that was even a thing - I’ll have to remember to suggest that if this comes up again.


1 Like