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;
}
}
Partial Friend 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 Shared Function AdvancedDisplay(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result
' Use the display attributes manager to build a list of display modes.
' Note, these are copies of the originals...
Dim display_modes() As DisplayModeDescription = DisplayModeDescription.GetDisplayModes()
If display_modes Is Nothing OrElse display_modes.Length<1 Then
Return Rhino.Commands.Result.Failure
End If
' Construct an options picker so the user can pick which
' display mode they want modified
Dim go As New Rhino.Input.Custom.GetOption()
go.SetCommandPrompt("Display mode to modify mesh thickness")
Dim opt_list As New List(Of Integer)()
For i As Integer = 0 To display_modes.Length - 1
Dim english_name As String = 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(".", "")
Dim index As Integer = go.AddOption(english_name)
opt_list.Add(index)
Next i
' Get the command option
go.Get()
If go.CommandResult() <> Rhino.Commands.Result.Success Then
Return go.CommandResult()
End If
Dim selected_index As Integer = go.Option().Index
Dim selected_description As DisplayModeDescription = Nothing
For i As Integer = 0 To opt_list.Count - 1
If opt_list(i)=selected_index Then
selected_description = display_modes(i)
Exit For
End If
Next i
' Validate...
If selected_description Is Nothing Then
Return Rhino.Commands.Result.Failure
End If
' 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
End Function
End Class
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()