Synopsis
PDX_MSGT gdx_ConvertCBSToParmCBS(long option, MDA_PTR gdx_db_ptr, int model, double tolerance, int u_degree, int v_degree, int max_iters, void *gdx_new_parm_cbs, double *max_dev)
Purpose
Convert a GDX Curve Bounded Surface entity to a GDX parametric spline curve bounded face entity
Description
Converts a GDX Curve Bounded Surface entity to a GDX Curve Bounded Surface that references all GDX parametric spline curve and surface entities. If the GDX Curve Bounded Surface already references all parametric spline entities, then a duplicate of the GDX Curve Bounded Surface is created the model.
New parameter space curves are recomputed: .RS 4 o If the base surface was a non-parametric spline surface that was converted to a parametric spline surface, .RE .RS 4 o The option mask equals GDX_NEWPARMCRV, .RE .RS 4 o The Curve Bounded Surface type indicates references to model space curves only. .RE .RS 4 o The parameter space curve(s) is missing. .RE
and new model space curves are recomputed: .RS 4 o If the model space curves are not parametric spline curves, .RE .RS 4 o If a new parameter space curve was computed and the preference flag is parameter space, .RE .RS 4 o The option GDX_NEWMODELCRV is set to recompute the model space curves and/or the base surface is parametric and the model space curve is missing (MDA_NULL_PTR). .RE
The u_degree and v_degree are used to determine the degree of an offset surface or offset curve (u_degree) that needs to be converted to an approximate parametric spline curve or surface. If the option mask GDX_USEUDEG is set then the u_degree is used to specify the degree of the parameter space curve created from projecting the parametric spline model space curve to the parametric spline surface (by default the degree of the existing parameter space curve or the maximium surface degree if the parameter space curve is missing is used for the degree of the parameter space curve). The tolerance and max_iters values apply to the parametric spline curves or surface that are approximated. In addition, the tolerance applies to the test for curve and surface closure.
The GDX Curve Bounded Surface entity and all its subordinate entities must be valid definitions except as noted.
The conversion is exact where the curve and surface entities convert exactly to the parametric spline definition, otherwise the conversion is an approximation to tolerance. The projection of new parameter space curves and/or creation of new model space curves from parameter space curves is an approximation to tolerance.
Input
option
GDX_COMMIT
Commit the GDX parametric spline surface to the database
GDX_NEWPARMCRV
Recomputer the parameter space trimming curve by projecting the NURBS model space curve to the NURBS surface
GDX_NEWMODELCRV
Recompute the NURBS model space trimming curve from the computed NURBS parameter space trimming curve. The edge curve preference flag will be set to parameter space curve prefered.
GDX_USEUDEG
Use the U degree parameter (u_degree) for the degree of any new parameter space curves
GDX_OPENCLOSED
Open a closed surface if the projection of the model space curves generates multiple parameter space curves accross seam closure.
GDX_USEDEG1
Force the U or V degree of the converted surface to be degree 1 if the original surface is non-rational and degree 1 in U and/or V
gdx_db_ptr
The GDX Curve Bounded Surface entity database pointer
model
The model to create the GDX NURB surface or curve bounded face in
tolerance
The tolerance for approximating the GDX NURB surface in the case of converting an offset surface, a NURB surface to non-rational or lower degree, or for removing knots when a parametric spline is converted and for projecting the model space curve to the surface and/or extracting the model space curve from the surface
u_degree
The U degree to approximate the GDX NURB surface when a GDX NURB surface is converted to another GDX NURB surface and/or a GDX NURB curve is converted to another GDX NURB curve.
v_degree
The V degree to approximate the GDX NURB surface when a GDX NURB surface is converted to another GDX NURB surface.
max_iters
The maximum iteration count to test for convergence to the approximation tolerance
Output
gdx_new_parm_cbs
The GDX Curve Bounded Surface entity structure or database pointer
max_dev
The maximium deviation of the model space curve to the surface
Tolerances
MODEL_SPACE_PNT_TOL
PARM_SPACE_PNT_TOL
ANGLE_TOL
ZERO_TOL
CONVERGE_TOL
KNOT_TOL
PNT_PROJ_TOL
PARALLEL_LINES_TOL
COLLINEAR_TOL
COPLANAR_TOL
.fi
Return
GDX_NOERR
GDX_ENTITYNOTCURVEFACE
Low level error return
.fi