menno
(Menno Deij - van Rijswijk)
September 18, 2013, 6:54am
1
Expected output:
Old Y-scale: 1.0
Setting to 10.0
New Y-scale: 10.0
Found output:
Old Y-scale: 1.0
Setting to 10.0
New Y-scale: 1.0
Let me know how to change the vertical scale on a viewport from code. This approach does not work…
protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
RhinoApp.WriteLine("Old Y-scale: "+doc.Views.ActiveView.ActiveViewport.DisplayMode.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale);
RhinoApp.WriteLine("Setting to 10.0");
doc.Views.ActiveView.ActiveViewport.DisplayMode.DisplayAttributes.ViewSpecificAttributes.
VerticalViewportScale = 10.0;
RhinoApp.WriteLine("New Y-scale: " + doc.Views.ActiveView.ActiveViewport.DisplayMode.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale);
return Result.Success;
}
dale
(Dale Fugier)
September 26, 2013, 8:27pm
2
How about this:
Rhino.Display.DisplayModeDescription display_mode = Rhino.Display.DisplayModeDescription.GetDisplayMode(doc.Views.ActiveView.ActiveViewport.DisplayMode.Id);
RhinoApp.WriteLine("Old Y-scale: " + display_mode.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale);
RhinoApp.WriteLine("Setting to 10.0");
display_mode.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale = 10.0;
Rhino.Display.DisplayModeDescription.UpdateDisplayMode(display_mode);
RhinoApp.WriteLine("New Y-scale: " + doc.Views.ActiveView.ActiveViewport.DisplayMode.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale);
menno
(Menno Deij - van Rijswijk)
September 28, 2013, 7:12pm
3
Aha! I wil use this as soon as I have the chance. Thanks!
menno
(Menno Deij - van Rijswijk)
October 14, 2013, 8:31am
4
Ok, it’s been over two weeks but I have tested this today and it works.
Thanks @dale for your solution.
Dale,
i would like to see these lines in python. Do you see a chance to make this happen? I am looking for a long time for a analysis function like in IcemSurf. As I went a bit into python now, this could be my next project.
PS. I am still new into that stuff.
Thank you in advance and best regards,
Norbert.
dale
(Dale Fugier)
March 1, 2014, 3:57pm
6
Here you go:
import Rhino as rh
import scriptcontext as sc
def TestViewportScale():
dm_id = sc.doc.Views.ActiveView.ActiveViewport.DisplayMode.Id
dm = rh.Display.DisplayModeDescription.GetDisplayMode(dm_id);
rh.RhinoApp.WriteLine("Old Y-scale: " + dm.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale.ToString());
rh.RhinoApp.WriteLine("Setting to 10.0");
dm.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale = 10.0;
rh.Display.DisplayModeDescription.UpdateDisplayMode(dm);
rh.RhinoApp.WriteLine("New Y-scale: " + sc.doc.Views.ActiveView.ActiveViewport.DisplayMode.DisplayAttributes.ViewSpecificAttributes.VerticalViewportScale.ToString());
if( __name__ == "__main__" ):
TestViewportScale()
1 Like
Thank you very much, Dale. I will go on with that.
Norbert.