M_Rhino_Geometry_Brep_CreateEdgeSurface - mcneel/rhinocommon-api-docs GitHub Wiki
Constructs a coons patch from 2, 3, or 4 curves.
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll) Version: Rhino 6.0
C#
public static Brep CreateEdgeSurface(
IEnumerable<Curve> curves
)
VB
Public Shared Function CreateEdgeSurface (
curves As IEnumerable(Of Curve)
) As Brep
- curves
- Type: System.Collections.Generic.IEnumerable(Curve)
A list, an array or any enumerable set of curves.
Type: Brep
resulting brep or null on failure.
VB
Imports System.Linq
Imports Rhino
Imports Rhino.Commands
Imports Rhino.DocObjects
Imports Rhino.Geometry
Imports Rhino.Input.Custom
Namespace examples_vb
Public Class EdgeSrfCommand
Inherits Command
Public Overrides ReadOnly Property EnglishName() As String
Get
Return "vbEdgeSrf"
End Get
End Property
Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result
Dim go = New GetObject()
go.SetCommandPrompt("Select 2, 3, or 4 open curves")
go.GeometryFilter = ObjectType.Curve
go.GeometryAttributeFilter = GeometryAttributeFilter.OpenCurve
go.GetMultiple(2, 4)
If go.CommandResult() <> Result.Success Then
Return go.CommandResult()
End If
Dim curves = go.Objects().[Select](Function(o) o.Curve())
Dim brep__1 = Brep.CreateEdgeSurface(curves)
If brep__1 IsNot Nothing Then
doc.Objects.AddBrep(brep__1)
doc.Views.Redraw()
End If
Return Result.Success
End Function
End Class
End Namespace
C#
using System.Linq;
using Rhino;
using Rhino.Commands;
using Rhino.DocObjects;
using Rhino.Geometry;
using Rhino.Input.Custom;
namespace examples_cs
{
public class EdgeSrfCommand : Command
{
public override string EnglishName { get { return "csEdgeSrf"; } }
protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
var go = new GetObject();
go.SetCommandPrompt("Select 2, 3, or 4 open curves");
go.GeometryFilter = ObjectType.Curve;
go.GeometryAttributeFilter = GeometryAttributeFilter.OpenCurve;
go.GetMultiple(2, 4);
if (go.CommandResult() != Result.Success)
return go.CommandResult();
var curves = go.Objects().Select(o => o.Curve());
var brep = Brep.CreateEdgeSurface(curves);
if (brep != null)
{
doc.Objects.AddBrep(brep);
doc.Views.Redraw();
}
return Result.Success;
}
}
}
Python
from Rhino import *
from Rhino.Commands import *
from Rhino.DocObjects import *
from Rhino.Geometry import *
from Rhino.Input.Custom import *
from scriptcontext import doc
def RunCommand():
go = GetObject()
go.SetCommandPrompt("Select 2, 3, or 4 open curves")
go.GeometryFilter = ObjectType.Curve
go.GeometryAttributeFilter = GeometryAttributeFilter.OpenCurve
go.GetMultiple(2, 4)
if go.CommandResult() <> Result.Success:
return go.CommandResult()
curves = [o.Curve() for o in go.Objects()]
brep = Brep.CreateEdgeSurface(curves)
if brep <> None:
doc.Objects.AddBrep(brep)
doc.Views.Redraw()
return Result.Success
if __name__ == "__main__":
RunCommand()
Supported in: 6.0.16224.21491, 5D58w