RhinoCommon API
GetPointDrawLineFromPoint Method |
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)

public void DrawLineFromPoint( Point3d startPoint, bool showDistanceInStatusBar )
Public Sub DrawLineFromPoint ( startPoint As Point3d, showDistanceInStatusBar As Boolean )
Parameters
- startPoint
- Type: Rhino.GeometryPoint3d
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: SystemBoolean
if true, the distance from the basePoint to the point begin picked is shown in the status bar.

Calling DrawLineFromPoint automatically enables drawing the line. Use
EnableDrawLineFromPoint() to toggle the line drawing state.

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; } }
Partial Class Examples Public Shared Function AddLine(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result Dim gp As New Rhino.Input.Custom.GetPoint() gp.SetCommandPrompt("Start of line") gp.Get() If gp.CommandResult() <> Rhino.Commands.Result.Success Then Return gp.CommandResult() End If Dim pt_start As Rhino.Geometry.Point3d = 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 Then Return gp.CommandResult() End If Dim pt_end As Rhino.Geometry.Point3d = gp.Point() Dim v As Rhino.Geometry.Vector3d = pt_end - pt_start If v.IsTiny(Rhino.RhinoMath.ZeroTolerance) Then Return Rhino.Commands.Result.[Nothing] End If If doc.Objects.AddLine(pt_start, pt_end) <> Guid.Empty Then doc.Views.Redraw() Return Rhino.Commands.Result.Success End If Return Rhino.Commands.Result.Failure End Function End Class
Python
import Rhino import scriptcontext import 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()

Rhino for Mac
Supported in: 5.4Rhino for Windows
Supported in: 6.14