Orthogonal Mode
Demonstrates how to enable or disable orthogonal mode and its effects.
partial class Examples
{
public static Result Ortho(RhinoDoc doc)
{
var gp = new GetPoint();
gp.SetCommandPrompt("Start of line");
gp.Get();
if (gp.CommandResult() != Result.Success)
return gp.CommandResult();
var start_point = gp.Point();
var original_ortho = ModelAidSettings.Ortho;
if (!original_ortho)
ModelAidSettings.Ortho = true;
gp.SetCommandPrompt("End of line");
gp.SetBasePoint(start_point, false);
gp.DrawLineFromPoint(start_point, true);
gp.Get();
if (gp.CommandResult() != Result.Success)
return gp.CommandResult();
var end_point = gp.Point();
if (ModelAidSettings.Ortho != original_ortho)
ModelAidSettings.Ortho = original_ortho;
doc.Objects.AddLine(start_point, end_point);
doc.Views.Redraw();
return Result.Success;
}
}
Partial Friend Class Examples
Public Shared Function Ortho(ByVal doc As RhinoDoc) As Result
Dim gp = New GetPoint()
gp.SetCommandPrompt("Start of line")
gp.Get()
If gp.CommandResult() <> Result.Success Then
Return gp.CommandResult()
End If
Dim start_point = gp.Point()
Dim original_ortho = ModelAidSettings.Ortho
If Not original_ortho Then
ModelAidSettings.Ortho = True
End If
gp.SetCommandPrompt("End of line")
gp.SetBasePoint(start_point, False)
gp.DrawLineFromPoint(start_point, True)
gp.Get()
If gp.CommandResult() <> Result.Success Then
Return gp.CommandResult()
End If
Dim end_point = gp.Point()
If ModelAidSettings.Ortho IsNot original_ortho Then
ModelAidSettings.Ortho = original_ortho
End If
doc.Objects.AddLine(start_point, end_point)
doc.Views.Redraw()
Return Result.Success
End Function
End Class
from Rhino import *
from Rhino.ApplicationSettings import *
from Rhino.Commands import *
from Rhino.Input.Custom import *
from scriptcontext import doc
def RunCommand():
gp = GetPoint()
gp.SetCommandPrompt("Start of line")
gp.Get()
if gp.CommandResult() != Result.Success:
return gp.CommandResult()
start_point = gp.Point()
original_ortho = ModelAidSettings.Ortho
if not original_ortho:
ModelAidSettings.Ortho = True
gp.SetCommandPrompt("End of line")
gp.SetBasePoint(start_point, False)
gp.DrawLineFromPoint(start_point, True)
gp.Get()
if gp.CommandResult() != Result.Success:
return gp.CommandResult()
end_point = gp.Point()
if ModelAidSettings.Ortho != original_ortho:
ModelAidSettings.Ortho = original_ortho
doc.Objects.AddLine(start_point, end_point)
doc.Views.Redraw()
return Result.Success
if __name__ == "__main__":
RunCommand()