 |
PK_FACE_make_sect_with_sfs |
|
PK_ERROR_code_t PK_FACE_make_sect_with_sfs
(
--- received arguments ---
int n_targets, --- Number of target faces
PK_FACE_t targets[], --- Target faces
int n_tools, --- Number of tool surfaces
PK_SURF_t tools[], --- Tool surfaces
const PK_FACE_make_sect_with_sfs_o_t *options, --- Sectioning options
--- returned arguments ---
PK_TOPOL_track_r_t *const tracking, --- Tracking information
PK_FACE_make_sect_with_sfs_r_t *const results --- Resultant bodies
)
This function sections selected regions of the target body with
tool surfaces. The target body remains unchanged.
Specific Errors:
PK_ERROR_missing_geom Target or tool has incomplete geometry
(SERIOUS)
PK_ERROR_wire_body Target or tool has wireframe or acorn
components (MILD)
PK_ERROR_non_manifold Non-manifold result (SERIOUS)
PK_ERROR_boolean_failure Inconsistent arguments, or internal
error (SERIOUS)
PK_ERROR_general_body Target is a general body (MILD)
PK_ERROR_targ_faces_many_bodies Target faces are from more than one
body (MILD)
Introduction
The given set of tool surfaces is used to generate sections of faces of the
target body. The target body remains unchanged.
The target body may be solid or sheet.
The results are wire bodies created from edges resulting from imprinting
targets onto surfaces.
If non-manifold wire body is found it is added to 'reports' field of the
'results' with PK_section_report_non_manifold_c (see PK_section_report_r_t).
The result may contain several disjoint components, if 'allow_disjoint' is
set to PK_LOGICAL_false the components will be split out into separate bodies.
The operation of the sectioning may be controlled via a set of options passed
to the function as an input argument.
Output of the operation is returned in the 'results' structure.
See Non-destructive sectioning for more information.
Returned Arguments
Tracking
The 'tracking' structure contains topology tracking information on the
operation. In the case of this function, tracking information for all the
edges from 'bodies' is returned.
The PK_TOPOL_track_t structure in 'tracking' will be of type
PK_TOPOL_track_create_c. 'original_topols' will contain the tag of the target
face and tool surface. If the edge is coincident with the target edge,
tag of the target edge will be returned. The first entity will be from the
target body and second entity will be tool surface.
For the edges 'n_original_topols' will be 2.
Status and Fault Reporting
The 'results' structure contains resultant bodies and additional information,
if any about the operation.
If the function returns PK_ERROR_no_errors, then resultant wire bodies will
be contained within the 'bodies' array.
The 'reports' will provide information about non-manifold or other invalid
sections.
Each report structure contains a 'report' field indicating the reason for the
failure and, if possible, an array of entities. These entities may assist the
application in identifying the region or entities that resulted in the failure.
The 'entities' array may contain topology from the target and tool bodies. The
entities returned in the array will be members of the following classes :
o PK_CLASS_body
o PK_CLASS_shell
o PK_CLASS_face
o PK_CLASS_edge
o PK_CLASS_vertex
If 'report' is PK_boolean_report_non_manifold_c, the invalid section body will
be returned in 'entities' array.
Function Restrictions
The following restrictions apply to the sectioning operation :
o Targets are faces of the same body.
o This function does not support general bodies.