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. Specific Errors: PK_ERROR_tolerances_too_tight The requested tolerance could not be met. PK_ERROR_cant_make_bspline The requested surface could not be made. PK_ERROR_bad_parameter Implied negative distance from the axis. 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 makes. 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. The performance of helical curves in modelling operations is optimised if the turns argument uses whole numbers for both ends of the interval.