| Equivalent PK functions: |
PK_BODY_sweep PK_FACE_sweep PK_VERTEX_sweep |
SWEENT ( swept, path, latrls, extent, nlatrl, state, ifail )
============================================================
Sweep entity
Receives:
KI_tag_list_topology *swept --- body, vertex, face or list of
--- faces to sweep
KI_vec_displacement path --- translation vector
Returns:
KI_tag_list_topology *latrls --- lateral edge or face(s)
KI_tag_list_topology *extent --- extruded vertex or edge(s)
KI_int_nitems *nlatrl --- number of laterals
KI_cod_rtlo *state --- state of body after sweep
--- RTLOOK => Valid
--- RTLONG => Negated
--- RTLOSX => Self-intersecting
KI_cod_error *ifail --- failure code
Specific errors:
KI_su_self_intersect Sweep would produce a self-intersecting surface
KI_impossible_sweep Cannot determine swept geometry
KI_non_manifold Cannot sweep body with non-manifold boundary
KI_unsuitable_entity Body unsuitable for sweep
KI_wrong_entity Sweep entity is not a body, vertex or face
Description:
The entity to be swept is moved along the path vector leaving lateral
entities in its wake. Entities which may be swept, the laterals they produce
and the type of the resulting body are identified in the following table.
Swept Entities | Laterals Returned | Result
===========================================================================
Minimal body | One edge | Wire body
| |
End vertex of wire body | One edge | Wire body
| |
Wire body | One or more faces | Sheet body
| |
Sheet body | One or more faces | Solid body
| |
One or more faces of a | One or more faces | Solid body
solid body | |
| |
General body | One or more faces | General body
| and edges |
===========================================================================
For every entry in 'latrls', there is a corresponding entry in 'extent'. This
list contains the topological entities extruded to create the lateral entities.
For every lateral face there is a swept edge from the original body and for
every lateral edge there is a swept vertex.
Suitable Sweep Entities:
. Any minimal body.
. End vertices (in contradistinction to interior vertices) of wires.
. Any wire body, either an open or closed loop of edges.
. Any sheet body whose boundary is manifold.
. Any group of manifold faces of a solid body. Entire shells must
not be contained within the list.
. Any general body with only one region and no edges with more than
two faces.
Attempting to sweep an entity which is not one of the above will give rise
to the ifail KI_unsuitable_entity.
An entity which has an edge whose attached curve is of the type TYCUIN
(ie intersection curve), TYCUFG (ie foreign geometry), TYCUSP (ie sp-curve)
or type TYCUCP (ie constant parameter curve) cannot be swept. However tolerant
edges and sheet bodies, which have curves of type TYCUSP (ie sp-curves)
attached to their fins can be swept.
After a sweep any coincident topology will not be fused or united.
In general this procedure may give rise to self-intersecting body
boundaries, which could cause unpredictable errors later.
Any new surfaces created are analytic surfaces if possible. If it is
not possible to use an analytic surface then the type of the new
surface will depend on SLIPGS (see SEINTP and OUINTP). If the creation
of generated surfaces is off, then any new non-analytic surfaces will
be B-surfaces; if it is on, then they will be swept surfaces.
If local checking is on, (see SEINTP and OUINTP) consistency checks will be
made on newly created topological and geometrical entities, and the state
of the body returned. A state of RTLOOK indicates the body is valid. A state
of RTLONG indicates that the result body was originally "inside out" but has
been negated, and is now "positive" (has positive volume) and valid. A state
of RTLOSX indicates the body is self-intersecting and further modelling
operations on it may fail.
If the session parameter for local checking is switched off, the state
returned will be RTLOOK regardless.
A self-intersecting body can be returned even if the ifail is zero.
For general bodies, the body is copied, the copy is transformed,
corresponding vertices on the body and its copy are joined with
lateral edges, and corresponding edges are joined with lateral faces.
All the lateral entities are returned, both edges and faces. The
state of RTLONG is never returned since this has no meaning for
general bodies.