PK_BODY_fix_blends_o_t   
struct PK_BODY_fix_blends_o_s
    {
    int                    o_t_version;    --- version number of option
                                           --- structure
    PK_LOGICAL_t           local_check;    --- whether to perform local
                                           --- checking ( PK_LOGICAL_false )
    PK_LOGICAL_t           vx_twin;        --- return vertex tag for vertex
                                           --- blend ( PK_LOGICAL_false )
    PK_blend_local_check_t checks;         --- which local checks to perform
    PK_blend_setback_data_t
                           setback_data;   --- data defining any setbacks [NF]
    PK_blend_transfer_topol_t
                           transfer;       --- whether to move topology to
                                           --- blend
                                           --- (PK_blend_transfer_topol_no_c)
                                           --- [NF]
    PK_blend_fix_propagate_t
                           propagate;      --- whether to propagate
                                           --- blend edges [PF]
    PK_blend_vx_blend_data_t
                           vx_blend_data;  --- data defining any vertex
                                           --- blends [NF]
    PK_blend_y_blend_data_t
                           y_blend_data;   --- data defining any y-shaped
                                           --- vertex blends [NF]
    PK_LOGICAL_t           preserve_notch; --- retain notch shape
                                           --- (PK_LOGICAL_false)
    PK_blend_edge_update_t update;         --- update flag
                                           --- (PK_blend_edge_update_default_c)
                                           --- [NF]
    double                 tolerance;      --- maximum allowed tolerance for
                                           --- blend
                                           --- (1.0e-05)
    PK_blend_set_tol_t     set_tol;        --- controls when a tolerance is
                                           --- applied to the blend
                                           --- (PK_blend_set_tol_yes_c)
    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_output_sheet_t
                           output_sheet;   --- whether to create a blend
                                           --- sheet body
                                           --- (PK_blend_output_sheet_no_c)
    PK_blend_inside_tight_t
                           inside_tight;   --- whether to blend on the inside
                                           --- of tightly curved faces
                                           --- (PK_blend_inside_tight_blends_c)
    PK_blend_vx_order_data_t
                           vx_order_data;  --- order to apply blends at
                                           --- vertices with edges of
                                           --- different convexity [NF]
    PK_blend_setback_shape_data_t
                           setback_shape_data;
                                           --- whether to add collar
                                           --- faces to setback vertex
                                           --- patches
                                           --- (PK_blend_setback_collar_all_c,
                                           --- 0, NULL, NULL) [PF]
    PK_blend_ov_smooth_t    ov_smooth;     --- allow smooth overlap between
                                           --- non-adjacent blends
                                           --- (PK_blend_ov_smooth_no_c) [NF]
    PK_blend_ov_notch_t     ov_notch;      --- allow notch overlap between
                                           --- non-adjacent blends
                                           --- (PK_blend_ov_notch_yes_c) [PF]
    PK_blend_order_t        ov_order;      --- order to apply non-adjacent
                                           --- blends that overlap each other
                                           ---(PK_blend_order_convex_concave_c)
                                           --- [NF]
    PK_blend_repair_fa_X_t  repair_fa_X;   --- whether to attempt to repair
                                           --- self-intersecting faces
                                           --- (PK_blend_repair_fa_X_no_c) [NF]
    int                     n_explicit_cliff_edges;
                                           --- number of explicit cliffs
                                           --- defined ( 0 ) [NF]
    PK_EDGE_t              *explicit_cliff_edges;
                                           --- list of edges with explicitly
                                           --- defined cliffing behaviour.
                                           --- ( NULL ) [NF]
    PK_blend_ov_exp_cliff_t
                           *explicit_cliff_edges_type;
                                           --- explicitly defined cliffing
                                           --- behaviour of the corresponding
                                           --- edges in explicit_cliff_edges.
                                           --- ( NULL ) [NF]
    PK_PARTITION_t          partition;     --- a partition
                                           --- ( PK_PARTITION_null )
    PK_blend_cap_data_t     cap_data;      --- controls how a blend will be
                                           --- capped [NF]
    PK_blend_tolerance_t    improve_tolerance;
                                           --- controls the tolerance setting
                                           --- of new edges
                                           --- (PK_blend_tolerance_standard_c)
    PK_blend_track_type_t   tracking_type; --- controls the type of tracking
                                           --- data returned associated with
                                           --- the topology and geometry that
                                           --- has generated the blend faces
                                           --- (PK_blend_track_type_basic_c)
    PK_blend_laminar_trim_t laminar_trim;  --- controls how the blend will be
                                           --- trimmed when the end of the
                                           --- blend meets a laminar edge of a
                                           --- sheet body.
                                           --- (PK_blend_laminar_trim_edges_c)
                                           --- [NF]
    PK_blend_limit_data_t    limit_data;   --- data defining any limits [PF]
    PK_TOPOL_array_t         limit_topols; --- limit faces/fins [NF]
    PK_blend_limit_patch_t  *limit_topols_patch;
                                           --- controls whether to try
                                           --- patching the blend beyond
                                           --- the supplied limit topols [NF]
    const PK_TOPOL_array_t  *limit_topols_unders;
                                           --- controls whether the supplied
                                           --- limit topols should only limit
                                           --- blends that are between the
                                           --- specified underlying topologies
                                           --- [NF]
    PK_blend_suggest_limit_t suggest_limit;--- controls whether or not
                                           --- suggested limit data is returned
                                           --- after edge blend failure
                                           --- (PK_blend_suggest_limit_no_c)
    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_report_extended_t
                             report_extended;
                                           --- whether to report any chamfer
                                           --- faces that are extended
                                           --- outside of their natural width
                                           --- in the Parasolid report stream.
                                           --- (PK_blend_report_extended_no_c)

    };

