![]() |
ATGETO |
| Equivalent PK functions: |
PK_FACE_attach_surfs PK_EDGE_attach_curves PK_FIN_attach_curves PK_VERTEX_attach_points |
ATGETO ( ntopol, topol, sense, ngeom, geom, ifail )
===================================================
Attach geometry to topology
Receives:
int *ntopol --- number of topological entities
KI_tag_topology topol[ntopol] --- topological entities
KI_cod_logical sense[ntopol] --- face senses
int *ngeom --- number of topological entities
KI_tag_geometry geom[ngeom] --- geometric entities
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 Entities are not all in the same partition
Description:
This function connects geometric entities (geom[]) to topological entities
(topol[]). The array of senses (sense[]) must be the same length as the array
of topology. The senses are used to set the face sense only and are ignored if
the corresponding topology is not a face (edges and fins do not have a sense).
The length of the geometrical entity array ngeom must be either 1 or equal to
the length of the topological entity array ntop.
If the geometrical entity array is the same length as the topological
entity array then ATGETO connects each geometric entity to the
corresponding topological entity in the arrays. A geometric entity may
occur more than once in the array of geometrical entities and if this
is the case then geometry will be shared, providing the sharing is
legal.
If the geometrical entity array only has one element then this element
will be connected to all of the elements in the topological entity array
and thus shared between them.
Each geometric entity is connected to the corresponding 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
ATGETO will not copy any geometric entity, thus attachments are further
restricted by constraints on the sharing of geometry:
o Geometry that will be shared after the call to ATGETO may only be
shared by topology within one body. Points and transforms may not
be shared.
o A curve cannot be shared between two edges which have opposing
directions.
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 be approximate. No curve may
be attached to an approximate edge and no curves may be attached to the fins
of an accurate edge.
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 self intersection check is only performed if the appropriate option is
set (see SEINTP).
If a transform is being attached to an instance it may only contain
translation and rotation components. Reflections, scales and shears are not
allowed.
Note: ATGETO may not be used to attach construction geometry to a body or
assembly: use DEFCON for this.