RhinoCommon API
GetPointOnDynamicDraw Method |
Default calls the DynamicDraw event.
Namespace: Rhino.Input.Custom
Assembly: RhinoCommon (in RhinoCommon.dll)

protected virtual void OnDynamicDraw( GetPointDrawEventArgs e )
Protected Overridable Sub OnDynamicDraw ( e As GetPointDrawEventArgs )
Parameters
- e
- Type: Rhino.Input.CustomGetPointDrawEventArgs
Current argument for the event.

using Rhino; using Rhino.Geometry; using Rhino.Commands; using Rhino.Input.Custom; namespace examples_cs { public class GetPointDynamicDrawCommand : Command { public override string EnglishName { get { return "csGetPointDynamicDraw"; } } protected override Result RunCommand(RhinoDoc doc, RunMode mode) { var gp = new GetPoint(); gp.SetCommandPrompt("Center point"); gp.Get(); if (gp.CommandResult() != Result.Success) return gp.CommandResult(); var center_point = gp.Point(); if (center_point == Point3d.Unset) return Result.Failure; var gcp = new GetCircleRadiusPoint(center_point); gcp.SetCommandPrompt("Radius"); gcp.ConstrainToConstructionPlane(false); gcp.SetBasePoint(center_point, true); gcp.DrawLineFromPoint(center_point, true); gcp.Get(); if (gcp.CommandResult() != Result.Success) return gcp.CommandResult(); var radius = center_point.DistanceTo(gcp.Point()); var cplane = doc.Views.ActiveView.ActiveViewport.ConstructionPlane(); doc.Objects.AddCircle(new Circle(cplane, center_point, radius)); doc.Views.Redraw(); return Result.Success; } } public class GetCircleRadiusPoint : GetPoint { private Point3d m_center_point; public GetCircleRadiusPoint(Point3d centerPoint) { m_center_point = centerPoint; } protected override void OnDynamicDraw(GetPointDrawEventArgs e) { base.OnDynamicDraw(e); var cplane = e.RhinoDoc.Views.ActiveView.ActiveViewport.ConstructionPlane(); var radius = m_center_point.DistanceTo(e.CurrentPoint); var circle = new Circle(cplane, m_center_point, radius); e.Display.DrawCircle(circle, System.Drawing.Color.Black); } } }
Imports Rhino Imports Rhino.Geometry Imports Rhino.Commands Imports Rhino.Input.Custom Namespace examples_vb Public Class GetPointDynamicDrawCommand Inherits Command Public Overrides ReadOnly Property EnglishName() As String Get Return "vbGetPointDynamicDraw" End Get End Property Protected Overrides Function RunCommand(doc As RhinoDoc, mode As RunMode) As Result Dim gp = New GetPoint() gp.SetCommandPrompt("Center point") gp.[Get]() If gp.CommandResult() <> Result.Success Then Return gp.CommandResult() End If Dim center_point = gp.Point() If center_point = Point3d.Unset Then Return Result.Failure End If Dim gcp = New GetCircleRadiusPoint(center_point) gcp.SetCommandPrompt("Radius") gcp.ConstrainToConstructionPlane(False) gcp.SetBasePoint(center_point, True) gcp.DrawLineFromPoint(center_point, True) gcp.[Get]() If gcp.CommandResult() <> Result.Success Then Return gcp.CommandResult() End If Dim radius = center_point.DistanceTo(gcp.Point()) Dim cplane = doc.Views.ActiveView.ActiveViewport.ConstructionPlane() doc.Objects.AddCircle(New Circle(cplane, center_point, radius)) doc.Views.Redraw() Return Result.Success End Function End Class Public Class GetCircleRadiusPoint Inherits GetPoint Private m_center_point As Point3d Public Sub New(centerPoint As Point3d) m_center_point = centerPoint End Sub Protected Overrides Sub OnDynamicDraw(e As GetPointDrawEventArgs) MyBase.OnDynamicDraw(e) Dim cplane = e.RhinoDoc.Views.ActiveView.ActiveViewport.ConstructionPlane() Dim radius = m_center_point.DistanceTo(e.CurrentPoint) Dim circle = New Circle(cplane, m_center_point, radius) e.Display.DrawCircle(circle, System.Drawing.Color.Black) End Sub End Class End Namespace
Python
from Rhino import * from Rhino.Geometry import * from Rhino.Commands import * from Rhino.Input.Custom import * from scriptcontext import doc from System.Drawing import * def RunCommand(): gp = GetPoint() gp.SetCommandPrompt("Center point") gp.Get() if gp.CommandResult() <> Result.Success: return gp.CommandResult() center_point = gp.Point() if center_point == Point3d.Unset: return Result.Failure gcp = GetCircleRadiusPoint(center_point) gcp.SetCommandPrompt("Radius") gcp.ConstrainToConstructionPlane(False) gcp.SetBasePoint(center_point, True) gcp.DrawLineFromPoint(center_point, True) gcp.Get() if gcp.CommandResult() <> Result.Success: return gcp.CommandResult() radius = center_point.DistanceTo(gcp.Point()) cplane = doc.Views.ActiveView.ActiveViewport.ConstructionPlane() doc.Objects.AddCircle(Circle(cplane, center_point, radius)) doc.Views.Redraw() return Result.Success class GetCircleRadiusPoint (GetPoint): def __init__(self, centerPoint): self.m_center_point = centerPoint def OnDynamicDraw(self, e): cplane = e.RhinoDoc.Views.ActiveView.ActiveViewport.ConstructionPlane() radius = self.m_center_point.DistanceTo(e.CurrentPoint) circle = Circle(cplane, self.m_center_point, radius) e.Display.DrawCircle(circle, Color.Black) if __name__ == "__main__": RunCommand()

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