McNeel Wiki
Simplifying a Curve
edit · print · help · all topics
Main Pages

AccuRender

Bongo

Brazil r/s

Developer

Flamingo

Penguin

Rhino Blogs

Rhino

Search

Languages

Česky

Deutsch

English

Español

Français

Italiano

Polish

日本語

한국어

中文(繁體)

 
.
Developer.NET
VersionRhino 4

Overview

The RhinoSimplifyCurve SDK function replaces each curve segment that has the geometry of a line or an arc with a true line or arc.

VB.NET

  Public Overrides Function RunCommand(ByVal context As RMA.Rhino.IRhinoCommandContext) As RMA.Rhino.IRhinoCommand.result


    Dim go As New MRhinoGetObject
    go.SetCommandPrompt("Select curve")
    go.SetGeometryFilter(IRhinoGetObject.GEOMETRY_TYPE_FILTER.curve_object)
    go.GetObjects(1, 1)
    If (go.CommandResult() <> IRhinoCommand.result.success) Then
      Return go.CommandResult()
    End If


    Dim objref As MRhinoObjRef = go.Object(0)


    Dim obj As IRhinoObject = objref.Object()
    If (obj Is Nothing) Then
      Return IRhinoCommand.result.failure
    End If


    Dim crv As IOnCurve = OnCurve.ConstCast(obj.Geometry())
    If (crv Is Nothing) Then
      Return IRhinoCommand.result.failure
    End If


    Dim dup_crv As OnCurve = crv.DuplicateCurve()
    Dim flags As Integer = 0
    Dim dist_tol As Double = context.m_doc.AbsoluteTolerance()
    Dim angle_tol As Double = context.m_doc.AngleToleranceRadians()


    Dim rc As Boolean = RhUtil.RhinoSimplifyCurve(dup_crv, flags, dist_tol, angle_tol)
    If (rc = True) Then
      context.m_doc.AddCurveObject(dup_crv)
      context.m_doc.DeleteObject(objref)
      context.m_doc.Redraw()
      Return IRhinoCommand.result.success
    Else
      Return IRhinoCommand.result.failure
    End If


  End Function
rename · changes · history · subscriptions · lost and found · references · file upload