M_Rhino_Geometry_Curve_GetLength - mcneel/rhinocommon-api-docs GitHub Wiki

Curve.GetLength Method

Gets the length of the curve with a fractional tolerance of 1.0e-8.

Namespace: Rhino.Geometry
Assembly: RhinoCommon (in RhinoCommon.dll) Version: Rhino 6.0

Syntax

C#

public double GetLength()

VB

Public Function GetLength As Double

Return Value

Type: Double
The length of the curve on success, or zero on failure.

Examples

VB

Partial Class Examples
  Public Shared Function ArcLengthPoint(ByVal doc As Rhino.RhinoDoc) As Rhino.Commands.Result
    Dim objref As Rhino.DocObjects.ObjRef = Nothing
    Dim rc As Rhino.Commands.Result = Rhino.Input.RhinoGet.GetOneObject("Select curve", True, Rhino.DocObjects.ObjectType.Curve, objref)
    If rc <> Rhino.Commands.Result.Success Then
      Return rc
    End If
    Dim crv As Rhino.Geometry.Curve = objref.Curve()
    If crv Is Nothing Then
      Return Rhino.Commands.Result.Failure
    End If

    Dim crv_length As Double = crv.GetLength()
    Dim length As Double = 0
    rc = Rhino.Input.RhinoGet.GetNumber("Length from start", True, length, 0, crv_length)
    If rc <> Rhino.Commands.Result.Success Then
      Return rc
    End If

    Dim pt As Rhino.Geometry.Point3d = crv.PointAtLength(length)
    If pt.IsValid Then
      doc.Objects.AddPoint(pt)
      doc.Views.Redraw()
    End If
    Return Rhino.Commands.Result.Success
  End Function
End Class

C#

partial class Examples
{
  public static Rhino.Commands.Result ArcLengthPoint(Rhino.RhinoDoc doc)
  {
    Rhino.DocObjects.ObjRef objref;
    Rhino.Commands.Result rc = Rhino.Input.RhinoGet.GetOneObject("Select curve",
      true, Rhino.DocObjects.ObjectType.Curve,out objref);
    if(rc!= Rhino.Commands.Result.Success)
      return rc;
    Rhino.Geometry.Curve crv = objref.Curve();
    if( crv==null )
      return Rhino.Commands.Result.Failure;

    double crv_length = crv.GetLength();
    double length = 0;
    rc = Rhino.Input.RhinoGet.GetNumber("Length from start", true, ref length, 0, crv_length);
    if(rc!= Rhino.Commands.Result.Success)
      return rc;

    Rhino.Geometry.Point3d pt = crv.PointAtLength(length);
    if (pt.IsValid)
    {
      doc.Objects.AddPoint(pt);
      doc.Views.Redraw();
    }
    return Rhino.Commands.Result.Success;
  }
}

Python

import Rhino
import scriptcontext

def ArcLengthPoint():
    rc, objref = Rhino.Input.RhinoGet.GetOneObject("Select curve", True, Rhino.DocObjects.ObjectType.Curve)
    if rc!=Rhino.Commands.Result.Success: return rc
    crv = objref.Curve()
    if not crv: return Rhino.Commands.Result.Failure
    crv_length = crv.GetLength()
    length = 0
    rc, length = Rhino.Input.RhinoGet.GetNumber("Length from start", True, length, 0, crv_length)
    if rc!=Rhino.Commands.Result.Success: return rc
    pt = crv.PointAtLength(length)
    if pt.IsValid:
        scriptcontext.doc.Objects.AddPoint(pt)
        scriptcontext.doc.Views.Redraw()
    return Rhino.Commands.Result.Success

if __name__=="__main__":
    ArcLengthPoint()

Version Information

Supported in: 6.0.16224.21491, 5D58w

See Also

Reference

Curve Class
GetLength Overload
Rhino.Geometry Namespace

⚠️ **GitHub.com Fallback** ⚠️