Get Internal Naked/Open Mesh Edges

rhinocommon

#1

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


Outer contour curve from mesh
#2

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


#3

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…


#4

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!)?


#5

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