![]() |
SWEENT |
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.