 |
PK_BODY_make_lofted_body_o_t |
|
struct PK_BODY_make_lofted_body_o_s
{
int o_t_version;
--- version number
PK_BODY_loft_end_conds_t end_conditions;
--- behaviour of the lofted
--- surfaces at the end profiles
int n_guide_wires;
--- number of guide wires (0)
const PK_BODY_t *guide_wires;
--- guide wires (NULL)
PK_BODY_simplify_t simplify;
--- level of simplification
--- (PK_BODY_simplify_analytic_c)
PK_BODY_topology_t topology_form;
--- topology of resultant body
--- (PK_BODY_topology_minimal_c)
PK_BODY_vertex_matches_t matches;
--- how to match vertices on
--- different profiles
int n_intermediate_derivs;
--- the number of intermediate
--- profiles that have derivative
--- constraints specified (0)
const PK_BODY_loft_deriv_conds_t *intermediate_derivs;
--- array of derivative
--- constraints (NULL)
const int *intermediate_profiles;
--- array of profile indices
--- (NULL)
int n_guide_derivs;
--- the number of guide wires
--- that have derivative
--- constraints specified (0)
const PK_BODY_loft_deriv_conds_t *guide_derivs;
--- array of derivative
--- constraints for guide wires
--- (NULL)
const int *guide_indices;
--- array of guide indices
--- (NULL)
double tolerance;
--- tolerance (1.0e-5)
PK_LOGICAL_t minimise_tolerance;
--- minimise tolerances where
--- possible (PK_LOGICAL_false)
PK_BODY_loft_update_t update;
--- update flag
--- (PK_BODY_loft_update_default_c)
PK_BODY_loft_deriv_mag_t deriv_mag;
--- method to use for calculating
--- derivative magnitudes
--- (PK_BODY_loft_deriv_mag_single_c)
PK_LOGICAL_t want_edge_tracking;
--- whether to return tracking
--- information for edges
--- (PK_LOGICAL_false)
PK_BODY_smoothness_t profile_smoothness;
--- whether to use an exact or tolerant
--- test when deciding whether profile
--- edges meet g1 smoothly
--- (PK_BODY_smoothness_exact_c)
PK_LOGICAL_t create_construction_topol;
--- whether to create edges
--- corresponding to internally created
--- construction profiles
--- (PK_LOGICAL_false)
PK_LOGICAL_t label_profiles;
--- whether to return ordering
--- information for edge tracking
--- (PK_LOGICAL_false)
};
typedef struct PK_BODY_make_lofted_body_o_s PK_BODY_make_lofted_body_o_t;
This structure holds optional controls on the construction of a lofted body.
Used in:
PK_BODY_make_lofted_body
The option structure for making a lofted body has the following fields :
'end_conditions' A structure to specify particular constraints on the
derivatives across the start and/or end profiles. It
is also used to specify a periodic loft.
See Specifying derivative conditions for the first or last profile.
'n_guide_wires' The number of guide curves for the loft. (0)
'guide_wires' An array of oriented connected manifold wire bodies
that specify the guide curves for the loft. Each guide
wire is required to cut across all profiles through a
set of matched profile vertices at the wire's own
vertices, subject to relevant vertex tolerances. (NULL)
See Lofting with guide wires.
'simplify' A token used to indicate the level of simplification
to be attempted on the lofted surfaces generated to
form the faces of the lofted body.
If set to PK_BODY_simplify_no_c, no simplification will
be attempted.
If set to PK_BODY_simplify_analytic_c, the function
will attempt to generate analytic surfaces that are
within session precision of the input profiles and any
guide wires.
If set to PK_BODY_simplify_swept_spun_c the function
will return status code PK_BODY_loft_bad_simplify_c, as
this option is invalid for PK_BODY_make_lofted_body.
(PK_BODY_simplify_analytic_c)
See Simplification.
'topology_form' A token used to indicate how the resultant body should
be divided into faces. (PK_BODY_topology_minimal_c)
See Topology form.
'matches' A structure containing the profile vertex matching
information. The structure provides a map between the
vertices on one profile with those on the next distinct
profile.
See Matching.
'n_intermediate_derivs' The number of intermediate profiles (ie, profiles other
than the start or end profile) that have derivative
conditions specified. (0)
'intermediate_derivs' An array of length equal to 'n_intermediate_derivs'
specifying derivative conditions for each profile as
given in 'intermediate_profiles'. (NULL)
'intermediate_profiles' An array of length equal to 'n_intermediate_derivs'
giving the index of the profile that has the derivative
conditions given by the corresponding entry in
'intermediate_derivs'. Each entry should be an int
between 1 and 'n_profiles'-2 for non-periodic lofting,
or between 1 and 'n_profiles'-1 for periodic lofting.
(NULL)
See Specifying derivative conditions for intermediate profiles.
'n_guide_derivs' The number of guide wires with derivative constraints.
This must be a number between 0 and 'n_guides'. (0)
'guide_derivs' An array of length equal to 'n_guide_derivs' specifying
derivative conditions for each guide wire as given in
'guide_indices'. (NULL)
'guide_indices' An array of length equal to 'n_guide_derivs' giving the
index of the guide wire (as given in 'guide_wires')
that has the derivative conditions given by the
corresponding entry in 'guide_derivs'. (NULL)
See Specifying derivative conditions for guide wires.
'tolerance' The tolerance to which the lofting operation may
approximate entities or assume that entities are
coincident. (1.0e-5)
'minimise_tolerance' If set to PK_LOGICAL_true, topology will be created
with smaller tolerances than 'tolerance' if possible.
(PK_LOGICAL_false). See
Minimising lofting tolerances for more
information.
'update' The default value allows applications to take
advantage of the latest enhancements to the lofting
algorithm. To maintain consistency when rebuilding
models created in a previous version of Parasolid, a
non-default value should be specified.
(PK_BODY_loft_update_default_c)
'deriv_mag' This option specifies the algorithm used to calculate
derivative magnitudes when derivative conditions have
been specified. It is recommended that this is always
set to PK_BODY_loft_deriv_mag_round_c, unless
updating old models. (PK_BODY_loft_deriv_mag_single_c).
See here for more information.
'want_edge_tracking' If set to PK_LOGICAL_true, then the returned
'tracking_info' will contain information about the
edges in the resultant body, as well as the faces. If
set to PK_LOGICAL_false, then only information about
the faces will be returned. (PK_LOGICAL_false)
'profile_smoothness' This option specifies whether an exact or tolerant
test is used to determine if profile edges meet g1
smoothly. If profile edges do not meet g1 smoothly at
any profile vertex, then the resultant body will have
an edge in the loft direction passing through this
vertex, and the faces adjacent to this edge will not
meet smoothly. If the profile edges meet g1 smoothly
for every vertex in a set of matched profile vertices,
then either no edge will exist on the resultant body
corresponding to this set of vertices, or there will
be an edge which will be g1 smooth (depending on the
value of 'topology_form'). (PK_BODY_smoothness_exact_c)
For more information, see
Controlling profile smoothness.
'create_construction_topol'
If set to PK_LOGICAL_true, then additional edges may
be created (irrespective of the value of
'topology_form') on the resultant body. Parasolid does
this in the case of a periodic loft with one or two
profiles, for instance. (PK_LOGICAL_false)
For more information, see
Creating construction topology.
'label_profiles' If set to PK_LOGICAL_true, then extra tracking
information is returned for edges. Note that this
option has no effect if 'want_edge_tracking' is set to
PK_LOGICAL_false. For each edge created from a profile
edge (including those of any construction profile), an
extra entry of class PK_CLASS_int is returned in
'original_topols'. Edges with the same value
correspond to the same profile. The value gives the
order that the distinct profiles appear in, in the
direction of the loft. The profile at the start of the
loft will have a value of 0. (PK_LOGICAL_false)
For more information, see
Tracking information for lofted bodies.