partialclassExamples{/// <summary>/// Generate a layout with a single detail view that zooms to a list of objects/// </summary>/// <param name="doc"></param>/// <returns></returns>publicstaticRhino.Commands.ResultAddLayout(Rhino.RhinoDoc doc){
doc.PageUnitSystem=Rhino.UnitSystem.Millimeters;var page_views = doc.Views.GetPageViews();int page_number =(page_views==null)?1: page_views.Length+1;var pageview = doc.Views.AddPageView(string.Format("A0_{0}",page_number),1189,841);if( pageview!=null){Rhino.Geometry.Point2d top_left =newRhino.Geometry.Point2d(20,821);Rhino.Geometry.Point2d bottom_right =newRhino.Geometry.Point2d(1169,20);var detail = pageview.AddDetailView("ModelView", top_left, bottom_right,Rhino.Display.DefinedViewportProjection.Top);if(detail !=null){
pageview.SetActiveDetail(detail.Id);
detail.Viewport.ZoomExtents();
detail.DetailGeometry.IsProjectionLocked=true;
detail.DetailGeometry.SetScale(1, doc.ModelUnitSystem,10, doc.PageUnitSystem);// Commit changes tells the document to replace the document's detail object// with the modified one that we just adjusted
detail.CommitChanges();}
pageview.SetPageAsActive();
doc.Views.ActiveView= pageview;
doc.Views.Redraw();returnRhino.Commands.Result.Success;}returnRhino.Commands.Result.Failure;}}
importRhinoimport scriptcontext
# Generate a layout with a single detail view that zooms# to a list of objectsdefAddLayout():
scriptcontext.doc.PageUnitSystem=Rhino.UnitSystem.Millimeters
page_views = scriptcontext.doc.Views.GetPageViews()
page_number =1if page_views: page_number =len(page_views)+1
pageview = scriptcontext.doc.Views.AddPageView("A0_{0}".format(page_number),1189,841)if pageview:
top_left =Rhino.Geometry.Point2d(20,821)
bottom_right =Rhino.Geometry.Point2d(1169,20)
detail = pageview.AddDetailView("ModelView", top_left, bottom_right,Rhino.Display.DefinedViewportProjection.Top)if detail:
pageview.SetActiveDetail(detail.Id)
detail.Viewport.ZoomExtents()
detail.DetailGeometry.IsProjectionLocked=True
detail.DetailGeometry.SetScale(1, scriptcontext.doc.ModelUnitSystem,10, scriptcontext.doc.PageUnitSystem)# Commit changes tells the document to replace the document's detail object# with the modified one that we just adjusted
detail.CommitChanges()
pageview.SetPageAsActive()
scriptcontext.doc.Views.ActiveView= pageview
scriptcontext.doc.Views.Redraw()if __name__=="__main__":AddLayout()
PartialClassExamples''' <summary>''' Generate a layout with a single detail view that zooms to a list of objects''' </summary>''' <param name="doc"></param>''' <returns></returns>PublicSharedFunctionAddLayout(doc AsRhino.RhinoDoc)AsRhino.Commands.Result
doc.PageUnitSystem=Rhino.UnitSystem.MillimetersDim page_views = doc.Views.GetPageViews()Dim page_number AsInteger=If((page_views IsNothing),1, page_views.Length+1)Dim pageview = doc.Views.AddPageView(String.Format("A0_{0}", page_number),1189,841)If pageview IsNotNothingThenDim top_left AsNewRhino.Geometry.Point2d(20,821)Dim bottom_right AsNewRhino.Geometry.Point2d(1169,20)Dim detail = pageview.AddDetailView("ModelView", top_left, bottom_right,Rhino.Display.DefinedViewportProjection.Top)If detail IsNotNothingThen
pageview.SetActiveDetail(detail.Id)
detail.Viewport.ZoomExtents()
detail.DetailGeometry.IsProjectionLocked=True
detail.DetailGeometry.SetScale(1, doc.ModelUnitSystem,10, doc.PageUnitSystem)' Commit changes tells the document to replace the document's detail object' with the modified one that we just adjusted
detail.CommitChanges()EndIf
pageview.SetPageAsActive()
doc.Views.ActiveView= pageview
doc.Views.Redraw()ReturnRhino.Commands.Result.SuccessEndIfReturnRhino.Commands.Result.FailureEndFunctionEndClass