Creating a partitioned polysurface from multiple intersecting surfaces?

Hi Rhino Community!
I’m a new user and I’m learning Rhino for a Finite Element Analysis project.

The plan is to create a partitioned (corresponding to different materials) geometry using Rhino and port the geometry (step file) into a mesher (such as Gmsh) where I can mesh the polysurface using triangles and then mesh the corresponding triangular mesh with tetrahedrons.

As such it seems it’s important for the output geometry file to be of a single polysurface, otherwise the triangular mesh of the different surfaces don’t match!

I’m currently trying to create a cylinder polysurface that’s partitioned into an inner (solid small cylinder of radius A) and outer (hollow large cylidner of outer radius 2A and inner radius A) space. There should be no holes in the final tetrahedral mesh, I just need 2 partitioned regions.

As of now I have 6 surfaces and I have been having trouble joining/applying a boolean on them. The problem seems to be that when i’m joining the 3 surfaces intersecting at the circle curve of radius A, I can only join 2 out of the three!

It could be the case that i’m missing something silly, maybe there’s an alternative method to doing what I want

I attached a picture and the problematic 3dm (Problemsurface.3dm) file, I also attached an stl file of a similar partitioned geometry with a hole.
Thank you very much!
Problemsurface.3dm (87.1 KB) Polysurface.stl (1.7 MB)

you dont boolen surfaces together, use join to make them solid, requiring that the surfaces touch each other at all edges of course. anyway to create two independent solids you simply have to duplicate the inner wall and join each to the rest of the inner and the outer region separately to create 2 separate objects. to join all together you could use NonmanifoldMerge but in your case that would not deliver what you are after anyway.

I don’t know if it helps but if you have a situation like this:

you can use CreateSolid and you will get 2 solid objects. the ring and the inner cylinder:

Normal Brep Solids have only two surfaces that can join at an edge. This leads to a solid that can have normals pointing out in a consistent way all around the object. This is called a Manifold Brep.

Non-Manifold breps have at least one edge that is shared among three or more faces. This is normally used when modeling for analysis.

Use the command “NonmanifoldMerge” to create a non-manifold Brep in Rhino of the model. This is like a Boolean Union of the two shapes, but allows for non-manifold results.

Problemsurface-non-manifold.3dm (233.5 KB)

1 Like

Thanks for the answer! NonmanifoldMerge is what I needed since I want the mesh to be shared between the inner and outer blocks

This would have been very useful if my problem is simple, but i’m planning to scale up to more complicated geometries.
Thanks for the tip though!

Hi Scott,
Great explanation! NonmanifoldMerge was exactly what I needed!
Thank you!

Also, I have not tried it, but this also might working using Grasshopper to control the hierarchy:

I was thinking about trying that when I get some time.

1 Like