[System.Runtime.InteropServices.Guid("6F954183-C359-4CEF-94C1-3A108D36B366")] public class BrepFromCurveBBoxCommand : Command { public override string EnglishName { get { return "csBrepFromCurveBBox"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { Rhino.DocObjects.ObjRef objref; var rc = RhinoGet.GetOneObject("Select Curve", false, ObjectType.Curve, out objref); if( rc != Result.Success ) return rc; var curve = objref.Curve(); var view = doc.Views.ActiveView; var plane = view.ActiveViewport.ConstructionPlane(); // Create a construction plane aligned bounding box var bbox = curve.GetBoundingBox(plane); if (bbox.IsDegenerate(doc.ModelAbsoluteTolerance) > 0) { RhinoApp.WriteLine("the curve's bounding box is degenerate (flat) in at least one direction so a box cannot be created."); return Result.Failure; } var brep = Brep.CreateFromBox(bbox); doc.Objects.AddBrep(brep); doc.Views.Redraw(); return Result.Success; } }
<System.Runtime.InteropServices.Guid("A7E8558B-5F4E-426C-9352-BEFFA645AC33")> _ Public Class BrepFromCurveBBoxCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbBrepFromCurveBBox" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim objref As Rhino.DocObjects.ObjRef Dim rc = RhinoGet.GetOneObject("Select Curve", False, Rhino.DocObjects.ObjectType.Curve, objref) If rc <> Result.Success Then Return rc End If Dim curve = objref.Curve() Dim view = doc.Views.ActiveView Dim plane = view.ActiveViewport.ConstructionPlane() ' Create a construction plane aligned bounding box Dim bbox = curve.GetBoundingBox(plane) If bbox.IsDegenerate(doc.ModelAbsoluteTolerance) > 0 Then RhinoApp.WriteLine("the curve's bounding box is degenerate (flat) in at least one direction so a box cannot be created.") Return Result.Failure End If Dim brep__1 = Brep.CreateFromBox(bbox) doc.Objects.AddBrep(brep__1) doc.Views.Redraw() Return Result.Success End Function End Class d Namespace
import Rhino from Rhino.Geometry import * from Rhino.Commands import Result from Rhino.Input import RhinoGet from Rhino.DocObjects import ObjectType import rhinoscriptsyntax as rs from scriptcontext import doc def RunCommand(): rc, objRef = RhinoGet.GetOneObject("Select curve", False, ObjectType.Curve) if rc <> Result.Success: return rc curve = objRef.Curve() if None == curve: return Result.Failure view = doc.Views.ActiveView plane = view.ActiveViewport.ConstructionPlane() # Create a construction plane aligned bounding box bbox = curve.GetBoundingBox(plane) if bbox.IsDegenerate(doc.ModelAbsoluteTolerance) > 0: print "the curve's bounding box is degenerate (flat) in at least one direction so a box cannot be created." return Result.Failure brep = Brep.CreateFromBox(bbox) doc.Objects.AddBrep(brep) doc.Views.Redraw() return Result.Success if __name__ == "__main__": print RunCommand()