DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="1.0.0-beta1" />

 Curve

public class Curve : Geometry
public Point EndPoint { get; }

Get the end Point along the Curve

public bool IsClosed { get; }

Determine if the Curve is closed or not

public bool IsPlanar { get; }

Determine whether a Curve is planar or not

public double Length { get; }

The total arc length of the curve

public Vector Normal { get; }

The normal to the plane where the curve is contained. Only valid for planar curves.

public Point StartPoint { get; }

Get the start Point along the Curve

public static Curve ByBlendBetweenCurves(Curve curve1, Curve curve2, bool endOrStart1 = true, bool endOrStart2 = false)

Create a curve that blends between two curves

public static Curve ByIsoCurveOnSurface(Surface baseSurface, int direction = 0, double parameter = 0)

Create a curve by isoline of surface

public static Curve ByParameterLineOnSurface(Surface baseSurface, UV startParams, UV endParams)

Create a curve by line of surface in uv space

Approximate a Curve with a collection of Arcs and Lines

public CoordinateSystem CoordinateSystemAtDistance(double distance = 0)

Returns a CoordinateSystem at specified distance from Curve start Point. Y Axis lies tangent to the Curve, X Axis is the curvature.

Get a CoordinateSystem with origin at the point at the given parameter. The XAxis is aligned with the curve normal and the YAxis is aligned with the curve tangent at this point

public double DistanceAtParameter(double param = 0)

Get the arc length along the Curve at the particular parameter.

public Curve[] DivideByDistance(int divisions = 10)

Divides curve into given number of curves with equal distances between start and end of each curve (equal chords).

public Curve[] DivideByDistanceFromParameter(double distance = 1, double parameter = 0)

Divides curve into curves of given distances between start and end (chords) measuring from given location

public Curve[] DivideByLengthFromParameter(double length = 1, double parameter = 0)

Divides curve into curves of given length measuring from given location

public Curve[] DivideEqually(int divisions = 10)

Divides curve into given number of equal length curves

public double EndParameter()

Get the end of the domain in which the curve can be evaluated

public Curve Extend(double distance, Point pickSide)

Extend a Curve by a given distance at a particular end determined by a pick Point. The picked side will be extended. Closed curves like Circles and Ellipses cannot be extended.

public Curve ExtendEnd(double distance = 1)

Extend a Curve by a given distance on its end. Closed curves like Circles and Ellipses cannot be extended.

public Curve ExtendStart(double distance = 1)

Extend a Curve by a given distance on its start side. Closed curves like Circles and Ellipses cannot be extended.

public Surface Extrude(double distance = 1)

Extrudes a Curve in the normal Vector direction

public Surface Extrude(Vector direction)

Extrudes a Curve in the specified direction, by the length of the input Vector

public Surface Extrude(Vector direction, double distance = 1)

Extrudes a Curve in the specified direction, by the specified distance

public Solid ExtrudeAsSolid(double distance = 1)

Extrudes a Curve in the Normal direction by the specified distance. Curve must be closed.

public Solid ExtrudeAsSolid(Vector direction)

Extrudes a Curve in the specified direction, by the length of the input Vector. Curve must be closed.

public Solid ExtrudeAsSolid(Vector direction, double distance = 1)

Extrudes a Curve in the specified direction, by the specified distance. Curve must be closed.

Get a CoordinateSystem with origin at the point at the given parameter

public PolyCurve Join(Curve curve)

Join this curve and the input curve into a new PolyCurve, maintaining the original curves exactly.

public PolyCurve Join(IEnumerable<Curve> curves)

Join set of curves to the start of the end of the polycurve. Flips curves to assure connectivity.

public double LengthBetweenParameters(double startParam = 0, double endParam = 1)

Get the arc length between two parameter points on the curve

public Vector NormalAtParameter(double param = 0)

Get a Vector perpendicular to the curve at a specified parameter between StartParameter() and EndParameter()

public Curve Offset(double distance = 1)

Offset a Curve by a specified amount. Curve must be planar, and, if a BSplineCurve/NurbsCurve, must have degree > 1.

public double ParameterAtChordLength(double distance = 0.5, double location = 0, bool forward = true)

Get the parameter at a particular chord length along the curve from given location.

public double ParameterAtDistance(double distance = 0)

Get the parameter at a particular arc length along the curve.

public double ParameterAtPoint(Point point)

Get the parameter at a particular point along the Curve

public Curve[] ParameterSplit(double parameter = 0.5)

Split a Curve into two pieces at the given parameter

public Curve[] ParameterSplit(double[] parameters)

Split a Curve into multiple pieces at the given parameters

public Curve ParameterTrim(double startParameter = 0, double endParameter = 1)

Removes the beginning and ends of at the specified parameters.

public Curve ParameterTrimEnd(double endParameter = 1)

Removes the end of the Curve at the specified parameter

public Curve[] ParameterTrimInterior(double startParameter = 0, double endParameter = 1)

Removes the interior portion of a Curve at the specified parameters

public Curve[] ParameterTrimSegments(double[] parameters)

Removes several segments of the curve, discarding the 1st, 3rd, 5th ... segments

public Curve[] ParameterTrimSegments(double[] parameters, bool discardEvenSegments = false)

Removes several segments of the Curve, disgarding 2nd, 4th, 6th ... segments if the bool is true

public Curve ParameterTrimStart(double startParameter = 0)

Removes the start of the Curve at the specified parameter

public Surface Patch()

Patch a closed Curve

public Plane PlaneAtDistance(double distance = 0)

Returns a Plane at the specified distance along the Curve from the start Point. The normal of the Plane aligns with the tangent of the Curve.

public Plane PlaneAtParameter(double param = 0)

Returns a Plane whose normal aligns with the tangent of the Curve. Parameters are adjusted such that 0 is always the start Point and 1 is always the end Point.

public Point PointAtDistance(double distance = 0)

Get a Point at a particular arc length along the curve

public Point PointAtParameter(double param = 0)

Get a Point on the Curve at a specified parameter between StartParameter() and EndParameter()

public Geometry[] Project(Geometry baseGeometry, Vector projectionDirection)

Project another piece of Geometry onto this along a given direction Vector

public Curve PullOntoPlane(Plane plane)

Create a curve by pulling onto plane

public Curve PullOntoSurface(Surface surface)

Pull this Curve onto the input Surface, in the direction of the Surface normals.

public Curve Reverse()

Reverse the direction of the curve

public Curve Simplify(double tolerance)

Returns a new Curve approximated with the supplied tolerance

public double StartParameter()

Get the start of the domain in which the curve can be evaluated

public Solid SweepAsSolid(Curve path)

Sweeps this closed Curve along the path Curve, creating a Solid

Sweeps this Curve along the path Curve, creating a Surface

public Vector TangentAtParameter(double param = 0)

Get a Vector tangent to the curve at a specified parameter between StartParameter() and EndParameter()

Converts the Curve to a NurbsCurve approximation