McNeel Wiki
How To: Add a Line Curve Object
edit · print · help · all topics
Main Pages

AccuRender

Bongo

Brazil r/s

Developer

Flamingo

Penguin

Rhino Blogs

Rhino

Rhino Labs

Search

Languages

Česky

Deutsch

English

Español

Français

Italiano

Polish

日本語

한국어

中文(繁體)

 
.
SummaryDemonstrates how to add a line curve to Rhino using the Rhino SDK.

C++

  CRhinoCommand::result CCommandTest::RunCommand(const CRhinoCommandContext& context)
  {
    CRhinoGetPoint gp;
    gp.SetCommandPrompt( L"Start of line" );
    gp.GetPoint();
    if( gp.CommandResult() != CRhinoCommand::success )
      return gp.CommandResult();


    ON_3dPoint pt_start = gp.Point();


    gp.SetCommandPrompt( L"End of line" );
    gp.SetBasePoint( pt_start );
    gp.DrawLineFromPoint( pt_start, TRUE );
    gp.GetPoint();
    if( gp.CommandResult() != CRhinoCommand::success )
      return gp.CommandResult();


    ON_3dPoint pt_end = gp.Point();
    ON_3dVector v = pt_end - pt_start;
    if( v.IsTiny() )
      return CRhinoCommand::nothing;


    ON_Line line( pt_start, pt_end );


    context.m_doc.AddCurveObject( line );
    context.m_doc.Redraw();


    return CRhinoCommand::success;
  }

VB.NET (Rhino 4)

  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;
  }
rename · changes · history · subscriptions · lost and found · references · file upload