 |
PK_BODY_sew_bodies_o_t |
|
struct PK_BODY_sew_bodies_o_s
{
int o_t_version; --- version number of option
--- structure
PK_LOGICAL_t set_global_tolerance;
--- DEPRECATED
--- (PK_LOGICAL_false)
PK_LOGICAL_t allow_disjoint_result;
--- whether disjoint sheets can be
--- produced
--- (PK_LOGICAL_false)
PK_LOGICAL_t treat_as_manifold; --- assume result is manifold
--- (PK_LOGICAL_true)
PK_BODY_sewing_type_t prefered_body_type;--- prefered body type of result
--- (PK_BODY_sewing_any_c)
PK_BODY_sewing_removal_t
duplicate_removal; --- effort placed in removing
--- duplications
--- (PK_BODY_sewing_remove_none_c)
--- [NF]
int number_of_iterations;
--- number of gap width bound
--- values to iterate over
--- (1) [NF]
double *iteration_bounds; --- array of gap width bounds
--- (NULL)
PK_BODY_sewing_assy_t assembly_sewing; --- improve results when sewing
--- faces from an assembly
--- (PK_BODY_sewing_assy_no_c)
PK_BODY_sewing_gen_t general_sewing; --- whether to sew general input
--- bodies together
--- (PK_BODY_sewing_gen_no_c)
PK_LOOP_sew_up_t sew_up_inner_loops;--- whether to sew inner loops
--- (PK_LOOP_sew_up_loop_c)
PK_EDGE_reduce_tol_t reduce_edge_tolerance;
--- control the tolerance set on
--- sewn edges
--- (PK_EDGE_reduce_tol_no_c)
--- [NF]
};
typedef struct PK_BODY_sew_bodies_o_s PK_BODY_sew_bodies_o_t;
Holds optional controls on the execution of sewing.
Specific Errors:
PK_ERROR_bad_iteration_count The requested number of iterations was
less than one. (MILD)
PK_ERROR_bad_gap_bound A bad gap width bound was supplied in
the option field 'iteration_bounds' when
requesting sewing to make multiple sewing
attempts. (MILD)
PK_ERROR_contradictory_request Bad combination of options. (MILD)
Used in:
PK_BODY_sew_bodies
The option structure defines options applicable to the sewing together of
sheet bodies. See here for more information.
The structure has the following user fields.
allow_disjoint_result: If true sewing can return several disjoint sheets
produced by sewing. When this is false the only
sheet returned is the one produced by sewing
sheets onto the first one provided in the list
of received bodies.
See Getting the best from sheet sewing
for more information.
treat_as_manifold: Assume the result is manifold. If have more than
two edges paired, assume the closest pairing is
the intended one.
prefered_body_type: An enum indicating the prefered type of the
result.
duplicate_removal: An enum indicating effort to be placed in
removing duplications in the input sheets.
number_of_iterations: This specifies the number of gap width bound
values to iterate over while sewing. This must
exceed 0.
Where the 'number_of_iterations' is 1, the gap
width bound specified in the 'gap_width_bound'
argument is used for a single sewing attempt.
Where the value of this option field exceeds 1,
sewing will make the specified number of attempts
to complete the sewing operation.
If iteration is requested and the array held in
'iteration_bounds' is not NULL, an attempt to sew
the bodies will be carried out at each gap width
bound specified in the array ( assumed to hold
'number_of_iteration' values ). If
'iteration_bounds' are supplied, the value set for
the 'gap_width_bound' argument is ignored. The gap
width bounds will be used in the order in which
they appear in the array. It is expected that the
best results will occur when the values are in
ascending order.
Iteration may be requested, with the value of
'iteration_bounds' set to NULL. In this case
Parasolid will generate 'number_of_iterations'
ascending values terminating in 'gap_width_bound'.
The range of values chosen will not exceed two
orders of magnitude, other than that the chosen
values are not specified.
iteration_bounds: If the number of iterations exceeds 1 this
array will be used as the source of gap width
bounds for each iteration unless it is set to NULL.
In the latter case Parasolid will generate a
range of gap width bounds based on the value of
the 'gap_width_bound' passed to PK_BODY_sew_bodies.
Where the number of iterations is one, this option
field is ignored.
assembly_sewing: An enum used to indicate that in cases where
more than two edges are matched as candidates for
sewing, it is appropriate to view the multiple
matches as arising from close proximity of piece
parts in an assembly.
When using this option it is assumed the input
sheets originate from a valid assembly and,
moreover, that their orientations also reflect
this.
This enum is used to indicate what kind of
reasoning about assemblies is to be employed when
selecting the most appropriate match out of
several alternatives.
Enabling this option requires 'treat_as_manifold'
being set to PK_LOGICAL_true and
'duplicate_removal' being set to
PK_BODY_sewing_remove_none_c.
general_sewing: An enum that controls the sewing when general
bodies are present in the input.
Enabling this option requires 'assembly_sewing'
to be set to PK_BODY_sewing_assy_no_c.
sew_up_inner_loops: Whether to allow sewing within inner loops.
Note that this option has no effect on facet
geometry.
reduce_edge_tolerance: Sewing uses multiple factors to determine the
tolerance of an edge and the gap between the
original edges is just one of these bounds. In
order to limit the size of the tolerance used,
this option, if set to PK_EDGE_reduce_tol_yes_c,
will perform extra checks and attempt to reduce
the tolerance where possible. If tolerance
reduction is not possible, then a report will be
returned in the Parasolid report stream containing
a record of type PK_REPORT_record_1_t with status
PK_REPORT_1_ed_large_tol_c listing the original
edges.