Mesh.GetNakedEdges Method

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)
Syntax
public Polyline[] GetNakedEdges()
Public Function GetNakedEdges As Polyline()

Return Value

Type: Polyline
An array of polylines, or null on error.
Examples
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()
Version Information

Rhino for Mac

Supported in: 5.4

Rhino for Windows

Supported in: 6.14
See Also