Good mesh to bad mesh after simple object move


#1

I have some confusion with the “Move” tool within Rhino and why it is causing a mesh that initially has no problems to suddenly generate a mesh with 20 extremely short edges.

For a bit more detail about my process, I import an .STL model of a coronary stent with 610108 polygons, 633319 vertices into Rhino. An initial mesh check from the Mesh repair wizard tool says “This is a good mesh”. There is no degenerate faces, non-manifold edges, naked edges, etc.

Next, I create a multiple point object in space, followed by a polyline that runs through the points (red line in the images below). An axis is also generated for the stent model. The move tool is used to align an end point of the stent axis with an end point of the polyline. The mesh object moves to the correct location, however, after further inspection with the mesh repair wizard, I am given an error saying “this is a bad mesh” and “Mesh has 20 extremely short edges”. The number of polygons and edges remains the same as the initial mesh.

Any thoughts as to why this might be happening? I am hoping to rotate the stent to better align with the polyline and then perform a flow along curve to bend the stent.

I greatly appreciate any advice or ideas of how to correct/avoid this obstacle.
Thanks.

Pre Move


Post Move


(Wim Dekeyser) #2

How far are you moving the object (how many units). From the picture it doesn’t look like it is very far but then again, it could be that there is no problem with displaying a ‘huge’ mesh that is imported but that gets messed up when you translate it.

I guess the best thing to avoid speculation like this is to post a file so that people can try. :slight_smile:


(Willem Derks) #3

Hi benD,

I have seen this type of behaviour as well.
First of all you need to know if it is a problem you have these “extremely short edges”.

Do the “extremely short edges” prevent you from flowing it along a curve?
Am I right to assume you want to bend/flow the stem for visualization purposes only?
Or do you need the stem to be used in any other software and/or 3D print it?

As for why this happens, I assume this is due to floating point errors.
In short it comes down to the limitation in the way computers store numbers, it is such that it cannot represent each number at infinite precision.
What happens when you move the mesh it that the 3D points of the mesh are transformed and in that transformation the distance between two vertices can change just enough to make them close enough to be flagged as “too close”.

For purposes of visualization this should not be a problem.

A way to fix this might be to run the command _MeshRepair, or the command _AlignMeshVertices.
It could very well be the repair tool uses the align tool in the background, and in any case both tools can result in a mesh that is worse than before, with non-manifold edges and degenerate faces.

Another option is to run the command _ReduceMesh to simplyfy the mesh and deal with the super small edges.

Best even would be to post an example file here for others to scrutinize and find good solutions or workarounds.

HTH
-Willem