Zoom to Object
Zoom to a Selected Object
partial class Examples
{
public static Rhino.Commands.Result ZoomToObject(Rhino.RhinoDoc doc)
{
Rhino.DocObjects.ObjRef rhObject;
var rc = Rhino.Input.RhinoGet.GetOneObject("Select object to zoom", false, Rhino.DocObjects.ObjectType.None, out rhObject);
if (rc != Rhino.Commands.Result.Success)
return rc;
var obj = rhObject.Object();
var view = doc.Views.ActiveView;
if (obj == null || view == null)
return Rhino.Commands.Result.Failure;
var bbox = obj.Geometry.GetBoundingBox(true);
const double pad = 0.05; // A little padding...
double dx = (bbox.Max.X - bbox.Min.X) * pad;
double dy = (bbox.Max.Y - bbox.Min.Y) * pad;
double dz = (bbox.Max.Z - bbox.Min.Z) * pad;
bbox.Inflate(dx, dy, dz);
view.ActiveViewport.ZoomBoundingBox(bbox);
view.Redraw();
return Rhino.Commands.Result.Success;
}
}
import Rhino
import scriptcontext
import System
def ZoomToObject():
rc, rhobject = Rhino.Input.RhinoGet.GetOneObject("Select object to zoom", False, System.Enum.Parse(Rhino.DocObjects.ObjectType, "None"))
if rc != Rhino.Commands.Result.Success: return
obj = rhobject.Object()
view = scriptcontext.doc.Views.ActiveView
if not obj or not view: return
bbox = obj.Geometry.GetBoundingBox(True)
pad = 0.05 #A little padding...
dx = (bbox.Max.X - bbox.Min.X) * pad
dy = (bbox.Max.Y - bbox.Min.Y) * pad
dz = (bbox.Max.Z - bbox.Min.Z) * pad
bbox.Inflate(dx, dy, dz);
view.ActiveViewport.ZoomBoundingBox(bbox)
view.Redraw()
if __name__=="__main__":
ZoomToObject()