typedef struct PK_BODY_fix_blends_o_s PK_BODY_fix_blends_o_t;



Holds optional controls for fixing blends on a body.

Used in:

PK_BODY_fix_blends


The option structure defines options applicable to fixing blends on a body.

Description of fields:

'local_check'       The 'local_check' flag and the 'checks' data structure are
'checks'            used to control the amount of checking during the blending
                    operation:

                    If 'local_check' is set to PK_LOGICAL_true, then
                    'checks' will be ignored, and the level of local checking
                    will be:

                        No surface self-intersection checks will be performed
                        Face checks will be performed
                        Face-face inconsistency checks will be performed.

                    If 'local_check' is set to PK_LOGICAL_false, then the
                    amount of local checking will be determined by 'checks'.

                    If the 'local_check' flag is set to PK_LOGICAL_false and
                    a self-intersecting surface or a face-face inconsistency
                    is detected during a local check specified by the
                    application, then 'fault' returned by PK_BODY_fix_blends
                    will be set accordingly, 'fault_edge' will be set to
                    PK_ENTITY_null and 'fault_topol' will be set to one of the
                    invalid faces. The blend will have been attached.

                    The faces of all self-intersecting surfaces requested for
                    detection are returned in a report of type
                    PK_REPORT_1_blend_faces_sx_c.


'vx_twin'           The option 'vx_twin' is used to request that the
                    integer in 'topols' returned by PK_BODY_fix_blends be the
                    (dead) tag of the appropriate
                    vertex for those blend faces which are generated
                    from vertices rather than the (dead) tag of an edge.
                    (default is PK_LOGICAL_false). See
                    Tag of originating vertex for more information.

'setback_data'
'setback_shape_data'
                    The options 'setback_data' and 'setback_shape_data' are
                    used to control the shape of the blend where three or
                    more blends meet at a vertex. If any blends to be fixed
                    have a cross-section shape of PK_blend_xs_shape_chamfer_c
                    then setback blends are not allowed.

'transfer'          The option 'transfer' is used to select whether any
                    topology in the region which has been completely overlapped
                    by the blend will be transferred into the blend faces or
                    whether it will be deleted. See
                    Preserving overlapped topology for more
                    information.

'propagate'         The option 'propagate' controls the amount of propagation
                    that can be performed during the blend fixing operation.
                    Note that propagation must be turned off for facet
                    geometry.

'vx_blend_data'     The option 'vx_blend_data' is used to define the shape of
                    the blend where blending past sharp edges of opposite
                    convexity to the blend. If any blends to be fixed have a
                    cross-section shape of PK_blend_xs_shape_g2_c or
                    PK_blend_xs_shape_chamfer_c, vertex blending is not
                    allowed: the option's 'vertex_blend' field must be
                    PK_LOGICAL_false.

