 |
PK_BODY_make_facet_body_o_t |
|
struct PK_BODY_make_facet_body_o_s
{
int o_t_version; --- Version of option structure.
PK_LOGICAL_t is_max_facet_width; --- Whether max_facet_width is set.
--- (PK_LOGICAL_false)
double max_facet_width; --- Controls the maximum length of
--- a facet edge.
PK_LOGICAL_t is_distance_tolerance; --- Whether distance_tolerance is
--- set. (PK_LOGICAL_false)
double distance_tolerance; --- Distance tolerance between
--- new mesh and model geometry.
PK_LOGICAL_t is_angular_tolerance; --- Whether angular_tolerance is
--- set. (PK_LOGICAL_false)
double angular_tolerance; --- Angular tolerance between new
--- mesh and model geometry.
PK_LOGICAL_t is_max_chord_length; --- Whether max_chord_length is
--- set. (PK_LOGICAL_false)
double max_chord_length; --- Controls the maximum length of
--- a facet edge derived from
--- model geometry.
PK_LOGICAL_t retain_attributes; --- Whether to retain attributes.
--- (PK_LOGICAL_false)
PK_LOGICAL_t retain_groups; --- Whether to retain groups.
--- (PK_LOGICAL_false)
PK_LOGICAL_t track_faces; --- Whether to track faces.
--- (PK_LOGICAL_false)
PK_track_edges_t track_edges; --- Options for tracking edges.
--- (PK_track_edges_no_c).
PK_LOGICAL_t return_redundant; --- Whether to provide a list of
--- topologies not copied to the
--- new body. (PK_LOGICAL_false)
PK_ERROR_on_fail_t partial_conversion; --- Whether to allow partial
--- conversion to a facet body or
--- to fail if a full conversion
--- has not been achieved.
--- (PK_ERROR_on_fail_any_c)
};
typedef struct PK_BODY_make_facet_body_o_s PK_BODY_make_facet_body_o_t;
This structure contains optional arguments for PK_BODY_make_facet_body.
The tessellation options are used to generate replacement meshes and polylines
for the 'body_copy'.
Specific Errors:
PK_ERROR_bad_value 'partial_conversion' cannot be set to
PK_ERROR_on_fail_no_c. (MILD)
Used in:
PK_BODY_make_facet_body
Description of fields:
Tessellation options
'is_max_facet_width' This option controls whether or not the associated
option 'max_facet_width' is used.
'max_facet_width' If the option 'is_max_facet_width' is set to
PK_LOGICAL_true and 'max_facet_width' is set to a
positive value then this value will be used to
control the maximum length of any mfin.
'is_distance_tolerance' This option controls whether or not the associated
option 'distance_tolerance' is used.
'distance_tolerance' If the option 'is_distance_tolerance' is set to
PK_LOGICAL_true and 'distance_tolerance' is set to a
positive value then this value will be used to control
the maximum chordal distance between a polyline and
its original edge entity and the maximum distance from
a position on a mesh to the surface of the original
face.
'is_angular_tolerance' This option controls whether or not the associated
option 'angular_tolerance' is used.
'angular_tolerance' If the option 'is_angular_tolerance' is set to
PK_LOGICAL_true and 'angular_tolerance' is set to a
positive value then this value will be used to control
the maximum angle between a facet chord and its
original edge entity, measured as the sum of the two
angles formed between the chord and the curve tangents
at each chord end. It will also control the maximum
angle between the surface normals at any two positions
on the surface which lie within the facet boundary.
'is_max_chord_length' This option controls whether or not the associated
option 'max_chord_length' is used.
'max_chord_length' If the option 'is_max_chord_length' is set to
PK_LOGICAL_true and 'max_chord_length' is set to a
positive value then this value will be used to
control the maximum length of any facet edge which
represents part of an original edge entity.
Associated data and tracking controls
'retain_attributes' Controls whether attributes attached to topology should
should be copied onto the new body.
'retain_groups' Controls whether groups attached to topology should be
copied onto the new body.
'track_faces' Controls whether to return tracking for faces copied
from 'body' to 'body_copy'.
'track_edges' Controls whether return tracking for edges copied from
'body' to 'body_copy'. Options are to track all edges;
just laminar and wire edges; or not to track edges.
'return_redundant' Controls whether to return the list of topologies which
were not copied to the new body. Topologies from the
original body can become redundant in the copied body
if their copied topologies contain no facet geometry
at the given tolerances. For example, a very narrow
face and its surrounding edges may be collapsed down to
a single edge, causing the face from the original body
to be redundant.
'partial_conversion' Controls whether to allow partial conversion to a facet
body. If all the faces and edges in the resulting
facet body that correspond to faces and edges which had
geometry in the original body have facet geometry
attached, the body is considered to have been fully
converted. If any (but not all) of these faces and
edges fail to create facet geometry, the part is
considered to be partially converted.
It may take the following values:
PK_ERROR_on_fail_any_c:
The operation will fail with the error
PK_ERROR_failed_to_facet if any faces or edges fail
to facet.
PK_ERROR_on_fail_all_c:
The operation will only return
PK_ERROR_failed_to_facet if all the faces and edges
of the original body fail to facet. Otherwise, any
topologies that fail to facet will have no geometry
attached and only partial conversion will be
achieved.
In the case of a partial conversion, reports of type
PK_REPORT_record_type_1_c will be returned via the
Parasolid report mechanism. These records will have a
status of PK_REPORT_1_cant_get_geom_c and will return
the faces and edges in the result body which have no
geometry attached as a result of failures to facet.
Note: Topologies with no geometry in the original body
are not converted and as such are not treated as
having failed to facet and will not appear in the
report.
Vertices are also not treated as being converted.
Note: The value PK_ERROR_on_fail_no_c is not allowed.