![]() |
SECTBY |
| Equivalent PK functions: |
PK_BODY_section_with_sheet PK_BODY_section_with_surf PK_FACE_section_with_sheet |
SECTBY ( bodies, surfac, front, back, newfas, nfaces, ifail )
=============================================================
Section bodies
Receives:
KI_tag_list_body *bodies --- body or list of bodies
--- to be sectioned
KI_tag_surface *surfac --- sectioning surface
Returns:
KI_tag_list_body *front --- bodies in front of surface
KI_tag_list_body *back --- bodies behind surface
KI_tag_list_face *newfas --- new faces
<KI_int_nitems> *nfaces --- number of faces in 'newfas'
KI_cod_error *ifail --- failure code
Specific errors:
KI_invalid_bodies Boolean failure or invalid bodies
KI_partial_coi_found Boolean failure due to partial coincidence
KI_wrong_surface Surface not plane, cylinder
KI_wire_body A body is a wire body
KI_missing_geom A body has incomplete geometry
KI_non_manifold Non-manifold result
KI_unsuitable_entity mixed body
KI_general_body general body
Description:
The given bodies are sectioned with the given surface, which
may be planar or cylindrical.
When the section surface intersects with a body, this body will
be split (by the section surface) into two or more parts.
The resulting bodies are sorted into two lists: those in front
of the section surface (on the side to which the surface normal
points) and those behind it. They are returned in the lists
'front' and 'back' respectively. A list of the new faces created
is also returned, in the list 'newfas'. All these faces will lie
in the sectioning surface.
For each body in 'bodies', all assemblies that instanced the
body will now instance all the pieces of the body.
Any bodies unaffected by the sectioning operation will be left
unchanged, but will be put into one or other of the 'front' or
'back' lists as appropriate.
After a successful sectioning operation, any of the lists 'front',
'back' and 'newfas' may be returned as empty lists, but not null.
This function does not support general bodies.