 |
PK_FACE_make_3_face_blend_o_t |
|
struct PK_FACE_make_3_face_blend_o_s
{
int o_t_version; --- version number of options
double blend_tolerance;
--- tolerance for surface
--- construction (1.0e-05)
PK_LOGICAL_t have_propagation_tolerance;
--- whether a propagation tolerance
--- has been supplied
--- (PK_LOGICAL_true)
double propagation_tolerance;
--- angular tolerance in radians
--- for propagation (0.05)
PK_blend_propagate_t propagate; --- whether to propagate
--- (PK_blend_propagate_yes_c)
PK_blend_orientation_t left_orientation;
--- blend direction from left wall
--- (PK_blend_orientation_unknown_c)
PK_blend_orientation_t right_orientation;
--- blend direction from right wall
--- (PK_blend_orientation_unknown_c)
PK_blend_orientation_t centre_orientation;
--- blend direction from centre wall
--- (PK_blend_orientation_unknown_c)
PK_blend_trim_t trim; --- blend trimming option
--- (PK_blend_trim_to_walls_c)
PK_blend_walls_t walls; --- wall trimming option
--- (PK_blend_walls_attach_c)
PK_blend_repair_fa_X_t repair_fa_X; --- whether to attempt to repair
--- self-intersecting faces
--- (PK_blend_repair_fa_X_no_c)
PK_blend_xs_plane_t xsection; --- cross section shape
--- (PK_blend_xs_disc_c)
PK_PARTITION_t partition; --- a partition
--- (PK_PARTITION_null)
int n_limits; --- number of limit entities (0)
const PK_ENTITY_t *limits; --- entities limiting the blend
--- (NULL)
int n_caps; --- number of caps (0)
const PK_ENTITY_t *caps; --- entities for capping
--- blend (NULL)
const PK_LOGICAL_t *reverse_cap; --- whether cap orientation
--- should be reversed (NULL)
PK_blend_update_t update; --- disable changes for updates
--- (PK_blend_update_default_c)
PK_blend_check_fa_fa_t check_fa_fa; --- check for face-face
--- inconsistencies
--- (PK_blend_check_fa_fa_yes_c)
PK_blend_track_edges_t track_edges; --- whether to provide laminar
--- edge tracking when result is
--- a sheet body
--- (PK_blend_track_edges_no_c)
PK_blend_trim_extent_t trim_extent; --- additional controls upon
--- the trim option regarding
--- the walls whose extents
--- should be considered
--- (PK_blend_trim_extent_all_c)
PK_LOGICAL_t have_help_point;
--- whether help point is provided
--- (PK_LOGICAL_false)
PK_VECTOR_t help_point; --- help point
};
typedef struct PK_FACE_make_3_face_blend_o_s PK_FACE_make_3_face_blend_o_t;
This structure contains options for three face blending.
Used in:
PK_FACE_make_3_face_blend
The PK_FACE_make_3_face_blend_o_t contains the following options:
'blend_tolerance' The tolerance used to build the blend surfaces.
See Tolerance for more details.
'have_propagation_tolerance' Whether a 'propagation_tolerance' has been
provided. If this is PK_LOGICAL_false, then
the 'propagation_tolerance' option will be
ignored and the blend will only propagate
past smooth edges.
The default is PK_LOGICAL_true.
'propagation_tolerance' The angular tolerance in radians used to
propagate past sharp edges.
'propagate' If this is set to 'PK_blend_propagate_yes_c'
the blends will be allowed to propagate past
edges to faces beyond the provided walls.
See Propagating blends for more
details.
'left_orientation' Determines on which side of 'left_wall_faces'
the blend lies.
'right_orientation' Determines on which side of 'right_wall_faces'
the blend lies.
'centre_orientation' Determines on which side of 'centre_wall_faces'
the blend lies.
See Blend orientation for more details.
'trim' Indicates how the blend is to be trimmed.
See documentation of PK_blend_trim_t.
The default is PK_blend_trim_to_walls_c.
'walls' Determines if and how the blend sheets are
attached to the defining walls.
'repair_fa_X' This option controls whether or not Parasolid
will attempt to repair blend faces that are
self-intersecting.
'xsection' The cross section plane; it may be one of:
PK_blend_xs_disc_c (default) or
PK_blend_xs_rolling_ball_c.
(PK_blend_xs_isoparameter_c is not allowed.)
If this option is PK_blend_xs_rolling_ball_c
then the 'have_propagation_tolerance' option
must be set to PK_LOGICAL_false.
See Defining the cross-section plane
for more details.
'partition' An optional user-supplied partition. If a
partition is supplied and the blend options
specify the blend result is to be returned as
sheets, rather than attached to the left-hand
body being blended, then those resultant
sheets will be placed within this
user-supplied partition.
Default behaviour assumes no
partition supplied ( PK_PARTITION_null )
and any resultant sheets are placed in the
partition associated with the left-hand body
being blended.
'n_limits' The number of limiting entities.
'limits' A list of entities which will be used to stop the
blend. These entities can be planes, faces or
fins. One or two planes may be specified.
If the blend encounters a plane from this list,
the blend will be trimmed to end in a constant
parameter line determined by that plane, and will
lie on the positive side of the plane. If the
plane intersects the blend in more than one
location, the blend will be trimmed in only one
location, the one that is closest to the plane's
location vector (i.e. `basis_set.location' in
PK_PLANE_sf_t).
If the blend encounters a face or fin from
this list, it will stop and be trimmed to end
in a constant parameter line at that point.
'n_caps' The number of capping entities.
'caps' A list of entities which will be used to stop
and cap the blend.
Currently, Parasolid will handle entities of
class PK_CLASS_face and PK_CLASS_plane.
If the entity is a PK_FACE_t, then it must
belong to one of the bodies to which the walls
belong.
'reverse_cap' A list of flags which specify which side of each
cap will be the exterior of the cap. if
`reverse_cap[j]' is PK_LOGICAL_false, then the
algorithm will trim away the portion of the blend
on the side of `cap[j]' towards which the cap's
normal points.
'update' This option allows the disabling of some changes
to the blending algorithms for rebuild purposes.
'check_fa_fa' Controls the amount of checking for face-face
inconsistencies that is required. By default
this is set to PK_blend_check_fa_fa_yes_c,
activating all of the face-face inconsistency
checks. Setting this field to
PK_blend_check_fa_fa_no_c will disable all
face-face inconsistency checks.
'track_edges' Whether to provide additional tracking
information associated with laminar edges when
the blend result is a sheet body.
The default provides no tracking associated with
the laminar edges ( PK_blend_track_edges_no_c ).
Setting this option to
PK_blend_track_edges_laminar_c will request
additional tracking information. This additional
information will be returned within the
returned tracking structure and will usually
describe the underlying coincident edge
and/or face upon the original body.
'trim_extent' Whether to apply additional controls upon
trimming operations. The default is to
apply no additional controls upon trimming
operations and to consider the extent of all
three walls ( PK_blend_trim_extent_all_c ).
If the 'trim' option is set to
PK_blend_trim_no_c, PK_blend_trim_short_c
or PK_blend_trim_long_c this field can be set
to PK_blend_trim_extent_sides_c. Additionally
if the 'trim' option is set to
PK_blend_trim_to_walls_c and the central wall
lies in a different body to the bodies of the
left and the right wall this field can be
set to PK_blend_trim_extent_sides_c.
Setting this field to
PK_blend_trim_extent_sides_c will cause the
extent of the centre wall to be ignored when
performing trim operations and only the
extents of the left and right walls to be
considered.
When the body of the central wall is different
to those of the side walls and the user has
set 'trim' to PK_blend_trim_to_walls_c, the
'trim_extent' field value will be ignored and
the result returned will be as if 'trim_extent'
is set to PK_blend_trim_extent_sides_c.
'have_help_point' Whether a help point is provided.
'help_point' Help point provided.
A vector, which will be used to differentiate
between multiple alternative possible blends
between the walls. The blend which passes closest
to the help point will be the one that is
created.
None of the orientation options may be supplied as
'PK_blend_orientation_unknown_c' unless all the walls of faces lie in
the same body. If this is not the case, the blend will fail and the
'status' field of the PK_FACE_make_3_face_blend_r_t structure will be
returned as 'PK_3_face_blend_unoriented_c'.