DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="3.4.0-beta6560" />

 PolyCurve

public class PolyCurve : Curve
public int NumberOfCurves { get; }

Number of curves of the polycurve

public Point[] Points { get; }

Returns the start point of the first component and the end points of every component curve. For a closed polycurve, as the start and end points are the same, the end point is excluded.

public static PolyCurve[] ByGroupedCurves(IEnumerable<Curve> curves, double joinTolerance = 0.001)

Make one or more polycurves by grouping connected curves. Choose a preferred join tolerance between 1e-6 and 1e-3 units.

public static PolyCurve[] ByGroupedCurves(IEnumerable<Curve> curves, double joinTolerance = 0.001, bool trimCurves = false, double trimLength = 0)

Make one or more polycurves by grouping connected curves. Choose a preferred join tolerance between 1e-6 and 1e-3 units.

public static PolyCurve ByJoinedCurves(IEnumerable<Curve> curves, double joinTolerance = 0.001)

Make PolyCurve by joining curves. Flips curve as needed for connectivity. Choose a preferred join tolerance between 1e-6 and 1e-3 units.

public static PolyCurve ByJoinedCurves(IEnumerable<Curve> curves, double joinTolerance = 0.001, bool trimCurves = false, double trimLength = 0)

Make PolyCurve by joining curves. Flips curve as needed for connectivity. Choose a preferred join tolerance between 1e-6 and 1e-3 units.

public static PolyCurve ByPoints(IEnumerable<Point> points, bool connectLastToFirst = false)

Make PolyCurve by connecting points. Set the 'connectLastToFirst' input to true to close the PolyCurve.

public static PolyCurve ByThickeningCurve(Curve curve, double thickness, Vector nor)

Make PolyCurve by thickening a curve.

public static PolyCurve ByThickeningCurveNormal(Curve curve, double thickness, Vector normal)

Make PolyCurve by thickening a curve along a plane specified by the input normal.

public Plane BasePlane()

Returns plane of planar polycurve

Close polycurve by line connecting start and end points

public PolyCurve CloseWithLineAndTangentArcs(double radiusAtStart = 1, double radiusAtEnd = 1)

Close polycurve by tangent chain of arc, line, and arc

public Curve CurveAtIndex(int index = 0, bool endOrStart = false)

Returns curve of the polycurve by index

public Curve[] Curves()

Returns curves of the polycurve

public PolyCurve ExtendWithArc(double length, double radius, bool endOrStart)

Extends polycurve by tangent arc.

public PolyCurve ExtendWithEllipse(double length, double radius1, double radius2, double endEllipseParameter, bool endOrStart)

Extends polycurve by tangent ellipse

public PolyCurve Fillet(double radius = 1, bool clockwise_corners = true)

Fillet corners of planar polycurve.

public PolyCurve Heal(double trimLength = 0)

Heals a self-intersecting PolyCurve by returning a new one that isn't self-intersecting if the overlapping segment length is less than or equal to trimLength.

public Curve Offset(double signedDistance, bool extendCircular)

Offset polycurve in its plane.

public Curve[] OffsetMany(double signedDistance, bool extendCircular, Vector planeNormal)

Create one or more Polycurves by offsetting a planar polycurve by the given distance in a plane defined by the plane normal. The "planeNormal" input argument defaults to the normal of the plane containing the curve but an explicit normal parallel to the original curve normal can be provided to better control the direction of the offset. For example, if a consistent offset direction is required for multiple curves sharing the same plane, the "planeNormal" can be used to override individual curve normals and force all curves to be offset in the same direction. Reversing the normal reverses the direction of the offset.