 |
PK_FACE_section_with_sheet_2 |
|
PK_ERROR_code_t PK_FACE_section_with_sheet_2
(
--- received arguments ---
int n_targets, --- number of target faces
const PK_FACE_t targets[], --- target faces
int n_tools, --- number of tool faces
const PK_FACE_t tools[], --- tool faces
const PK_FACE_section_o_t *options, --- sectioning options
--- returned arguments ---
PK_TOPOL_track_r_t *const tracking, --- tracking information
PK_section_2_r_t *const results --- front/back faces/bodies
)
This function sections selected regions of the target body with
selected regions of the tool sheet body.
Specific Errors:
PK_ERROR_contradictory_request Bad combination of options or
data for type of boolean
PK_ERROR_missing_geom Target or tool has incomplete
geometry
PK_ERROR_wire_body Target or tool is a wire body
PK_ERROR_partial_coi_found Boolean failure due to to partial
coincidence
PK_ERROR_general_body Target or tool is general body
PK_ERROR_same_tool_and_target Tool body is also target body
PK_ERROR_instanced_tools Instanced tool bodies
PK_ERROR_not_sheet Tool is not a sheet body
PK_ERROR_unsuitable_topology A region selector is from boundary,
wrong body or ambiguous
PK_ERROR_partial_no_intersect No imprinting in face boolean
PK_ERROR_boolean_failure Inconsistent arguments, or
internal error
Introduction
The given target body is sectioned with the given tool sheet body.
When the section sheet body intersects with the target body, the body will
be split, by the sheet faces, into two or more parts. The resulting
bodies are split into two lists, those in front of the section sheet
and those behind it. These bodies are returned in the 'front_bodies' and
'back_bodies' arrays of the 'results' structure. All new faces associated
with these bodies which lie in the sectioning sheet are returned in the
'front_faces' and 'back_faces' arrays of the 'results' structure.
The front of the section sheet is regarded as the side to which the
face normals point.
Any body unaffected by the sectioning operation will be left unchanged,
but will be put into the appropriate array within the 'results' structure.
The operation of the sheet sectioning function may be controlled via
an option structure passed to the function as an input argument.
This function operates similarly to the 'PK_FACE_boolean_2' function,
especially with regard to the phases of the boolean algorithm, the
region selectors and rules concerning tag persistence. Refer to the
'PK_FACE_boolean_2' documentation for information about these subjects.
Section Options
The function can be instructed, via the 'fence' option, to :
o Only calculate the bodies and faces in front of the section sheet.
o Only calculate the bodies and faces behind the section sheet.
o Calculate the bodies and faces in front and behind the section sheet.
Status and Fault Reporting
If the function returns an error code, PK_ERROR_not_sheet for example,
none of the return arguments of the function will be set. This is standard
practice for the PK interface. However, this is not the only mechanism by
which this function may indicate that a failure has occurred. The 'results'
structure may return failure related information as well.
Whenever the function returns 'PK_ERROR_no_errors', the application must
inspect the contents of the 'results' structure to check on the status of
the section operation. The 'result' field of the 'results' structure will
indicate the overall status of the section operation. If any bodies or
faces are to be returned to the application, these will be contained within
the 'front_bodies', 'back_bodies', 'front_faces' and 'back_faces' arrays.
If the 'results' field indicates a failure, the reason(s) for the failure
will be contained within the array of report structures, referenced via the
'reports' field.
The meaning and implied actions of the 'result' field is as follows :
1. PK_section_result_ok_c
o The section succeeded and the resultant entities are returned within
the appropriate arrays.
2. PK_section_result_no_clash_c
o The section succeeded and the resultant entities are returned within
the appropriate arrays. However, the target and tool entities did not
interact or clash in any manner.
3. PK_section_result_fail_c
o The section has failed.
o The result arrays will returned as null.
o The report structures must be inspected to determine the reason for the
failure and to identify the location of the failure.
o If this status is returned, the application cannot assume that the input
bodies are in a valid state.
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
NOTE: If the 'result' field is set to 'PK_section_result_fail_c', the
application must not assume that the input bodies are in a valid
Tracking Information
The returned 'tracking' structure is for future enhancements. Currently, the
structure will always be returned with empty arrays.
Function Restrictions
The following restrictions apply to sheet sectioning operations :
o This function does not support general bodies.
Option Restrictions
The following options within the input 'options' are
ignored by this function :
o 'tracking'
The following options within 'configuration' options are
ignored by this function :
o 'identical_intersect'
o 'one_in_all_in'