Advanced Display Settings
Demonstrates how to change advanced display settings in Rhino where the mesh wireframe thickness (in pixels) is modified.
partial class Examples
{
// The following example code demonstrates how to modify advanced display settings using
// the Rhino SDK. In this example, a display mode's mesh wireframe thickness (in pixels)
// will be modified.
public static Rhino.Commands.Result AdvancedDisplay(Rhino.RhinoDoc doc)
{
// Use the display attributes manager to build a list of display modes.
// Note, these are copies of the originals...
DisplayModeDescription[] display_modes = DisplayModeDescription.GetDisplayModes();
if( display_modes==null || display_modes.Length<1 )
return Rhino.Commands.Result.Failure;
// Construct an options picker so the user can pick which
// display mode they want modified
Rhino.Input.Custom.GetOption go = new Rhino.Input.Custom.GetOption();
go.SetCommandPrompt("Display mode to modify mesh thickness");
List<int> opt_list = new List<int>();
for( int i=0; i<display_modes.Length; i++ )
{
string english_name = display_modes[i].EnglishName;
english_name = english_name.Replace("_", "");
english_name = english_name.Replace(" ", "");
english_name = english_name.Replace("-", "");
english_name = english_name.Replace(",", "");
english_name = english_name.Replace(".", "");
int index = go.AddOption(english_name);
opt_list.Add(index);
}
// Get the command option
go.Get();
if( go.CommandResult() != Rhino.Commands.Result.Success )
return go.CommandResult();
int selected_index = go.Option().Index;
DisplayModeDescription selected_description = null;
for( int i=0; i<opt_list.Count; i++ )
{
if( opt_list[i]==selected_index )
{
selected_description = display_modes[i];
break;
}
}
// Validate...
if( selected_description==null )
return Rhino.Commands.Result.Failure;
// Modify the desired display mode. In this case, we
// will just set the mesh wireframe thickness to zero.
selected_description.DisplayAttributes.MeshSpecificAttributes.MeshWireThickness = 0;
// Use the display attributes manager to update the display mode.
DisplayModeDescription.UpdateDisplayMode(selected_description);
// Force the document to regenerate.
doc.Views.Redraw();
return Rhino.Commands.Result.Success;
}
}
import Rhino
import scriptcontext
# The following example demonstrates how to modify advanced display settings
# using RhinoCommon. In this example, a display mode's mesh wireframe thickness
# (in pixels) will be modified.
def AdvancedDisplay():
# Use the display attributes manager to build a list of display modes.
# Note, these are copies of the originals...
display_modes = Rhino.Display.DisplayModeDescription.GetDisplayModes()
if not display_modes: return Rhino.Commands.Result.Failure
# Construct an options picker so the user can pick which
# display mode they want modified
go = Rhino.Input.Custom.GetOption()
go.SetCommandPrompt("Display mode to modify mesh thickness")
opt_list = []
for i, mode in enumerate(display_modes):
english_name = mode.EnglishName
english_name = english_name.translate(None, "_ -,.")
opt_list.append( go.AddOption(english_name) )
# Get the command option
go.Get()
if go.CommandResult()!=Rhino.Commands.Result.Success:
return go.CommandResult();
selected_index = go.Option().Index
selected_description = None
for i,option in enumerate(opt_list):
if option==selected_index:
selected_description = display_modes[i]
break
# Validate...
if not selected_description: return Rhino.Commands.Result.Failure
# Modify the desired display mode. In this case, we
# will just set the mesh wireframe thickness to zero.
selected_description.DisplayAttributes.MeshSpecificAttributes.MeshWireThickness = 0
# Use the display attributes manager to update the display mode.
Rhino.Display.DisplayModeDescription.UpdateDisplayMode(selected_description)
# Force the document to regenerate.
scriptcontext.doc.Views.Redraw()
return Rhino.Commands.Result.Success
if __name__=="__main__":
AdvancedDisplay()
