Import a valid mesh turns out mesh invalid

Hi,
I import a valid mesh into Rhino 6, but its vertex count is increased and become invalid:


MeshRepair can not fix this problem, why did this happen?

Here is the mesh file:
w25r32.25ping-geo-smooth20k.obj (2.1 MB)

Rhino 8

What units are you using?

The mesh has three naked edge loops.

One is very short, just 0.03 units:

I would clean up this detail before doing anything else with the mesh.

What units are you using?

the Units I used is same to you.

The mesh has three naked edge loops.

Basically the raw mesh should be a 2-manifold and exists two boundary loops. it is valid in MeshLab:

But when I import it into Rhino, mesh->IsValid() returns true. Then I export it from Rhino to MeshLab, it’s becomes invalid:

I would clean up this detail before doing anything else with the mesh.

I would like to do that too.
By browsing the .obj raw file, it only shows 11963 lines of vertex coordinates while it turns out 11982 vertices after I imported it into Rhino.

I have no idea what Rhino has done during importing stage, so that I can’t do mesh cleanning properly.

Is there any automatic mesh cleanning exists during importing stage?

Just fix the error manually? Or do you have hundreds of these?

do you have hundreds of these?

yes. To ensuring subsequent algorithms, this problem need to be under control.

When I used custome function to import mesh, my algorithm goes well.
but when I use Rhino to import mesh, the algorithm can not.

There are also another relative post I create:

Glad you linked the topics.

I think it’s a tolerance issue and I can’t help you.

Thank you Martin.
At least I know that the problem may caused by tolerance.

Just to let you know, Artec Studio also shows 3 holes. The 0.03 mm hole is touching one of the large holes and if I attempt to close the small hole, the command also closes one of the large holes. I think this issue has nothing to do with Rhino and the mistake should be eliminated where the mesh was created?

Thanks Martin.

It seems that the 0.03mm hole is belong to one of the boundary loops In MeshLab.

I think I have figured out the reason.
The quality of face connectivity surrounding the 0.03mm hole is too bad, which caused weird topology information genenration.The created mesh maybe still need remeshing.

But why this area be recognized as a hole? It just some identical vertices and edges at boundary like this meshErrorTorus.obj (259.2 KB) . Is the reason of tolerance?

You can run the command _AlignVertices

It eliminates the problematic hole.

Command: AlignVertices
Select option ( DistanceToAdjust=0.01 AverageVerticesToAdjust=Yes OnlyNakeds=No ): d
Base point for distance <0.01000>: 0.007
Select option ( DistanceToAdjust=0.007 AverageVerticesToAdjust=Yes OnlyNakeds=No )
42 vertices were adjusted.

1 Like