GetPoint.DrawLineFromPoint
Public Class
Use DrawLineFromPoint() if you want a dynamic line drawn from a point to the point being picked.
Namespace: Rhino.Input.Custom
Assembly: RhinoCommon (in RhinoCommon.dll)
**Since:**5.0
Syntax
public void DrawLineFromPoint( Point3d startPoint, bool showDistanceInStatusBar)
Parameters
startPoint
Type: Rhino.Geometry.Point3d
The line is drawn from startPoint to the point being picked. If the base point has not been set, then it is set to startPoint.
showDistanceInStatusBar
Type:System.Boolean
if true, the distance from the basePoint to the point begin picked is shown in the status bar.
Remarks
Calling DrawLineFromPoint automatically enables drawing the line. Use EnableDrawLineFromPoint() to toggle the line drawing state.
Examples
using System;
partial class Examples{ public static Rhino.Commands.Result AddLine(Rhino.RhinoDoc doc) { Rhino.Input.Custom.GetPoint gp = new Rhino.Input.Custom.GetPoint(); gp.SetCommandPrompt("Start of line"); gp.Get(); if (gp.CommandResult() != Rhino.Commands.Result.Success) return gp.CommandResult();
Rhino.Geometry.Point3d pt_start = gp.Point();
gp.SetCommandPrompt("End of line"); gp.SetBasePoint(pt_start, false); gp.DrawLineFromPoint(pt_start, true); gp.Get(); if (gp.CommandResult() != Rhino.Commands.Result.Success) return gp.CommandResult();
Rhino.Geometry.Point3d pt_end = gp.Point(); Rhino.Geometry.Vector3d v = pt_end - pt_start; if (v.IsTiny(Rhino.RhinoMath.ZeroTolerance)) return Rhino.Commands.Result.Nothing;
if (doc.Objects.AddLine(pt_start, pt_end) != Guid.Empty) { doc.Views.Redraw(); return Rhino.Commands.Result.Success; } return Rhino.Commands.Result.Failure; }}
import Rhinoimport scriptcontextimport System.Guid
def AddLine(): gp = Rhino.Input.Custom.GetPoint() gp.SetCommandPrompt("Start of line") gp.Get() if gp.CommandResult()!=Rhino.Commands.Result.Success: return gp.CommandResult() pt_start = gp.Point()
gp.SetCommandPrompt("End of line") gp.SetBasePoint(pt_start, False) gp.DrawLineFromPoint(pt_start, True) gp.Get() if gp.CommandResult() != Rhino.Commands.Result.Success: return gp.CommandResult() pt_end = gp.Point() v = pt_end - pt_start if v.IsTiny(Rhino.RhinoMath.ZeroTolerance): return Rhino.Commands.Result.Nothing
id = scriptcontext.doc.Objects.AddLine(pt_start, pt_end) if id!=System.Guid.Empty: scriptcontext.doc.Views.Redraw() return Rhino.Commands.Result.Success return Rhino.Commands.Result.Failure
if __name__=="__main__": AddLine()