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.