M_Rhino_Geometry_Mesh_GetNakedEdges - mcneel/rhinocommon-api-docs GitHub Wiki
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
C#
public Polyline[] GetNakedEdges()
VB
Public Function GetNakedEdges As Polyline()
Type: Polyline[]
An array of polylines, or null on error.
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()
Supported in: 6.0.16224.21491, 5D58w