'y_blend_data'      The option 'y_blend_data' is used to define the shape of
                    the blend where two blends on adjacent edge of opposite
                    convexity meet. If any blends to be fixed have a
                    cross-section shape of PK_blend_xs_shape_chamfer_c, y
                    blends are not allowed: the option's 'y_blend' field must
                    be PK_LOGICAL_false.

'preserve_notch'    The option 'preserve_notch' only has an effect when a
                    sheet body is being blended. If it is set to
                    PK_LOGICAL_false, PK_BODY_fix_blends will make
                    a simple curve within the blend surface to bridge a laminar
                    notch. If this option is set to PK_LOGICAL_true, the shape
                    of the notch is projected normally onto the blend surface
                    to bridge the notch gap. If a solid body is being blended
                    this option has no effect and is ignored.
                    See Preserving notch shape for more information.

'update'            The default value allows applications to take advantage of
                    the latest enhancements to the blending algorithm. To
                    maintain consistency when rebuilding models created in a
                    previous version of Parasolid, a non-default value should
                    be specified.
                    See Update control for more information.

'tolerance'         The options 'set_tol' and 'tolerance' control whether a
'set_tol'           tolerance may be applied to the blend.
                    'set_tol' must be set to PK_blend_set_tol_no_c for facet
                    geometry.

'repair_su_X'       The option 'repair_su_X' controls whether or not Parasolid
                    will attempt to repair blend surfaces that are
                    self-intersecting. It only has an effect on conic 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.

'output_sheet'      The option 'output_sheet' controls whether the blend
                    should be attached or created as a separate sheet body.
                    If the 'output_sheet' option is set to
                    PK_blend_output_sheet_on_fail_c, the blend sheet body
                    (possibly disjoint) produced may not remain consistent over
                    different builds of Parasolid. Future improvements to
                    blending functionality may result in failing blends
                    succeeding. Thus, application updates should not depend
                    upon a blend failing and producing a blend sheet body.

'inside_tight'      The option 'inside_tight' controls whether blends will be
                    created on the inside of faces that have a smaller radius
                    of curvature than the blend. Switching this option on also
                    enables cliff-edge overflows on the inside of cliff-edges
                    that are more tightly curved than the blend radius. This
                    option will only apply to blends set by using
                    PK_EDGE_set_blend_constant, or conic blends set via
                    PK_EDGE_set_blend_chain. 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.  The value
                    PK_blend_inside_tight_no_c is not currently implemented for
                    PK_BODY_fix_blends and should not be supplied.
                    See Creating blends inside tight corners for
                    more information.

'vx_order_data'     The option 'vx_order_data' controls the order in which
                    blends are applied at vertices with edges of different
                    convexity.

'ov_smooth'         The options 'ov_smooth', 'ov_notch' and 'ov_order' control
'ov_notch'          the result returned when two blends on edges that do not
'ov_order'          share a common vertex overlap with each other. The
                    combination PK_blend_ov_smooth_yes_c and
                    PK_blend_ov_notch_yes_c is not currently implemented and
                    should not be supplied. The option 'ov_order' must be set
                    to either PK_blend_order_concave_convex_c or
                    PK_blend_order_convex_concave_c. If any blends to be fixed
                    have a cross-section shape of PK_blend_xs_shape_chamfer_c
                    then 'ov_smooth' must be set to PK_blend_ov_smooth_no_c.
                    Note that PK_blend_ov_notch_yes_c is not implemented for
                    blends on facet geometry.

'repair_fa_X'       The option 'repair_fa_X' controls whether or not Parasolid
                    will attempt to repair blend faces that are
                    self-intersecting.

'explicit_cliff_edges'
'explicit_cliff_edges_type'
                    The options 'explicit_cliff_edges' and
                    'explicit_cliff_edges_type' are used together to
                    explicitly define cliffing behaviour upon the edges
                    contained in the list of edges 'explicit_cliff_edges'.
                    For every element in 'explicit_cliff_edges' there should
                    be a corresponding element in the list
                    'explicit_cliff_edges_type'. The elements of
                    'explicit_cliff_edges_type' are of type
                    PK_blend_ov_exp_cliff_t and can take the value
                    PK_blend_ov_exp_cliff_no_c or PK_blend_ov_exp_cliff_yes_c.
                    PK_blend_ov_exp_cliff_no_c specifies that regardless of
                    all other options cliffing should not occur upon the
                    associated edge. PK_blend_ov_exp_cliff_yes_c specifies that
                    cliffing should occur upon the edge overriding the
                    behaviour specified by other options. If any blends to be
                    fixed have a cross-section shape of
                    PK_blend_xs_shape_chamfer_c, then explicit cliffs must not
                    be supplied.

