Description:

This routine accepts a 3-d trim curve (trimCrv3d). The trim curve is assumed to run from one surface edge to the opposite edge; this is referred to as a "simple" trim curve, roughly parallel to one of the srf directions (either u or v). We refer to that parameter as the "trim parameter". The routine splits the surface via the trim curve, and then refits either side ("upper" = "above the trim", and "lower" = "below the trim") as a set of untrimmed Nurbs surfaces. The idea is to retain, as much as possible, the Nurbs structure of srf, especially in the trim parameter.

Syntax:
public bool RefitSimplySplitSurface(
Curve trimCurve3d,
Vector3d trimProjectionDir,
double tolerance,
RefitTrimKnotMode knotAdditionMode,
int numInsertKnots,
IEnumerable<double> Knots,
RefitTrimSectionMode sectionMode,
int numNonTrimSpans,
bool meetCurve,
bool oneSided,
Point3d PtActive,
bool outputSurface,
bool outputCurve,
ref int numSections,
List<Surface> lowerSurface,
List<Surface> upperSurface,
List<Curve> edgeCurve,
ref double FitMeasurement,
ref Curve trimCurveOnSurface,
ref Curve splitCurve
)
Parameters:
  • trimCurve3d
  • Type: Curve
  • curve that will trim from one edge to the opposite
  • trimProjectionDir
  • Type: Vector3d
  • Vector for projection, or zero vector for no projection
  • tolerance
  • Type: double
  • 3d tolerance for projection, splitting, fitting...
  • knotAdditionMode
  • Type: RefitTrimKnotMode
  • 0: no, don't add any 1: Yes, add nKnots knots, spaced regularly over the entire surface 2: Yes, add nKnots knots, spaced regularly PER EXISTING SPAN 3: Yes, add nKnots knots, as provided in the array Knots
  • numInsertKnots
  • Type: int
  • FOr TrimParamKnots != 3, the number of knots to add
  • Knots
  • Type: IEnumerable<double>
  • For TrimParamKnots=3, the custom knots to add
  • sectionMode
  • Type: RefitTrimSectionMode
  • 0: no sections, just output one "upper" and one "lower" surface 1: Yes, divide into sections at each of the input surface's existing knots 2: Yes, divide into sections at each of the "nKnot" added knot values 3: Yes, divide into sections at ALL knot values (i.e. both 1 and 2)
  • numNonTrimSpans
  • Type: int
  • number of spans in the non-trim parameter
  • meetCurve
  • Type: bool
  • Drag the refit surfaces out to meet the original trim curve
  • oneSided
  • Type: bool
  • Inputting an "active" point means you only want one side of the "split" to be refit - In other words, you want a "trim refit". Results will be returned in "srfLower"
  • outputSurface
  • Type: bool
  • if true, output fit surfaces: srfLower and, if !bActivePt, srfUpper
  • outputCurve
  • Type: bool
  • if true, output fit curve: crvEdge
  • numSections
  • Type: int
  • lowerSurface
  • Type: List<Surface>
  • Surfaces (# = nSections) below trim curve in srf's (u,v) domain
  • upperSurface
  • Type: List<Surface>
  • Surfaces (# = nSections) above trim curve in srf's (u,v) domain
  • edgeCurve
  • Type: List<Curve>
  • Curves (# = nSections) fit to trim curve with srf's u/v parameter
  • FitMeasurement
  • Type: double
  • Calculated based on trimParamSections
  • trimCurveOnSurface
  • Type: Curve
  • the actual trim curve as it is projected on or pulled to the surface
  • splitCurve
  • Type: Curve
  • the actual fit curve the split the surface
Returns:
Type: bool
True for zuccess, False for failure
Available since:
8.0

/
/
/
RefitSimplySplitSurface

RefitSimplySplitSurface method

Class:  Rhino.Geometry.Surface

Nothing found