P_Rhino_Geometry_Hatch_PatternIndex - mcneel/rhinocommon-api-docs GitHub Wiki
Gets or sets the index of the pattern in the document hatch pattern table.
Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll) Version: Rhino 6.0
C#
public int PatternIndex { get; set; }
VB
Public Property PatternIndex As Integer
Get
Set
Type: Int32
VB
Imports Rhino
Imports Rhino.DocObjects
Imports Rhino.Commands
Imports Rhino.Input
Imports Rhino.Input.Custom
Namespace examples_vb
Public Class ReplaceHatchPatternCommand
Inherits Rhino.Commands.Command
Public Overrides ReadOnly Property EnglishName() As String
Get
Return "vbReplaceHatchPattern"
End Get
End Property
Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result
Dim obj_refs As ObjRef() = Nothing
Dim rc = RhinoGet.GetMultipleObjects("Select hatches to replace", False, ObjectType.Hatch, obj_refs)
If rc <> Result.Success OrElse obj_refs Is Nothing Then
Return rc
End If
Dim gs = New GetString()
gs.SetCommandPrompt("Name of replacement hatch pattern")
gs.AcceptNothing(False)
gs.[Get]()
If gs.CommandResult() <> Result.Success Then
Return gs.CommandResult()
End If
Dim hatch_name = gs.StringResult()
Dim pattern_index = doc.HatchPatterns.Find(hatch_name, True)
If pattern_index < 0 Then
RhinoApp.WriteLine("The hatch pattern ""{0}"" not found in the document.", hatch_name)
Return Result.[Nothing]
End If
For Each obj_ref As ObjRef In obj_refs
Dim hatch_object = TryCast(obj_ref.[Object](), HatchObject)
If hatch_object.HatchGeometry.PatternIndex <> pattern_index Then
hatch_object.HatchGeometry.PatternIndex = pattern_index
hatch_object.CommitChanges()
End If
Next
doc.Views.Redraw()
Return Result.Success
End Function
End Class
End Namespace
C#
using Rhino;
using Rhino.DocObjects;
using Rhino.Commands;
using Rhino.Input;
using Rhino.Input.Custom;
namespace examples_cs
{
public class ReplaceHatchPatternCommand : Rhino.Commands.Command
{
public override string EnglishName
{
get { return "csReplaceHatchPattern"; }
}
protected override Result RunCommand(RhinoDoc doc, RunMode mode)
{
ObjRef[] obj_refs;
var rc = RhinoGet.GetMultipleObjects("Select hatches to replace", false, ObjectType.Hatch, out obj_refs);
if (rc != Result.Success || obj_refs == null)
return rc;
var gs = new GetString();
gs.SetCommandPrompt("Name of replacement hatch pattern");
gs.AcceptNothing(false);
gs.Get();
if (gs.CommandResult() != Result.Success)
return gs.CommandResult();
var hatch_name = gs.StringResult();
var pattern_index = doc.HatchPatterns.Find(hatch_name, true);
if (pattern_index < 0)
{
RhinoApp.WriteLine("The hatch pattern \"{0}\" not found in the document.", hatch_name);
return Result.Nothing;
}
foreach (var obj_ref in obj_refs)
{
var hatch_object = obj_ref.Object() as HatchObject;
if (hatch_object.HatchGeometry.PatternIndex != pattern_index)
{
hatch_object.HatchGeometry.PatternIndex = pattern_index;
hatch_object.CommitChanges();
}
}
doc.Views.Redraw();
return Result.Success;
}
}
}
Python
from Rhino import *
from Rhino.DocObjects import *
from Rhino.Commands import *
from Rhino.Input import *
from Rhino.Input.Custom import *
from scriptcontext import doc
def RunCommand():
rc, obj_refs = RhinoGet.GetMultipleObjects("Select hatches to replace", False, ObjectType.Hatch)
if rc <> Result.Success or obj_refs == None:
return rc
gs = GetString()
gs.SetCommandPrompt("Name of replacement hatch pattern")
gs.AcceptNothing(False)
gs.Get()
if gs.CommandResult() <> Result.Success:
return gs.CommandResult()
hatch_name = gs.StringResult()
pattern_index = doc.HatchPatterns.Find(hatch_name, True)
if pattern_index < 0:
RhinoApp.WriteLine("The hatch pattern \"{0}\" not found in the document.", hatch_name)
return Result.Nothing
for obj_ref in obj_refs:
hatch_object = obj_ref.Object()
if hatch_object.HatchGeometry.PatternIndex <> pattern_index:
hatch_object.HatchGeometry.PatternIndex = pattern_index
hatch_object.CommitChanges()
doc.Views.Redraw()
return Result.Success
if __name__ == "__main__":
RunCommand()
Supported in: 6.0.16224.21491, 5D58w