BrepCreateFromLoft Method |
Namespace: Rhino.Geometry
public static Brep[] CreateFromLoft( IEnumerable<Curve> curves, Point3d start, Point3d end, LoftType loftType, bool closed )
Public Shared Function CreateFromLoft ( curves As IEnumerable(Of Curve), start As Point3d, end As Point3d, loftType As LoftType, closed As Boolean ) As Brep()
using System.Linq; using Rhino; using Rhino.Input.Custom; using Rhino.DocObjects; using Rhino.Commands; using Rhino.Geometry; namespace examples_cs { public class LoftCommand : Command { public override string EnglishName { get { return "csLoft"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { // select curves to loft var gs = new GetObject(); gs.SetCommandPrompt("select curves to loft"); gs.GeometryFilter = ObjectType.Curve; gs.DisablePreSelect(); gs.SubObjectSelect = false; gs.GetMultiple(2, 0); if (gs.CommandResult() != Result.Success) return gs.CommandResult(); var curves = gs.Objects().Select(obj => obj.Curve()).ToList(); var breps = Brep.CreateFromLoft(curves, Point3d.Unset, Point3d.Unset, LoftType.Tight, false); foreach (var brep in breps) doc.Objects.AddBrep(brep); doc.Views.Redraw(); return Result.Success; } } }
Imports Rhino Imports Rhino.Input.Custom Imports Rhino.DocObjects Imports Rhino.Commands Imports System.Collections.Generic Imports Rhino.Geometry Namespace examples_vb Public Class LoftCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbLoft" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As Rhino.Commands.RunMode) As Result ' select curves to loft Dim gs = New GetObject() gs.SetCommandPrompt("select curves to loft") gs.GeometryFilter = ObjectType.Curve gs.DisablePreSelect() gs.SubObjectSelect = False gs.GetMultiple(2, 0) If gs.CommandResult() <> Result.Success Then Return gs.CommandResult() End If Dim curves = New List(Of Curve)() For Each obj As ObjRef In gs.Objects() curves.Add(obj.Curve()) Next Dim breps = Rhino.Geometry.Brep.CreateFromLoft(curves, Point3d.Unset, Point3d.Unset, LoftType.Tight, False) For Each brep As Brep In breps doc.Objects.AddBrep(brep) Next doc.Views.Redraw() Return Result.Success End Function End Class End Namespace
import rhinoscriptsyntax as rs def RunCommand(): crvids = rs.GetObjects(message="select curves to loft", filter=rs.filter.curve, minimum_count=2) if not crvids: return rs.AddLoftSrf(object_ids=crvids, loft_type = 3) #3 = tight if __name__ == "__main__": RunCommand()