PK_CURVE_make_helical_surf   

PK_ERROR_code_t         PK_CURVE_make_helical_surf
(
--- received arguments ---
PK_CURVE_t              curve,          --- curve
PK_INTERVAL_t           curve_interval, --- curve interval
const PK_AXIS1_sf_t    *axis,           --- axis
PK_HAND_t               hand,           --- handedness
PK_INTERVAL_t           turns,          --- range of turns
double                  helical_pitch,  --- height of a single turn
double                  spiral_pitch,   --- increase in radius of a single turn
double                  tolerance,      --- used in approximations

--- returned arguments ---
PK_SURF_t        *const surface         --- created surface
)


This function creates a helix, tapered helix or spiral surface by sweeping a
part of a curve about an axis. The surface will be created as a b_surface to
a tolerance supplied by the user.

This function does not support facet geometry [NF]


Specific Errors:
    PK_ERROR_tolerances_too_tight   The requested tolerance could not be met.
                                    (MILD)
    PK_ERROR_cant_make_bspline      The requested surface could not be made.
                                    (SERIOUS)
    PK_ERROR_bad_parameter          Implied negative distance from the axis.
                                    (MILD)
    PK_ERROR_bad_tolerance          The requested tolerance is less than the
                                    session precision. (MILD)


The interval of the curve is swept around the axis to form a helix, tapered
helix or spiral surface.

The 'helical_pitch' is the distance along the axis moved in one turn and the
'spiral_pitch' is the distance moved away from the axis in one turn. These
distances may be negative. The 'turns' argument specifies how many complete
revolutions the surface should make. Note that in general, unless both ends of
the interval are whole numbers, the surface may extend beyond the required
number of turns in both directions. The surface will be supplied as an
approximate bsurface to the tolerance supplied.

If the 'spiral_pitch'  is zero then a helical sweep is produced.
If the 'helical_pitch' is zero then a spiral sweep is produced.
If both are zero then error PK_ERROR_bad_parameter results.
Otherwise a tapered helical sweep is produced.

The 'turns' argument need not include position 0.0 - the supplied curve, but
must not imply a negative distance from the axis.

If the 'hand' argument is PK_HAND_right_c then the curve will be swept
clockwise when viewed along the axis.