PK_ERROR_code_t PK_FACE_taper ( --- received arguments --- int n_faces, --- number of target faces (>0) const PK_FACE_t faces[], --- faces to be drafted const PK_ENTITY_t references[], --- reference entities PK_VECTOR1_t direction, --- taper direction double angle, --- taper angle double tolerance, --- max. tol. for applying surfaces const PK_FACE_taper_o_t *options, --- options --- returned arguments --- PK_TOPOL_track_r_t *const tracking, --- tracking information PK_TOPOL_local_r_t *const results --- status information ) This function applies tapering to the given faces by replacing their geometry with taper surfaces. NOTE : This function supersedes PK_FACE_install_surfs_isocline. Specific Errors: PK_ERROR_wrong_entity_in_array (MILD) given faces are not from same body PK_ERROR_general_body (MILD) general bodies not supported Introduction Taper (or isocline) surfaces are specified by a direction and an angle. For each face in faces a taper surface is defined by a reference entity. For more details on taper surfaces refer to the Definitions of Isocline Curves and Surfaces section of the Functional Description. The reference entity may be of classes: o PK_CLASS_edge: A taper surface is defined through the curve of the edge between the vertices of the edge (if it has any). o PK_CLASS_face: The taper surface(s) to be used for the face in faces is to be that (those) defined for this reference face. o PK_CLASS_surf: A taper surface is defined through the curve of intersection between the face's surface and the reference surface. A reference surface can also be used in association with step reference edges to produce Step Tapering. A face may appear more than once in faces. The effect of this is that the face will be split so as to satisfy the separate constraints. In the case of Step Tapering, no face-splitting occurs; the step reference edges which lie on the reference surface will produce no step faces, the other face-related step reference edges will each produce a step face. The step reference edges are passed in through the controls in the options structure. There are two types of step reference edges, the tapered edges and the normal edges : o tapered edges produce step faces tapered at an angle which is greater or equal to the specified taper angle (they therefore satisfy the taper condition). o normal edges produce step faces normal (perpendicular) to the original relevant taper face (they do not necessarily satisfy the taper condition). If a face appears in references then it must also appear in faces. The function may, at times, have to use approximate geometry. For such cases, tolerance specifies an upper bound on the distance by which a point on the actual geometry may deviate from its ideal position. While the function will usually satisfy this constraint, it is not guaranteed. User options The PK_FACE_taper_o_t structure contains user control options. See its documentation for details. Tracking The PK_TOPOL_track_t structure contains topology tracking information on the operation. In the case of this function, two types of tracking information records may be returned : 1) PK_TOPOL_track_create_c, to report newly created tapered faces (or faces deriving from them). These new faces will have the relevant initial taper face and eventually the relevant reference edge as original topologies. In a Step Tapering context, the step faces will also be reported in records of this type. 2) PK_TOPOL_track_derive_c, to report faces deriving from existing ones, through any combination of splitting and merging. Error handling If this function returns PK_ERROR_no_errors, the result of the operation will be indicated by the value of the status field of the results structure. When this value is not PK_local_status_ok_c or PK_local_status_nocheck_c, it indicates an operation failure and an array of entities involved in this failure is returned through the field error_entities of the results structure, when possible. For more information regarding the failure status code and the error_entities, refer to the PK documentation of the PK_TOPOL_local_r_t structure.