I’m working with Rhino V5 and this is the read-out I’m getting when checking my mesh:
Mesh has 28 pairs of faces that intersect each other. Although this does not
necessarily mean that the mesh is bad, it can cause problems if you’re doing mesh boolean operations with it.
Everything else about the mesh is okay.
I’ve used the Trim command on the source polysurface occasionally. When hearing that it could cause these intersections, I’ve exploded the polysurface and rebuilt some problem areas, but that didn’t do the trick.
Is there any way to determine the location of these faces, or better still - repair the mesh?
Hi Anna - in theory, the command draws a line segment at each intersection, so SelCrv after the command will highlight those and you can change the color if that helps locate them. The problem I’ve found is that this command drawn many more lines than are actual intersections - that is, most of the time I cannot find any intersection where a line is drawn… It is a test command and not supported, so there is not much we can do about that at the moment, but I understand the underlying problem of locating and fixing these self intersections, and I’ve pointed it out to the developers… we’ll see.
One possible way is to offset the mesh by a tiny amount and perform an intersection between the original and the offset mesh. Usually this will create polylines around or near the faces which intersect or which do have a large difference in the vertex and face normal directions. The Python script below will do this task, but be warned that it can take some time on large meshes and it can mark false positives as well. You might use _Zoom _Selected after it has found markings and determine visually if there is a mesh intersection or not.
Once you get polylines (marks) inspect your mesh near those areas and try to remove the selfintersections manually, either by deleting mesh faces using the command _DeleteMeshFaces or by collapsing them using _CollapseMeshVertex…
The script has been used mostly on mesh data coming from a laser scanner software. Since you´ve mentioned that your mesh comes from a polysurface, you might invest time and find the real source of the problem in the originating object.
Just to be sure; did you point out the fact that TestMSX is unreliable, or did you point out that it is frustrating and Kafkaesque to read that message and have no way to find those intersections, when apparently the code did find and count them.
It’s like the IRS telling you there is a way to get an extra tax-return, yet not disclosing how
Hi,
the following script shows the edges which intersect face. These edges are added to the document as lines and selected. selectintrsectededge.py (1.0 KB)
g
Hi Gianpaolo, this is great and should be made into a default Rhino command to delete or extract intersecting mesh faces for easier repair. Thanks for posting.
In the latest version of “Rhino Open Projects” http://www.food4rhino.com/project/rp there is a tool which selects vertices of self-intesection edges. You can “fix” the mesh by deleting these vertices (just run the command and press Delete).