DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

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

 Surface

public class Surface : Topology
public double Area { get; }

Returns the total surface area.

public bool Closed { get; }

Returns True if surface is closed in U or V direction, false if it's neither.

public bool ClosedInU { get; }

Returns True if surface is closed in U direction, false if it's not.

public bool ClosedInV { get; }

Returns True if surface is closed in V direction, false if it's not.

public double Perimeter { get; }

Returns the sum of lengths of all boundary edges of the surface.

public static Surface ByLoft(IEnumerable<Curve> crossSections)

Create a Surface by lofting between input cross section Curves.

public static Surface ByLoft(IEnumerable<Curve> crossSections, Curve guideCurve)

Loft a Surface through the cross sections with a specified guide curve (aka a rail). Guide curve must intersect all of the cross section curves.

public static Surface ByLoft(IEnumerable<Curve> crossSections, IEnumerable<Curve> guideCurves)

Loft a Surface through the cross sections with a specified guide curves (aka a rails). Guide curves must intersect all of the cross section curves.

public static Surface ByPatch(Curve closedCurve)

Create a Surface by filling in the interior of a closed boundary defined by input Curves.

public static Surface ByPerimeterPoints(IEnumerable<Point> points)

Create a Polygon Surface connecting input Points in a closed Polygon and patching it.

public static Surface ByRevolve(Curve profile, Point axisOrigin, Vector axisDirection, double startAngle = 0, double sweepAngle = 180)

Create a Surface by sweeping the profile Curve around the axis ray formed by origin Point in the direction of the axis Vector, starting at start_angle in degrees, sweeping sweep_angle in degrees.

public static Surface ByRuledLoft(IEnumerable<Line> crossSections)

Create a Surface by lofting between input cross section Lines. This is slightly faster and produces a less smooth result than Surface.ByLoft.

public static Surface BySweep(Curve profile, Curve path)

Create a Surface by sweeping a profile Curve along a path.

public static Surface BySweep(Curve profile, Curve path, bool cutEndOff = false)

Create a Surface by sweeping a profile Curve along a path.

public static Surface BySweep2Rails(Curve path, Curve guideRail, Curve profile)

Sweep the cross section curve along a path guided by a two rails

public static Surface ByUnion(IEnumerable<Surface> surfaces)

Union a collection of surfaces into one surface. This method might return a polySurface if the resulting union is non-manifold or multi-faced.

public NurbsSurface ApproximateWithTolerance(double tolerance = 0.001)

Gets a Nurbs representation of the Surface within a specified tolerance. This method may approximate Surface in certain circumstances.

public CoordinateSystem CoordinateSystemAtParameter(double u = 0, double v = 0)

Return a CoordinateSystem aligned with principal curvature directions.

public CoordinateSystem CurvatureAtParameter(double u = 0, double v = 0)

The returned coordination system use xAxis, yAxis and zAxis to represent the uDir, vDir and normal. The length of xAxis, yAxis represents the curvatures.

public Vector[] DerivativesAtParameter(double u = 0, double v = 0)

Return the derivatives at input U and V coordinates.

The boolean difference of this Surface and the union of input Surfaces. This method might return a polySurface if the resulting boolean is non-manifold or multi-faced.

Returns a new Surface with the Normal flipped. Leaves this surface unchanged.

public double GaussianCurvatureAtParameter(double u = 0, double v = 0)

Returns the Gaussian curvature at U and V parameters.

public Curve GetIsoline(int isoDirection = 0, double parameter = 0)

Create a parameter line curve on the given surface. Create a Curve that represents a u or v parameter line on the Surface. A parameter line runs in the direction of increasing u or v parameter at a constant opposite u or v parameter. The resulting Curve will match the Surface parameterisation and its range will be bounded by the Surface parameter range. The type of Curve returned will depend on the Surface type.

public PolySurface Join(Surface otherSurface)

Combines this Surface and input Surface into a PolySurface

public PolySurface Join(IEnumerable<Surface> otherSurfaces)

Combines this Surface and input Surfaces into a PolySurface

public Vector NormalAtParameter(double u = 0, double v = 0)

Return the normal Vector at specified U and V parameters.

public Vector NormalAtPoint(Point point)

Return the surface normal at the input Point on the Surface.

public Surface Offset(double distance = 1)

Offset Surface in direction of Surface normal by specified distance.

Return all the boundary Curves of the Surface.

public Point PointAtParameter(double u = 0, double v = 0)

Return the Point at specified U and V parameters.

public double[] PrincipalCurvaturesAtParameter(double u = 0, double v = 0)

Returns the principal curvatures at the U and V parameters.

public Vector[] PrincipalDirectionsAtParameter(double u = 0, double v = 0)

Returns principal direction vectors at U and V parameters.

public Geometry[] ProjectInputOnto(Geometry geometryToProject, Vector projectionDirection)

Projects the input Geometry onto this Surface in the input Vector direction. !!This projection method currently supports only points or curves!!

public Geometry Repair()

Attempts to repair the Surface.

public Geometry[] SubtractFrom(Solid trimmingEntity)

Subtract the input tools from this Surface.

public Vector TangentAtUParameter(double u = 0, double v = 0)

Return the U tangent Vector at specified U and V parameters.

public Vector TangentAtVParameter(double u = 0, double v = 0)

Return the V tangent Vector at specified U and V parameters.

public Solid Thicken(double thickness = 1)

Thicken Surface into a Solid, extruding in the direction of Surface normals on both sides of the Surface.

public Solid Thicken(double thickness = 1, bool both_sides = true)

Thicken Surface into a Solid, extruding in the direction of Surface normals. If both_sides parameter is true, surface is thickened on both sides.

Gets a Nurbs representation of the Surface. This method may approximate Surface in certain circumstances.

public NurbsSurface ToNurbsSurface(bool limitSurface = true)

Gets a Nurbs representation of the Surface. This method may approximate Surface in certain circumstances.

public Surface TrimWithEdgeLoops(IEnumerable<PolyCurve> loops, double tolerance = 0)

Trims the surface with a collection of one or more closed PolyCurves that must all lie on the surface within the specified tolerance. If one or more holes need to be trimmed from the input surface, there must be one outer loop specified for the boundary of the surface and one inner loop for each hole. If the region between the surface boundary and the hole(s) needs to be trimmed, only the loop for each hole should be provided. For a periodic surface with no outer loop such as a spherical surface, the trimmed region can be controlled by reversing the direction of the loop curve.

public UV UVParameterAtPoint(Point point)

Return the UV parameter pair at the input Point. This is the inverse of Point at parameter.