GetBaseClassAddOption Method (String) |
Namespace: Rhino.Input.Custom
using System.Collections.Generic; using Rhino.Display; 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()