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
)
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"
- PtActive
- Type: Point3d
- Active point
- 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