 |
PK_BODY_taper_o_t |
|
struct PK_BODY_taper_o_s
{
int o_t_version; --- version number of option
--- structure
double tolerance; --- max. tol. for applying
--- surfaces (1.0e-5)
PK_LOGICAL_t miter_at_parting;
--- whether to miter halves
--- at the parting sheet
--- (PK_LOGICAL_true)
PK_LOGICAL_t merge_face; --- whether tapered faces
--- are to be merged with
--- their neighbours
--- (PK_LOGICAL_true)
PK_check_fa_fa_t check_fa_fa; --- check for face-face
--- inconsistencies
--- (PK_check_fa_fa_yes_c)
PK_taper_method_t default_method;--- default tapering method
--- (PK_taper_method_isocline_c)
int n_methods; --- number of non-default
--- tapering methods (0)
const PK_taper_method_t *methods; --- non-default tapering
--- methods (NULL)
const PK_ENTITY_t *method_refs; --- reference entities to use
--- non-default tapering
--- method (NULL)
PK_taper_corner_type_t corner_type; --- how to fill the gap at the
--- corner of two adjacent faces
--- (PK_taper_corner_extend_c)
int n_parting_edges;
--- number of parting edges (0)
const PK_ENTITY_t *parting_edges; --- all the edges lying on the
--- parting body (NULL)
PK_taper_miter_type_t miter_type; --- how to miter the halves
--- (PK_taper_miter_on_ref_c)
int n_non_miter_edges;
--- number of non-miter
--- reference edges (0)
const PK_EDGE_t *non_miter_edges;
--- non-miter reference edges
--- (NULL)
int n_replace_edges;
--- number of replace edges (0)
const PK_EDGE_t *replace_edges; --- edges to be replaced to allow
--- adjacent faces to meet the
--- nearby tapered faces (NULL)
PK_taper_undercut_t undercut; --- how to cope with undercut
--- (PK_taper_undercut_ref_no_c)
int n_upper_faces; --- number of upper faces (0)
const PK_FACE_t *upper_faces; --- faces to be tapered from
--- their upper bounds using
--- surfaces created from their
--- highest point (NULL)
int n_lower_faces; --- number of lower faces (0)
const PK_FACE_t *lower_faces; --- faces to be tapered from
--- their lower bounds using
--- surfaces created from their
--- lowest point (NULL)
PK_taper_concave_type_t concave_type; --- how to replace the concave
--- corners in mitering
--- (PK_taper_concave_none_c)
double concave_radius;--- radius of the cylinder for
--- making imprints to replace
--- the imprints to miter to
--- at a concave corner (0.0)
PK_taper_keep_material_t keep_material; --- how to process regions
--- of material which protrude
--- from the tapered faces
---(PK_taper_keep_material_no_c)
PK_local_ops_update_t update; --- update flag
--- (PK_local_ops_update_default_c)
};
typedef struct PK_BODY_taper_o_s PK_BODY_taper_o_t;
This structure contains optional controls for PK_BODY_taper.
Used in:
PK_BODY_taper
Description of fields:
'tolerance' Maximum tolerance for the operation. The default
value is 1.0e-5.
'miter_at_parting' If this flag is set to PK_LOGICAL_true, the
resulting body will be mitered. The default
value is PK_LOGICAL_true.
See here for more information.
'merge_face' If this flag is set to PK_LOGICAL_true, the
new faces produced by the operation will be
merged with their neighbouring faces, if it is
feasible. The default value is PK_LOGICAL_true.
'check_fa_fa' Check for face-face inconsistencies.
Values can be :
PK_check_fa_fa_no_c
PK_check_fa_fa_yes_c
The default value is PK_check_fa_fa_yes_c.
'default_method' Tapering method to construct new surfaces.
Allowed values are:
PK_taper_method_isocline_c : isocline method
PK_taper_method_curve_c : curve method
PK_taper_method_surface_c : surface method
The default is PK_taper_method_isocline_c.
See here for more information.
'n_methods' Number of elements in 'methods' and 'method_refs'
arrays. Default is 0.
'methods' Array of 'n_methods' tapering methods to be
used instead of 'default_method' corresponding
to reference entities in 'method_refs'. Default is
NULL. See here for more information.
'method_refs' Array of reference entities to use non-default
tapering method specified in corresponding
entries of 'methods'. Only entities given as
references to PK_BODY_taper are allowed in this
array.
'corner_type' How to fill the gap at the corner of two taper faces
built on adjacent edges. This can be one of:
PK_taper_corner_extend_c
PK_taper_corner_plane_c
The default is PK_taper_corner_extend_c.
See here for more information.
'n_parting_edges' Number of parting edges. The default is 0.
'parting_edges' Either NULL or array of all the edges (of the body
to be tapered) that lie on the parting body.
The edges in the list should be created by
intersecting the body and the parting body.
The default is NULL.
See here for more information.
'miter_type' How to modify the taper faces by mitering. This can
be one of:
PK_taper_miter_on_ref_c
PK_taper_miter_to_face_c
PK_taper_miter_at_open_c
The default is PK_taper_miter_on_ref_c.
See here for more information.
'n_non_miter_edges' Number of non-miter reference edges. The default is 0.
'non_miter_edges' Array of reference edges on which the taper faces are
constructed as if miter_at_parting had been set to
PK_LOGICAL_false regardless of its real value.
See here for more information.
'n_replace_edges' Number of replace edges. The default is 0.
'replace_edges' Edges to be replaced to allow adjacent faces to meet
the nearby tapered faces. The default is NULL.
See here for more information.
'undercut' How to cope with undercut. This can be one of:
PK_taper_undercut_ref_no_c
PK_taper_undercut_ref_yes_c
The default is PK_taper_undercut_ref_no_c.
See here for more information.
'n_upper_faces' Number of upper faces. The default is 0.
'upper_faces' Array of faces above the parting body where the taper
faces are constructed from their upper bounds using
surfaces created from their highest point with respect
to the draw direction. The default is NULL.
See here for more information.
'n_lower_faces' Number of lower faces. The default is 0.
'lower_faces' Array of faces below the parting body where the taper
faces are constructed from their lower bounds using
surfaces created from their lowest point with respect
to the draw direction. The default is NULL.
See here for more information.
'concave_type' How to replace the imprints to miter to at the concave
corners where the imprints of above taper faces cross
the imprints of below taper faces on the parting body.
The allowed values are:
PK_taper_concave_none_c : perform no smoothing
PK_taper_concave_radius_c : see concave_radius
PK_taper_concave_plane_c : see datatype definition
PK_taper_concave_mix_c : see datatype definition
The default is PK_taper_concave_none_c;
See here for more information.
'concave_radius' Radius of the cylinder that intersects the parting
body to create imprints to replace the imprints at a
concave corner. The cylinder takes the draw direction
as its axis and touches one imprint of each side at
the concave corner. The default is 0.0.
'keep_material' How to process regions of material which lie between
the references and the parting body which protrude
from the taper faces. This can be one of:
PK_taper_keep_material_no_c
PK_taper_keep_material_yes_c
The default is PK_taper_keep_material_no_c.
'update' The default value allows applications to take
advantage of the latest enhancements of the generic
algorithms supporting Parasolid local operations
functions. To maintain consistency when rebuilding
models created in a previous version of Parasolid,
a non-default value should be specified.
The default value is PK_local_ops_update_default_c