The mysteries of mesh faults


I’ve had issues in the past where I’ve saved a model as a .stl with no apparent issues only to find that when I open the file in minimagics to do a quick check it reports errors (multiple shells and the like). Usually I’d just open the file in netfabb studio basic and do an automatic repair without really knowing what the fault is.

Recently I’ve done a ring that Rhino sees as one shell but minimagics sees as 13! Taking it into netfabb and doing an auto repair does the trick (as usual) However, can someone tell me why Rhino isn’t seeing the issues? netfabb reports 16 holes in this example.

It doesn’t look like I can add attachments to posts so the file can be downloaded from the HERE It’s 10MB

Thanks for any help etc.

(Willem Derks) #2

Hi dougiekinnear,

I see nothing wrong with this mesh other than 4 instances of self intersections:.
There are 4 instances where the mesh apparently intersects itself (at the spot marked with the x in the image and the other 3 symmetrical positions)

Closeup of the selfintersection and file with isolated part of the mesh:selfintersect.3dm (55.1 KB)

It could very well be netfabb interprets this as holes, however it does not account for the odd number of 13 shells minimagics sees.

Does either minimagics or netfabb indicate where these errors are? Only then will you be able to know what features in this mesh they think are faulty.

The way I found these selfintersection is by means of the testcommand testmsx in Rhino5; it’s an undocumented test command not meant for users to use as a reliable tool and is only for use at you own risk. It can however help track this type of issues down.


ninja edit: @Pascal I have seen this type of self intersections on meshes as well. Produced by valid closed polysurfaces. I think it wise to see if the mesher can incorporate procedures to prevent these mesh self-intersections, as hey can be problematic downstream.


Hi Willem

Thanks for the response. minimagics shows nothing, however, netfabb did highlight errors in the areas you show. I think I might try a boolean union in that area rather than joining surfaces to see if it makes a difference. Both programmes definiatly call the errors holes though rather than intersecting surfaces. I’ll also try the test command as well.

Thanks again

All the best


(Pascal Golay) #4

Hi Dougie- can you post or link to the Rhino object before meshing?




Hi Pascal - it’s in the zip file HERE I haven’t had time to try boolean union on the model yet. Maybe tomorrow. Also my old laptop couldn’t cope with the testmsx command - went out of memory.

Cheers for having a look


(Pascal Golay) #6

Hi Dougie- please try ShrinkTrimmedSrf on the object, then Mesh- does that mesh work any better?



Hi pascal - No, still shows as 13 shells in minimagics. Also read the netfabb error report wrongly before. It also shows 13 shells and 33 holes!

(Pascal Golay) #8

yeah… I got somewhat better results but in messing with this more not good ones. You might try, in addition to shrinking, Explode, Reparameterize (Automatic) Join. Here this allows the mesh to be made with no non-manifolds, though there are some degenerate faces still. I’ll send this to the developer for a look.




Thanks Pascal, FYI boolean unioning gives the same result as splitting and joining the surfaces. I’ll follow the issue tracking.

All the best