RhinoCommon API
MeshGetNakedEdges Method |
Returns all edges of a mesh that are considered "naked" in the
sense that the edge only has one face.
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll)


using Rhino; using Rhino.Commands; using Rhino.Input.Custom; using Rhino.DocObjects; namespace examples_cs { public class DupMeshBoundaryCommand : Command { public override string EnglishName { get { return "csDupMeshBoundary"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var gm = new GetObject(); gm.SetCommandPrompt("Select open mesh"); gm.GeometryFilter = ObjectType.Mesh; gm.GeometryAttributeFilter = GeometryAttributeFilter.OpenMesh; gm.Get(); if (gm.CommandResult() != Result.Success) return gm.CommandResult(); var mesh = gm.Object(0).Mesh(); if (mesh == null) return Result.Failure; var polylines = mesh.GetNakedEdges(); foreach (var polyline in polylines) { doc.Objects.AddPolyline(polyline); } return Result.Success; } } }
Imports Rhino Imports Rhino.Commands Imports Rhino.Input.Custom Imports Rhino.Geometry Imports Rhino.DocObjects Namespace examples_vb Public Class DupMeshBoundaryCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbDupMeshBoundary" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim gm = New GetObject() gm.SetCommandPrompt("Select open mesh") gm.GeometryFilter = ObjectType.Mesh gm.GeometryAttributeFilter = GeometryAttributeFilter.OpenMesh gm.[Get]() If gm.CommandResult() <> Result.Success Then Return gm.CommandResult() End If Dim mesh = gm.[Object](0).Mesh() If mesh Is Nothing Then Return Result.Failure End If Dim polylines = mesh.GetNakedEdges() For Each polyline As Polyline In polylines doc.Objects.AddPolyline(polyline) Next Return Result.Success End Function End Class End Namespace
Python
from Rhino.Commands import * from Rhino.Input.Custom import * from Rhino.DocObjects import * from scriptcontext import doc def RunCommand(): gm = GetObject() gm.SetCommandPrompt("Select open mesh") gm.GeometryFilter = ObjectType.Mesh gm.GeometryAttributeFilter = GeometryAttributeFilter.OpenMesh gm.Get() if gm.CommandResult() != Result.Success: return gm.CommandResult() mesh = gm.Object(0).Mesh() if mesh == None: return Result.Failure polylines = mesh.GetNakedEdges() for polyline in polylines: doc.Objects.AddPolyline(polyline) doc.Views.Redraw() return Result.Success if __name__ == "__main__": RunCommand()

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.14