Synopsis
PDX_MSGT gdx_ConvertOffsetSurfToNurbSurf(long option, MDA_PTR db_ptr, int model, double tolerance, int u_degree, int v_degree, int max_iters, void *gdx_nurb_surf)
Purpose
Convert a GDX offset surface to a GDX NURB Surface
Description
Converts a GDX offset surface entity to a GDX NURB Surface entity.
The base GDX surface definition is converted to a NURBS surface. The NURBS surface is used to create an approximate offset NURBS surface to within a tolerance of tolerance. The current MODEL_SPACE_PNT_TOL should be at least 2 orders of magnitude less then the tolerance value for reasonable results. The u_degree and v_degree determine the degree of the offset surface in each parametric direction. The degree should be at least equivalent to the degree of the base surface and a higher degree will produce less data for the approximation of the offset surface.
The tolerance value is a measure of the distance that the offset surface can vary from the true offset. The max_iters is the maximium number of iterations that a span in the original base surface converted to a NURBS curve is subdivided for offsetting to approximate the true offset. Typically only several iterations are required for convergence to the tolerance, but a discontinuous base surface or a base surface whose offset distance is greater than the minimium radius of curvature may never converge to the requested tolerance. A max_iters value of around ten(10) is recommended.
The u_degree, max_iters, and tolerance values are also used for the conversion of surfaces that contain GDX offset surface base entities as defining surface which require an approximate conversion to a NURBS definition. The tolerance value also applies for closure test.
If a conversion error occurs any data created during the conversion is deleted and no GDX NURB Surface is created.
The GDX offset surface entity and the subordinate surface entity must be valid GDX definitions.
The conversion is an approximate conversion.
Input
option
GDX_COMMIT
Commit the GDX NURB Surface to the database
GDX_USEBASEDEG
Use the degree of the base surface for the offset surface
db_ptr
The valid GDX offset surface entity database pointer
model
The model to create the GDX NURB Surface in
tolerance
The tolerance for the base to NURBS conversion and closure test
u_degree
The converted NURBS surface U degree
v_degree
The converted NURBS surface V degree
max_iters
The maximium iterations for convergence test
Output
gdx_nurb_surf
The GDX NURB Surface entity database pointer or the structure pointer
Tolerances
MODEL_SPACE_PNT_TOL
PNT_PROJ_TOL
ANGLE_TOL
ZERO_TOL
.fi
Return
GDX_NOERR
GDX_INVALIDMODEL
GDX_INVALIDENTITYTYPE
Low level error return
.fi