M_Rhino_Geometry_Mesh_GetNakedEdges - mcneel/rhinocommon-api-docs GitHub Wiki

Mesh.GetNakedEdges 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) Version: Rhino 6.0

Syntax

C#

public Polyline[] GetNakedEdges()

VB

Public Function GetNakedEdges As Polyline()

Return Value

Type: Polyline[]
An array of polylines, or null on error.

Examples

VB

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

C#

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;
    }
  }
}

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

Supported in: 6.0.16224.21491, 5D58w

See Also

Reference

Mesh Class
Rhino.Geometry Namespace

⚠️ **GitHub.com Fallback** ⚠️