Get Internal Naked/Open Mesh Edges

Hi All,

Before I get too into this, I just wanted to check that I’m not missing something obvious in RhinoCommon:

I am trying to identify open/naked internal mesh edges. That is, the ones identified as Mesh Edge in Display Modes > Objects > Meshes, as seen here in magenta:

180424_IdentifyInternalOpenMeshEdges_00.gh (5.0 KB)
180424_IdentifyInternalOpenMeshEdges_00.3dm (211.2 KB)

I’ve looked into the mesh TopologyEdges without much luck, but assume this might be the right tree to bark up?

Cheers,

Anders

in Advanced you should separate all mesh-pieces:
Mesh.SplitDisjointPieces

not sure if a list of naked edges already exists.
you could check the List of all Edges and check the length of the connected faces:
GetConnectedFaces
will return an array of all faces associated with the Edge - if the length of this array is only 1 it is a naked edge.

maybe this helps.

best

tom

This (the link seems to be broken) method does not work when the naked vertices/open vertices are coincident (such as with this case):

I did try this during my fiddling about (should have mentioned, my bad), and it does not appear to work either:

180424_IdentifyInternalOpenMeshEdges_01.gh (148.1 KB)

Cheers…

Which of course ExplodeAtUnweldedEdges does (doh!):

However, this still does not identify internal open edges. I did come up with some methods for trimming each of the naked perimeters against the overall mesh perimeter (using sets on the edge elements):

However, it still feels like I’m missing something here, being that the Rhino Display Modes are capable of identifying these edges already (and fast!)?

not sure, but it might be some stuff linked to Display Modes / and maybe to OpenGL functionality:
VisualAnalysisMode.RhinoEdgeAnalysisModeId Property
sorry if i can t help any further
best
tom

1 Like