'partition'         An optional user-supplied partition may be supplied in
                    '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 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
                    body being blended.

'cap_data'          Specifies user-defined controls for how the blend should
                    be capped. See the documentation for PK_blend_cap_data_t
                    for more information.

'improve_tolerance' The option 'improve_tolerance' controls some changes to
                    the blending algorithm which help to reduce the tolerance
                    on newly created topology. If this option is set to
                    PK_blend_tolerance_standard_c (the default) these
                    changes are disabled.

'tracking_type'     Determines the tracking information that is returned
                    regarding the underlying topologies and geometries used
                    to create a blend. See PK_BODY_fix_blends for details.

                    This option can only be set to
                    PK_blend_track_type_unders_c if the option 'vx_twin'
                    is set to PK_LOGICAL_true. If 'vx_twin' is not set
                    appropriately PK_ERROR_bad_combination will be returned.


'laminar_trim'      This option allows the user to control the trimming
                    behaviour of a blend created on a laminar edge of a
                    sheet body. The user can choose between trimming the blend
                    so that it is continuous with both underlying surfaces,
                    or trimming it along a continuous parameter line so that it
                    joins up continuously with the longer underlying surface
                    only.

'limit_data'        The option 'limit_data' provides a means of constraining
                    the blend by applying limits.

'limit_topols'      An array of faces and/or fins which will be used to stop
                    the blend. If the blend encounters a face or fin from this
                    array, it will stop and be trimmed to end in a
                    constant parameter line at that point.

'limit_topols_patch'
                    If supplied, this should be an array of the same length
                    as 'limit_topols'. Each element in this array specifies
                    whether to try patching the blend beyond the corresponding
                    limit topology specified in the 'limit_topols' array.

'limit_topols_unders'
                    If supplied, this should be an array of the same length
                    as 'limit_topols'. Each element in this array is an array
                    of topologies which specifies whether the corresponding
                    limit topology should only limit blends that are blends
                    between the specified underlying topologies.

                    Each topology array in the 'limit_topols_unders' should be
                    either of length zero or length two. If the array is of
                    length two then the array should contain a pair of faces;
                    the limit topology will only limit blends that are between
                    that pair of underlying faces. If the array is of length
                    zero then the corresponding limit topology will limit all
                    blend faces that meet the limit topology.

                    Underlying topologies may only be supplied for limit
                    topologies of class PK_CLASS_fin; if the limit topology is
                    not of class PK_CLASS_fin then the corresponding entry in
                    'limit_topols_unders' should be an array of length zero.

                    If 'limit_topols_unders' is not supplied then the blend
                    will stop at any entry in 'limit_topols' that the blend
                    meets.

'suggest_limit'     This option allows the user to control whether they wish
                    the suggested limit data to be returned as a report should
                    an edge blend failure occur. Future improvements to
                    blending functionality may result in failing blends
                    succeeding. Thus, application updates should not depend
                    upon a blend failing and returning a certain set of
                    suggested limits. This option will not return limits
                    on facet geometry.

'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 classic surfaces of
                    faces and classic 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 as cliff edges that bound one of these faces may
                    also need their curves softly extended.

                    The surfaces/curves whose soft extension are used to
                    construct the blend and 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 contain
                    discontinuities will also be reported in a
                    PK_REPORT_3_blend_x_g1_c report.

                    All edge blends set on the body must have a cross section
                    shape of either PK_blend_xs_shape_g2_c or non-circular
                    conic when the option is set to PK_extension_shape_soft_c,
                    otherwise the error PK_ERROR_bad_combination will be
                    raised.
                    ( PK_extension_shape_linear_c )

'report_extended'   Whether to report any chamfer faces that are
                    extended outside of their natural width in the
                    Parasolid report stream. Any records will be of type
                    PK_REPORT_record_type_3_c and will have a status of
                    PK_REPORT_3_chamfer_extended_c.
                    ( PK_blend_report_extended_no_c )


Generated on: Fri, 04 Oct 2024 12:16:53 GMT