PK_ERROR_code_t PK_FACE_make_blend ( --- received arguments --- int n_left_wall_faces, --- number of faces in --- left wall const PK_FACE_t left_wall_faces[], --- faces in left wall int n_right_wall_faces, --- number of faces in --- right wall const PK_FACE_t right_wall_faces[], --- faces in right wall PK_LOGICAL_t left_sense, --- blend direction --- from left wall PK_LOGICAL_t right_sense, --- blend direction --- from right wall const PK_FACE_make_blend_o_t *options, --- options structure --- returned arguments --- int *const n_sheet_bodies, --- number of sheet bodies --- created PK_BODY_t **const sheet_bodies, --- sheet bodies int *const n_blend_faces, --- number of blend faces --- created PK_FACE_t **const blend_faces, --- blend faces PK_TOPOL_array_t **const unders, --- underlying topology --- of each blend face PK_blend_rib_r_t *const ribs, --- ribs returned (if any) PK_fxf_error_t *const fault --- fault found (if any) ) This function makes a blend of the given faces. Specific Errors: PK_ERROR_not_in_same_partition faces are not all in the same partition PK_ERROR_fxf_blend_failed could not create blends This function creates one or more blends between the two sets of faces provided. The user specifies whether the blend will be attached to the bodies involved or returned as a separate sheet body. The user may also specify whether cross sections of the surfaces, "ribs", are returned instead of or as well as blends. For further details see the "Face-face Blending" chapter of the Functional Description. The function receives: left_wall_faces an array of the faces which make up the left wall. These faces must all lie in the same shell of the same body. right_wall_faces an array of the faces which make up the right wall. These faces must all lie in the same shell of the same body. The two walls do not need to lie in the same body. If the blend does not contact either the first face in left_wall_faces or the first face in right_wall_faces (or both), then PK_FACE_make_blend will fail. Please also refer to the Parasolid Functional Description Chapter Face-face Blending, Master Faces section. left_sense a logical determining which side of left_wall_faces the blend lies. The blend lies in the direction of the face normals if left_sense is false. right_sense a logical determining which side of right_wall_faces the blend lies. The blend lies in the direction of the face normals if right_sense is false. Further options can be supplied to the function in the PK_FACE_make_blend_o_t option structure. If PK_FACE_make_blend has successfully created a blend, then: sheet_bodies will consist of an array of all new blend sheet bodies created, or nil if the blend has been attached. face_blends will consist of an array of n_blends blend faces. unders will consist of a parallel array of n_blends integers which contain the ( possibly dead ) tags of the underlying topology used to determine the equivalent blend face in blend_faces. Each array will consist of the tag of the face in the left wall, then the tag of the face in the right wall, then any other data that determined the geometry of the blend face, such as a cliff edge or tangent hold line. ribs consists of PK_blend_rib_r_t structure containing the fields: n_ribs the number of curves and points in the ribs array (may be 0) rib_indices an array of integers uniquely identifying each rib rib_parms an array of parameters of each rib, with values in the range of the parameter curve ribs an array of curves and points which are cross sections of the blend surfaces fault consists of PK_fxf_error_t structure containing the fields: fault a success status token of type PK_fxf_fault_t n_topols the number of topological entities associated with the fault topols an array of topological entities associated with the fault n_points the number of vectors associated with the fault points an array of vectors associated with the fault n_dists the number of distance values associated with the fault dists an array of distance values associated with the fault The possible returns are PK_fxf_fault_no_fault_c The requested blend succeeded. PK_fxf_fault_sheet_c The blend has not been attached, nor have the walls been trimmed but blend sheet bodies have been created. This token is only returned if PK_FACE_make_blend was called with walls set to PK_blend_walls_both_c or PK_blend_walls_attach_c represents a partial success. The associated data is a vector in points and topological tags in topols These indicate the region where the blend could not be attached. PK_fxf_fault_unknown_c The blend could not be created. PK_fxf_fault_insufficient_c The user has supplied insufficient data to define a blend. PK_fxf_fault_inconsistent_c The user has supplied inconsistent data. PK_fxf_fault_wall_c The user has supplied an invalid wall of faces. The associated data in topols is the invalid array of faces. PK_fxf_fault_range_c The user has supplied an invalid range definition. PK_fxf_fault_thl_c The user has supplied invalid tangent hold line data. The associated value in topols is the invalid tangent hold line data. PK_fxf_fault_cliff_c The user has supplied invalid cliff edge data. The associated value in topols is the invalid cliff edge data. PK_fxf_fault_curved_c A face in a wall is too tightly curved for the blend to fit. The associated value in topols is the face in question. PK_fxf_fault_small_c A blend range is too small. The associated value in dists is the suggested larger range for the blend. PK_fxf_fault_large_c A blend range is too large. The associated value in dists is the suggested smaller range for the blend. PK_fxf_fault_left_c left_sense is incorrect. PK_fxf_fault_right_c right_sense is incorrect. PK_fxf_fault_both_c Both left_sense and right_sense are incorrect. PK_fxf_fault_sheet_clash_c The blend sheet(s) intersect one another and hence could not be attached. The associated data is a vector in points and topological tags in topols These indicate which sheet(s) clashed and the point at which they clashed. PK_fxf_fault_wall_clash_c The blend, which has been attached, has combined two bodies and has produced a face-face inconsistency elsewhere in the model. The associated value in topols is an array containing the tags of a pair of clashing faces. PK_fxf_fault_face_face_c The blend,which has been attached, has caused a face-face inconsistency. The associated value in topols is an array containing the tags of a pair of clashing faces. PK_fxf_fault_self_int_c The blend contains face(s) with self intersecting geometry. The associated value in topols is an array containing the tags of the blend faces with self-intersecting surfaces. PK_fxf_fault_rho_value_c The user has supplied invalid rho values in the rho law function. PK_fxf_fault_asymmetric_c The user has supplied asymmetric ranges which are inconsistent with the underlying geometry. PK_fxf_fault_chl_c The user has supplied invalid conic hold line data. The associated value in topols is the invalid conic hold line data. PK_fxf_fault_bad_spine_c The user has supplied an invalid parameter spine. An associated value may be returned in points, representing a point where the spine is unsuitable. PK_fxf_fault_bad_ribs_c The user has supplied invalid rib controls.