Public Overrides Function RunCommand(ByVal context As RMA.Rhino.IRhinoCommandContext)_
As RMA.Rhino.IRhinoCommand.result
Dim gp As New MRhinoGetPoint()
gp.SetCommandPrompt("Start of line")
gp.GetPoint()
If (gp.CommandResult() <> IRhinoCommand.result.success) Then
Return gp.CommandResult()
End If
Dim pt_start As On3dPoint = gp.Point()
gp.SetCommandPrompt("End of line")
gp.SetBasePoint(pt_start)
gp.DrawLineFromPoint(pt_start, True)
gp.GetPoint()
If (gp.CommandResult() <> IRhinoCommand.result.success) Then
Return gp.CommandResult()
End If
Dim pt_end As On3dPoint = gp.Point()
Dim v As On3dVector = pt_end - pt_start
If (v.IsTiny()) Then Return IRhinoCommand.result.nothing
Dim line As New OnLine(pt_start, pt_end)
context.m_doc.AddCurveObject(line)
context.m_doc.Redraw()
Return IRhinoCommand.result.success
End Function
C# (Rhino 4)
public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
{
MRhinoGetPoint gp = new MRhinoGetPoint();
gp.SetCommandPrompt("Start of line");
gp.GetPoint();
if( gp.CommandResult() != IRhinoCommand.result.success )
return gp.CommandResult();
On3dPoint pt_start = gp.Point();
gp.SetCommandPrompt("End of line");
gp.SetBasePoint(pt_start);
gp.DrawLineFromPoint(pt_start, true);
gp.GetPoint();
if (gp.CommandResult() != IRhinoCommand.result.success)
return gp.CommandResult();
On3dPoint pt_end = gp.Point();
On3dVector v = pt_end - pt_start;
if (v.IsTiny())
return IRhinoCommand.result.nothing;
OnLine line = new OnLine(pt_start, pt_end);
context.m_doc.AddCurveObject(line);
context.m_doc.Redraw();
return IRhinoCommand.result.success;
}