 |
PK_FACE_taper |
|
PK_ERROR_code_t PK_FACE_taper
(
--- received arguments ---
int n_faces, --- number of target faces (>0)
const PK_FACE_t faces[], --- faces to be drafted
const PK_ENTITY_t references[], --- reference entities
PK_VECTOR1_t direction, --- taper direction
double angle, --- taper angle
double tolerance, --- max. tol. for applying surfaces
const PK_FACE_taper_o_t *options, --- options [PF]
--- returned arguments ---
PK_TOPOL_track_r_t *const tracking, --- tracking information
PK_TOPOL_local_r_t *const results --- status information
)
This function applies tapering to the given 'faces' by replacing their
geometry with taper surfaces.
NOTE : This function supersedes PK_FACE_install_surfs_isocline.
This function offers partial support for facet geometry [PF]
Specific Errors:
PK_ERROR_wrong_entity_in_array (MILD) Given faces are not from same
body.
PK_ERROR_bad_angle (MILD) Inconsistent specification of
taper angles.
PK_ERROR_unsuitable_topology (MILD) Laminar reference edge(s) for
normal method taper.
Parting body is not sheet.
PK_ERROR_bad_combination (MILD) Option 'parting_edges' specified
without also specifying
'parting_body'.
Option 'parting_body' specified
without also specifying
'parting_edges'.
Some entries of 'parting_edges'
also in 'tapered_edges' or
'normal_edges'.
A parting edge has the same taper
face on both sides.
A parting edge is laminar.
A combination of facet and
classic geometry has been
supplied.
PK_ERROR_non_manifold (SERIOUS) 'faces' are not locally manifold
See also here for more information.
Introduction
Taper (or isocline) surfaces are specified by a 'direction' and an 'angle'.
For each face in 'faces' a taper surface is defined by a 'reference'
entity.
The reference entity may be of classes:
o PK_CLASS_edge: A taper surface is defined through the curve of the
edge between the vertices of the edge (if it has any).
o PK_CLASS_face: The taper surface(s) to be used for the face in
'faces' is to be that (those) defined for this 'reference' face.
o PK_CLASS_surf: A taper surface is defined through the curve of
intersection between the face's surface and the reference surface.
A reference surface can also be used in association with step reference
edges to produce step tapering. See here for more information.
See here for more information.
A face may appear more than once in 'faces'. The effect of this is that
the face will be split so as to satisfy the separate constraints.
In the case of Step Tapering, no face-splitting occurs; the step reference
edges which lie on the reference surface will produce no step faces,
the other face-related step reference edges will each produce a step face.
The step reference edges are passed in through the controls in the options
structure.
There are two types of step reference edges, the 'tapered' edges and
the 'normal' edges :
o 'tapered' edges produce step faces tapered at an angle which is greater
or equal to the specified taper angle (they therefore satisfy the taper
condition).
o 'normal' edges produce step faces normal (perpendicular) to the original
relevant taper face (they do not necessarily satisfy the taper condition).
If a face appears in 'references' then it must also appear in 'faces'.
The function may, at times, have to use approximate geometry.
For such cases, 'tolerance' specifies an upper bound on the distance by which
a point on the actual geometry may deviate from its ideal position.
While the function will usually satisfy this constraint, it is not guaranteed.
The faces can belong to a general body, so long as they are locally manifold.
The taper cannot cause the faces to clash with non-manifold regions of the
body.
User options
The PK_FACE_taper_o_t structure contains user control options. See its
documentation for details.
Tracking
The PK_TOPOL_track_t structure contains topology tracking information on
the operation. In the case of this function, two types of tracking information
records may be returned :
1) PK_TOPOL_track_create_c, to report newly created tapered faces (or faces
deriving from them). These new faces will have the relevant initial taper
face and eventually the relevant reference edge as original topologies.
In a step taper context, the step faces will also be reported
in records of this type.See here for more information.
2) PK_TOPOL_track_derive_c, to report faces deriving from existing ones,
through any combination of splitting and merging.
Error handling
If this function returns PK_ERROR_no_errors, the result of the operation
will be indicated by the value of the 'status' field of the 'results'
structure. When this value is not PK_local_status_ok_c or
PK_local_status_nocheck_c, it indicates an operation failure and an array
of entities involved in this failure is returned through the field
'error_entities' of the 'results' structure, when possible.
For more information regarding the failure status code and the error_entities,
refer to the PK documentation of the PK_TOPOL_local_r_t structure.