ATTGEO   

Equivalent PK functions: PK_FACE_attach_surfs
PK_EDGE_attach_curves
PK_FIN_attach_curves
PK_VERTEX_attach_points

ATTGEO ( topol, geom, sense, ifail )
====================================

  Attach geometry to topology

Receives:
  KI_tag_topology          *topol          --- topological entity
  KI_tag_geometry          *geom           --- geometric entity
  KI_cod_logical           *sense          --- face sense

Returns:
  KI_cod_error             *ifail          --- failure code

Specific errors:
  KI_has_parent             'geom' is already attached
  KI_bad_shared_dep         attempt to illegally share a dependent of 'geom'
  KI_bad_shared_entity      attempt to illegally share 'geom'
  KI_geom_not_needed        'topol' already owns geometry
  KI_geom_topol_mismatch    geometry/topology mismatch
  KI_inconsistent_geom      inconsistent geometry
  KI_wrong_entity           type of 'topol' incorrect
  KI_invalid_geometry       geometry does not pass checks
  KI_not_in_same_partition  Topol and geom are in different partitions

Description:

  The geometric entity is connected to the topological entity if their types
  permit. The combinations of topology and geometry allowed are:


       geometry       |   topology
      ----------------|------------
       surface        |   face
       curve          |   edge
       curve          |   fin
       point          |   vertex
       transform      |   instance

  ATTGEO will not copy any geometric entity, thus attachments are further
  restricted by constraints on the sharing of geometry:

     o A point or transform cannot be attached to more than one topological
       entity. A curve or surface may be shared by more than one topological
       entity, so long as they are in the same body.

     o Orphan geometry may be attached to a face, edge or vertex if neither the
       entity nor any of its dependents are attached to topology and neither
       the entity nor any of its dependents are shared with any other
       orphan entity.

     o Construction geometry in a body may be attached to a face, edge or vertex
       so long as it is in the same body.

  There are also restrictions on the types of curve that may be attached to
  edges and fins. Only trimmed curves with SP curve basis curves may be attached
  to fins and the corresponding edge must have a user defined tolerance.
  No curve may be attached to a toleranced edge and no curves may be
  attached to the fins of a non-toleranced edge.

  If a transform is being attached to an instance it may only contain
  translation and rotation components. Reflections, scales and shears are not
  allowed.

  If data checking is on, (see SEINTP and OUINTP ), simple checks are made
  that geometry to be attached to a face, edge or vertex is geometrically
  consistent with any geometry attached to neighbouring topological entities,
  but the checks do not guarantee that the body is valid. For example, if a
  surface is attached to a face, a check is made that the curves of the edges
  of the face lie on the surface, but no check is made that the surface does
  not intersect other faces of the body. If the checks fail, attachment will
  not take place.

  If data checking is off, the only checks that will be performed are that
  the entity to be attached is of the correct type.


  When surfaces are attached to faces, 'sense' specifies the value to which
  the face sense is set. If 'sense' is true, the face normal is parallel
  to the surface normal. For all other combinations of geometry and
  topology the 'sense' is ignored.

  The curve or surface must be capable of passing the checks imposed by CHCKEN.

  The composite geometry checks are only performed if SLIPCO (see SEINTP) is
  set to 0.

  The self intersection check is only performed if SLIPSI (see SEINTP) is set
  to a non zero value.


  Note: ATTGEO may not be used to attach construction geometry to a body or
  assembly: use DEFCON for this.