 |
PK_TOPOL_make_facet_topol |
|
PK_ERROR_code_t PK_TOPOL_make_facet_topol
(
--- received arguments ---
int n_topols, --- Number of entities
PK_TOPOL_t topols[], --- Entities for which
--- to make new facet
--- geometry
double distance_tolerance, --- Maximum permitted
--- distance between
--- current geometry
--- and geometry
--- created to replace
--- it
const PK_TOPOL_make_facet_topol_o_t *options, --- Options structure
--- returned arguments ---
PK_ENTITY_track_r_t *const tracking, --- Tracking
--- information
PK_TOPOL_track_r_t *const redundant_topols, --- Topological
--- entities which
--- were merged out
--- in order to
--- accommodate the
--- new geometry
int *const n_modified_topols, --- Number of
--- topological
--- entities modified
PK_TOPOL_t **const modified_topols --- All topological
--- entities modified
--- during the
--- operation
)
This function generates facet geometry for an array of faces and edges from the
same body; the geometry of these entities is then replaced with the newly
created facet geometry.
Specific Errors:
PK_ERROR_failed_to_facet Not all of the 'topols' have had their geometry
replaced.
(SERIOUS)
PK_ERROR_not_in_same_body The 'topols' are not all from the same body.
(MILD)
PK_ERROR_wrong_entity The 'topols' array contains an item which is
neither a face nor a wireframe edge.
(MILD)
PK_ERROR_bad_tolerance The 'distance_tolerance' is less than the
value returned by PK_SESSION_ask_precision.
(MILD)
Restrictions on received entities
---------------------------------
Each topological entity received must be a face or a wireframe edge. Entities
may have classic or facet geometry, but must all come from the same body.
Action on received entities
---------------------------
Each received entity will have its geometry removed and replaced with new facet
geometry. Each face received will have its surface removed and replaced with a
mesh, while each wireframe edge received will have its curve removed and
replaced with a polyline. If the received entities already have facet
geometry, their geometry is still replaced; the new meshes will be
geometrically coincident with the existing ones wherever possible, but may be
subdivided if the supplied tolerances demand it.
Action on neighbouring and subordinate entities
-----------------------------------------------
Accommodation of the new geometry will often involve making changes to
entities other than those passed to the function. When converting a face:
o It will usually be necessary to replace the meshes of all edge-adjacent
mesh faces in order to achieve matching mesh topology along all mesh-mesh
edges. Wherever possible, the new meshes will be geometrically coincident
with the old ones, but may be subdivided around the edges.
o Any edges which will ultimately border only faces with facet geometry
will be made accurate, receive new curves, and have all their existing
geometry replaced; this includes any nominal curves attached to edges.
o Any edges which will ultimately be adjacent to both faces with classic
and faces with facet geometry will be made tolerant if they are not
already. In this case, all the fins which will ultimately lie in mesh
faces will receive new (geometrically coincident) polylines. If the
edge is initially accurate, SP curves will also be attached to the
fins which will lie in classic faces. Nominal curves associated with
existing tolerant edges will remain in place, if consistent with a
valid model structure.
o Model vertices will sometimes receive new points in order to
facilitate better matching between mesh faces.
Parasolid may change the topology of the model in order to produce a valid
result accommodating the new geometry.