 |
PK_FACE_make_blend_o_t |
|
struct PK_FACE_make_blend_o_s
{
int o_t_version; --- version number of options
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_shape_t shape; --- shape of blend
PK_blend_constraint_t constraints; --- constraints on blend
PK_blend_rib_control_t rib_control; --- blend section requests
double tolerance; --- tolerance (1.0e-05)
PK_LOGICAL_t have_help_point;
--- whether help point is provided
--- (PK_LOGICAL_false)
PK_VECTOR_t help_point; --- help point
PK_LOGICAL_t multiple; --- create multiple blend sheets
--- (PK_LOGICAL_false)
PK_blend_propagate_t propagate; --- whether to propagate
--- (PK_blend_propagate_no_c)
PK_LOGICAL_t notch; --- enable blends to notch
--- (PK_LOGICAL_false)
PK_LOGICAL_t local_check; --- whether local checks required
--- (PK_LOGICAL_false)
PK_blend_local_check_t checks; --- which local checks to perform
PK_blend_update_t update; --- disable changes for updates
--- (PK_blend_update_default_c)
PK_SURF_t user_surface; --- user supplied blend surface
--- (PK_ENTITY_null)
PK_blend_repair_su_X_t repair_su_X; --- whether to attempt to repair
--- self-intersecting surfaces
--- (PK_blend_repair_su_X_no_c)
PK_blend_inside_tight_t inside_tight; --- blend on the inside of tightly
--- curved faces
--- (PK_blend_inside_tight_no_c)
PK_LOGICAL_t have_propagation_angle;
--- 'propagation_angle' is
--- provided
--- (PK_LOGICAL_false)
double propagation_angle;
--- maximum angular tolerance
--- for propagation
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_PARTITION_t partition; --- a partition
--- (PK_PARTITION_null)
PK_blend_prevent_sharp_t prevent_sharp;--- whether to attempt to prevent
--- sharp edges between blend
--- faces
--- (PK_blend_prevent_sharp_no_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_tolerance_t improve_tolerance;
--- controls the tolerance
--- setting of new edges
--- (PK_blend_tolerance_standard_c)
PK_blend_run_out_t run_out; --- whether to stop the blend when
--- the angle subtended by the blend
--- is equal to the specified
--- 'run_out_angle'.
--- (PK_blend_run_out_no_c)
double run_out_angle;--- the angle of normals used for
--- stopping the blend (0.1 radians)
PK_blend_report_repaired_t
report; --- whether to report any repaired
--- blend faces in the Parasolid
--- report stream containing a
--- record of type
--- PK_REPORT_record_type_1_c.
--- (PK_blend_report_repaired_no_c)
PK_extension_shape_t extension_shape;
--- Dictates the type of extension
--- to use on underlying surfaces of
--- faces. Note that only linear and
--- soft extensions are valid for
--- this option.
--- (PK_extension_shape_linear_c)
PK_blend_use_master_faces_t
master_faces;
--- Controls whether to use master
--- faces.
---(PK_blend_use_master_faces_yes_c)
PK_imprint_complete_t imprint_complete;
--- Whether to complete the
--- boundary of the blend to remove
--- excess face material when
--- blending between sheet bodies.
--- (PK_imprint_complete_no_c)
};
typedef struct PK_FACE_make_blend_o_s PK_FACE_make_blend_o_t;
This structure contains options for face face blending.
Used in:
PK_FACE_make_blend
The PK_FACE_make_blend_o_t contains the following options:
Trimming Options.
'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. See documentation of PK_blend_walls_t. The default is
PK_blend_walls_attach_c.
If either of the walls defining the blend is from a solid body, and 'walls'
is set to PK_blend_walls_attach_c, then 'trim' must be either
PK_blend_trim_short_c or PK_blend_trim_to_walls_c, and the blend must not be
wire-face.
For wire-face blends 'trim' must be PK_blend_trim_short_c and 'walls' must
be either PK_blend_walls_trim_no_c, PK_blend_walls_preview_c or
PK_blend_walls_attach_c.
If either of these conditions is not satisfied, the call to PK_FACE_make_blend
will return the fault code PK_fxf_fault_inconsistent_c.
See Trimming face-face blends for more information.
Blend Shape Options:
See PK_blend_shape_t for details of the controls used to define the shape
of the blend.
Blend Constraint Options:
'cliff_edges' Blend is constrained by cliff edges.
An array of edge tags is given.
The blend will be constrained to be cliffedge blend in the
region of the given edges.
'tangent_edges' Blend is constrained by tangent hold lines.
An array of edge tags is given.
The blend will be constrained to be a tangent
hold line blend in the region of the given edges.
For constant and variable radius rolling ball or disc blends
the blend need not be constrained by these edges. If the
blend is a variable radius rolling ball or disc blend, the
left and right ranges of the law curve must be equal.
'conic_edges' Blend is constrained by conic hold lines.
An array of edge tags is given.
The blend will be constrained to be a conic hold line
blend in the region of the given edges.
For constant and variable radius rolling ball blends
blend need not be constrained by these edges. If the
blend is a curvature continuous blend then 'cliff_edges'
and 'tangent_edges' must not be set, and the number of edge
tags in the array must be at least two.
See Constraining a blend locally using blend size for more
information.
'inv_tangent_edges'
Blend is constrained by inverted tangent hold lines.
An array of edge tags is given.
The blend will be constrained to be a tangent
hold line blend in the region of the given edges.
For constant and variable radius rolling ball or disc blends
the blend need not be constrained by these edges. If the
blend is a variable radius rolling ball or disc blend, the
left and right ranges of the law curve must be equal.
'inv_conic_edges'
Blend is constrained by inverted conic hold lines.
An array of edge tags is given.
The blend will be constrained to be a conic hold line
blend in the region of the given edges.
For constant and variable radius rolling ball blends
blend need not be constrained by these edges. If the
blend is a curvature continuous blend then 'cliff_edges'
and 'tangent_edges' must not be set, and the number of edge
tags in the array must be at least two.
See Inverting cliffedges and holdlines for more information.
'limit_1'
'limit_2' Limit Planes.
One or two planes may be specified.
The blend will be trimmed to end in a constant parameter
line determined by a plane. The blend will lie on the
positive side of the plane.
See Trimming blend to a plane for more information.
For a wire-face blend all edges in 'cliff_edges' must be from the wire body.
'tangent_edges', 'conic_edges', 'inv_tangent_edges' and 'inv_conic_edges'
must not be supplied.
Blend Rib Controls.
'output_rib' Control how ribs are produced.
This token controls under what circumstances face-face
blending will produce ribs. The default is to not
output ribs.
'group_rib' Control how to group the ribs produced.
Grouping controls how the limit on the number of ribs
is applied. This token defines whether the ribs are
grouped by blend face, or by the intervals along the
'parameter' curve defined by 'interval_parms',
or not at all (default).
'max_n_ribs' Limit on number of ribs produced per group.
The number of ribs produced in each group will be no
greater than this number. The default value is zero,
for which no ribs will be produced.
'n_interval_parms' Number of 'interval_parms' supplied.
Default is zero.
'interval_parms' Interval parameters.
These are used to divide the 'parameter' curve into
intervals for grouping ribs. They should have values
in the parameter range of the curve.
For wire-face blends these options must be left at their default value.
See Specifying when to produce ribs for more information.
Control Options.
'tolerance' A tolerance is associated with this blend.
'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.
If there is a blend which passes
close to the help point, it will be the one created.
The 'help_point' can be used in conjunction with
the 'output_rib' field of the 'rib_control' structure to
request that a rib is returned at the vector
provided in 'help_point'.
'multiple' Create multiple blends sheets.
PK_FACE_make_blend will only create one blend unless
this option is set to PK_LOGICAL_true.
See Dealing with multiple solutions for more
information.
'propagate' Propagate blends.
If this token is given the blends will be allowed
to propagate past smooth edges beyond the provided walls.
See Propagating blends for more information.
'notch' End Overflow
If this options is set to PK_LOGICAL_true the blend will
be allowed to extend past notches, whether in the middle
or at the end of the blend.
See Blend notches for more information.
'local_check' If this option is set to 'PK_LOGICAL_true', then
'checks' will be ignored, and the level of local checking
will be:
Surface self-intersection checks on all surfaces
except B-surfaces will be performed
Face checks will be performed
Face-face inconsistency checks will be perfomed.
If this option is set to 'PK_LOGICAL_false',
then the amount of local checking will
be determined by 'checks'.
'checks' Controls the amount of checking required. Ignored unless
'local_check' is set to 'PK_LOGICAL_false'. The faces of all
self-intersecting surfaces requested for detection are
returned in a report of type PK_REPORT_1_blend_faces_sx_c.
See Checking face-face blends for more
information.
'update' This option allows the disabling of some changes to the
blending algorithms for rebuild purposes.
See Options for more information.
'user_surface' This option allows users to users to supply a blend surface
to the face-face blending algorithm. The surface must be
within tolerance of the faces being blended. Parasolid
will attempt to use a given surface as a blend surface even
if this appears to be inconsistent with the 'left_sense' and
`right sense' arguments.
See User-supplied surfaces for more information.
'repair_su_X' This option controls whether or not Parasolid will attempt
to repair blend surfaces that are self-intersecting. It
only has an effect on constant radius rolling ball blends.
Parasolid will create suitable faces to patch the
self-intersecting regions. This option will only attempt to
repair blends that are self-intersecting due to an
underlying surface of the blend being too tightly curved to
support the blend if the 'inside_tight' option is set to
PK_blend_inside_tight_faces_c or
PK_blend_inside_tight_partial_c
If 'repair_su_X' is set to any value other than
'PK_blend_repair_su_x_no_c', then the faces of all
self-intersecting surfaces that could not be repaired are
returned in a report of type PK_REPORT_1_blend_faces_sx_c.
See Repairing self-intersecting blends for more
information.
'inside_tight' This option controls whether blends will be created on
the inside of faces that have a smaller radius of
curvature than the blend being created. Switching
this option on also enables blends on the inside of
cliff-edges that are more tightly curved than the
blend radius.
This option may only be used with constant or
variable radius rolling ball blends without conic
or tangent edges. In the variable radius case the
option must be either PK_blend_inside_tight_no_c or
PK_blend_inside_tight_blends_c.
This option may also only be used for blends with conic
or g2 cross-section shape; it may not be used for blends
with chamfer cross-section shape.
The values PK_blend_inside_tight_faces_c or
PK_blend_inside_tight_partial_c may only be supplied if the
'repair_su_X' option is set to PK_blend_repair_su_X_yes_c
or PK_blend_repair_su_X_report_c. In the latter case any
blend faces created on too tightly curved faces will be
returned as repaired.
See here for more information.
'have_propagation_angle'
If this option is set to PK_LOGICAL_true then a
'propagation_angle' has been provided and this will be used
to control propagation past sharp edges.
'propagation_angle'
The maximal angle in radians at which propagation past sharp
edges is allowed.
It is used whenever 'have_propagation_angle' is set to
PK_LOGICAL_true.
'repair_fa_X' This option controls whether or not Parasolid will attempt
to repair blend faces that are self-intersecting.
'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.
If any ribs are requested via the 'rib_control' structure
they will also be placed in the user-supplied
partition.
Default behaviour assumes no partition supplied
( PK_PARTITION_null ) and any resultant sheets or ribs are
placed in the partition associated with the left-hand
body being blended.
'prevent_sharp' This option controls whether Parasolid will attempt to
prevent sharp edges between blend faces. These can occur
for variable radius blends when passing a G2 discontinuity
in the faces that are being blended, or when the radius
definition of a blend changes sharply e.g. when a blend
becomes constrained by a tangent holdline.
This option may only be changed from its default value
( PK_blend_prevent_sharp_no_c ) if the following are all
satisified by the blend:
- it is a rolling-ball blend with a circular or G2
( PK_blend_xs_shape_g2_c ) cross-section shape; AND
- it has a constant radius, variable radius, constant
width, variable width or a tangent holdline; AND
- it is without conic holdline edges.
'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 return
structure and will usually describe the underlying
coincident edge and/or face upon the original body.
'improve_tolerance'
Whether to use new, improved tolerance handling
which reduces the tolerance of the newly created
edges. The default provides the old behaviour
( PK_blend_tolerance_standard_c ).
To get the new behaviour use
PK_blend_tolerance_improved_c.
'run_out'
Whether to stop the blend when the angle subtended by the
blend is equal to the specified 'run_out_angle'.
Should not be used together with wire-face blends, ribs or
user_surface.
( PK_blend_run_out_no_c ).
'run_out_angle'
The angle in radians to be used if PK_blend_run_out_angle_c
is specified. The default value is 0.1.
The angle must be greater then 0 and less then pi.
'report'
Whether to report any repaired blend faces in the
Parasolid report stream. Any records will be of type
PK_REPORT_record_type_1_c and will have a status of
PK_REPORT_1_rep_sx_faces_c or PK_REPORT_1_rep_G2_faces_c.
In the first case the report will list those blend faces
created by repairing self-intersections.
In the second, the blend_faces reported are those from
G2 blends which have been modified to preserve continuity
when crossing G2-discontinuous edges.
( PK_blend_report_repaired_no_c )
'extension_shape'
This option controls how underlying surfaces of faces and
curves of certain edges are extended for G2 blends. If the
surfaces/curves are extended linearly, then blends built on
the extension may have a C1 discontinuity on the boundary.
Setting this option to PK_extension_shape_soft_c avoids
this, but may require surfaces of faces to be extended as a
result. Any edges given in 'constraints' that bound one of
these faces may also need their curves softly extended.
The surfaces/curves whose soft extension was used to
construct the blend, as well as whether they have been
permanently extended, will be reported in a
PK_REPORT_3_geom_extended_c report. Any surfaces/curves that
could not be extended or already contains discontinuities
will also be reported in a PK_REPORT_3_blend_x_g1_c report.
This option may only be set to PK_extension_shape_soft_c
if 'xs_shape' in 'shape' is set to PK_blend_xs_shape_g2_c,
or the blend is a non-circular conic blend.
A non-circular conic blend can be achieved by setting
'xs_shape' in 'shape' to PK_blend_xs_shape_conic_c and
by setting either:
- 'rho_const' in 'shape'
- 'rho' in 'shape'
- an unequal 'range1_const' and 'range2_const' in 'shape'
- 'range1' and 'range2' in 'shape' with different
law curves
- or by providing conic holdlines in both walls and
ensuring that the blend contact points are defined only
by the holdlines. This can be done by not setting any of
the radius or range options in 'shape'.
( PK_extension_shape_linear_c )
'master_faces'
This option controls whether to use master faces.
If the value of the option is the default
PK_blend_use_master_faces_yes_c then only those blends are
created where the blend goes through the first
face of either wall (master face).
If the option is set to PK_blend_use_master_faces_no_c
then all blends which pass through any pair of faces
from the left wall and right wall are considered.
In this case if 'multiple' is PK_LOGICAL_true then
'have_help_point' must be PK_LOGICAL_false and all the
blends will be created. If 'multiple' is PK_LOGICAL_false
then 'have_help_point' must be PK_LOGICAL_true and only
the blend closest to the help point will be created.
PK_blend_use_master_faces_no_c is implemented only for
constant radius rolling ball blends without cliff and
holdline edges.
'imprint_complete'
When the blend is trimmed so that, on one side, the blend
meets a laminar edge ( usually via the 'trim' option or
stopping topology ) this option can be used to control how
to complete the blend boundary on the longer face. The
completed edges are used to trim off excess material. This
option can only be used if set to either the default or
PK_imprint_complete_laminar_c - the other values are not
implemented in blending. If one or more of the bodies being
blended are solid bodies, PK_fxf_fault_inconsistent_c
will be returned.
( PK_imprint_complete_no_c )
For wire-face blends the 'user_surface', 'repair_su_X', 'inside_tight',
'have_propagation_angle', 'repair_fa_X' and 'prevent_sharp' options must not
be changed from their default.