Brep from Curve Bounding Box
Demonstrates how to create a valid Brep from a curve's bounding box.
partial class Examples
{
public static Result BrepFromCurveBBox(RhinoDoc doc)
{
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;
}
}
import Rhino
from Rhino.Geometry import Brep
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())
