PK_FACE_install_surfs_isocline
PK_ERROR_code_t PK_FACE_install_surfs_isocline ( --- 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, --- isocline direction double angle, --- isocline angle double tolerance, --- max tol for applying surfs PK_LOGICAL_t face_face_check --- do face face checks ) This function replaces the surfaces of given faces with isocline surfaces. Specific Errors: PK_ERROR_cant_get_point (SERIOUS)can not produce vertex geometry PK_ERROR_cant_get_curve (SERIOUS)can not produce curve geometry PK_ERROR_cant_get_surf (SERIOUS)can not produce isocline surface PK_ERROR_edge_didnt_vanish (SERIOUS)an edge should have disappeared PK_ERROR_general_body (MILD)general bodies not supported The isocline is specified by a direction and an angle. For each face in faces an isocline surface is defined by a reference entity. The reference entity may be of classes: o PK_CLASS_edge: An isocline surface is defined through the curve of the edge between the vertices of the edge (if it has any). o PK_CLASS_face: The isocline surface(s) to be used for the face in faces is to be that (those) defined for this reference face. o PK_CLASS_surf: An isocline 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 reference edges to produce step drafting. 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 drafting, no face-splitting occurs; the reference edges which lie on the reference surface will produce the face's draft surface, the other face-related reference edges will, each of them, produce a step tapered face. These new step faces are connected to the main draft face and their draft angle is greater or equal to the specified isocline angle. 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. When an error occurs, the function will, where possible, make extra information regarding the error available to the application by means of a GROUP. This GROUP is accessible from the standard form of the error. Note that, while the members of the GROUP will be objects which existed before the call (and so will survive rollback), the GROUP itself will be destroyed by rollback. The members of the GROUP will be as follows: PK_ERROR_cant_get_point 1 VERTEX Failed to find new geometry for existing vertex n FACEs Failed to find geometry for new vertex. PK_ERROR_cant_get_curve 1 EDGE Failed to find new geometry for existing edge n FACEs Failed to find geometry for new edge PK_ERROR_cant_get_surf n FACEs Unable to produce isocline surfaces for these faces. No surface replacement is performed. PK_ERROR_edge_didnt_vanish 1 EDGE An existing edge should have disappeared n FACEs A transient edge should have disappeared PK_ERROR_face_check_fails 1 FACE Face which failed check PK_ERROR_face_face_check_fails 2 FACEs Pair of faces where inconsistency found.