Get rid of small surfaces in reverse engineering pipeline?

Hi there, so lovely that Rhino 7 has nice functionalities of reverse engineering complex objects.

My task

I am new to Rhino, and I am trying to turn very dense triangular meshes (from medical images) into CAD geometry. Raw meshs are watertight and they are extremely dense. I will assemble several parts and then tetra-remesh them using other meshers for FEA. In my down-stream simulation, I need more control on boundary partitioning of both faces and edges, so I want to have as few as possible small surfaces. So I am seeking for your advice to either prevent generating small surfaces or merge existing narrow surfaces into larger ones.

My challenge and where I am

The QuadRemesh → toSubD → toNURBS flow is promising but the NURBS object has some very narrow surfaces that should be merged into its surrounding ones.
So I am struggling in manually merging small pieces into larger ones whilst let them joined as a closed polysurface/surface.

I noticed that making some creases in SubD prevents some extremely tiny surfaces in NURBS, but some narrow surfaces still need to be fixed, see the picture as an example. I also uploaded my file. For the remaining narrow ones I tried two approaches.

  1. MergeSrf and then JoinEdges. But eventually the triplet-surfaces that form Y-shape edges cannot be merged, I guess it is because their isocurves do not match. Also, MergeSrf with Smooth = Yes makes a gap between surfaces and I have to fix it using JoinEdges.
  2. ExtractWireframe from these small surfaces, or remesh them to get a dense curve network and then Patch them. This method generates better results but sometimes it does not work well for highly curved surfaces because of incorrect trimming, and some parameter tuning is needed.

I am wondering if there are better methods (less manual work or fewer shape changes) to get rid of small surfaces? Also, vertices where two or more curves cross through are bad because they will lead to small tet-elements nearby. Thanks.
bone.3dm (6.3 MB)

Let me explain the basics of finite element analysis (FEA) programs and CAD.

FEA programs do not need high accuracy input because their internal accuracy is low. As far as I know, all FEA programs accept meshes as input. If your FEA program accepts meshes, the only practicable solution is converting your SubD to mesh and then using ReduceMesh command to simplify the mesh.

Surfaces are extremely accurate, but they contain astronomical number of control points when you force them to represent complex shapes. Polysurfaces are equally accurate and can represent complex shapes with moderate number of control points, but they are difficult to edit. SubDs are slightly less accurate, but they are easy to edit and can represent complex shapes with small number of control points.

1 Like

The FEA software supports importing and editing stl meshes. I was able to assemble parts and go further previously.

Downsides of working with meshes are that fixing topological errors was tedious because it is a very complex multi-domain biological model, hard to deform shapes, hard to combine with other CAD models (especially, for example, tightening a CAD wristband around a wrist mesh), and mesh boolean operations introduced errors (I do not understand but they did), and more.

All these make it hard to reuse meshes. So I would like to build a CAD model first, then mesh it, and import the mesh to FEA software. In fact, the current QuadRemesh flow works already and I just want to have more control on boundary partitioning.