 |
PK_FACE_instance_bodies_o_t |
|
struct PK_FACE_instance_bodies_o_s
{
int o_t_version; --- version number
PK_boolean_function_t function; --- boolean operation
--- (PK_boolean_unite_c)
const PK_boolean_config_o_t
*configuration; --- target and tool
--- configuration (NULL)
PK_imprint_face_list_t
extend_face_list;
--- whether to use additional
--- target/tool faces
--- (PK_imprint_face_list_no_c)
PK_instance_repair_fa_fa_t
repair_fa_fa; --- prevent self intersections
--- (PK_instance_repair_fa_fa_yes_c)
PK_instance_merge_t merge_imprinted; --- merge imprinted edges where
--- possible
--- (PK_instance_merge_new_c)
PK_LOGICAL_t allow_disjoint; --- allow disjoint body
--- (PK_LOGICAL_false)
PK_boolean_check_fa_t check_fa; --- face check options
--- (PK_boolean_check_fa_yes_c)
double default_tol; --- default tolerance
--- (1.0E-5)
double max_tol; --- max tolerance
--- (0.0)
PK_imprint_complete_t imprint_complete_targ;
--- whether to complete
--- imprint on target faces
--- (PK_imprint_complete_no_c)
PK_imprint_complete_t imprint_complete_tool;
--- whether to complete
--- imprint on tool faces
--- (PK_imprint_complete_no_c)
PK_boolean_material_t target_material_side;
--- material side of target
--- (PK_boolean_material_default_c)
PK_boolean_material_t tool_material_side;
--- material side of tool
--- (PK_boolean_material_default_c)
PK_LOGICAL_t limit_target_faces;
--- the boundary of the target face
--- set limits the faces to be
--- deleted when trimming
--- (PK_LOGICAL_false)
PK_instance_track_type_t
tracking_type; --- level of tracking reporting
--- for operations.
---(PK_instance_track_type_both_c)
PK_instance_track_edges_t
track_edges; --- level of edge tracking
--- reported when tracking
--- requested.
---(PK_instance_track_edges_new_c)
PK_boolean_prefer_t resulting_body_type;
--- the preferred type of the
--- resulting body
---(PK_boolean_prefer_original_c)
PK_boolean_update_t update; --- update switch
---(PK_boolean_update_default_c)
};
typedef struct PK_FACE_instance_bodies_o_s PK_FACE_instance_bodies_o_t;
This option structure is supplied to PK_FACE_instance_bodies.
Used in:
PK_FACE_instance_bodies
See also here for more information.
Description of fields:
'function' Indicates whether an intersect, unite or subtract
operation is to be performed, permitted values
are:
PK_boolean_intersect_c
PK_boolean_subtract_c
PK_boolean_unite_c
'configuration' Describes the configuration of target and tool
bodies.
See Optimizing boolean operations for more
information.
'extend_face_list' PK_FACE_instance_bodies receives a subset of the
faces of the target body. If the imprinting stage
of the boolean results in incomplete loops of
imprinted edges, this option controls whether the
face list of the target may be extended so that
additional faces will be intersected with the tool.
Since PK_FACE_instance_bodies always uses all faces
of the supplied tool bodies, additional faces can be
added on the target only. Consequently the
behaviour with PK_imprint_face_list_tool_c is
identical to PK_imprint_face_list_no_c, and
PK_imprint_face_list_both_c is identical to
PK_imprint_face_list_target_c.
See here for more information.
'repair_fa_fa' The value of this determines if face-face checking
and repair is performed during the operation,
permitted values are:
PK_instance_repair_fa_fa_no_c
PK_instance_repair_fa_fa_yes_c (default)
If this field is set to
PK_instance_repair_fa_fa_yes_c tool faces
which will survive the operation are compared
against all faces of the target and additional
imprints and booleans performed if necessary.
'merge_imprinted' If set to PK_instance_merge_new_c, merges all new
mergeable imprinted edges arising from the boolean
operation.
'allow_disjoint' If this option is set to PK_LOGICAL_true, the result
of the boolean will be a single body which may contain
disjoint manifold components.
'check_fa' The value of this determines if face checking is
performed during the operation, permitted values
are :
PK_boolean_check_fa_no_c
PK_boolean_check_fa_yes_c
The default is set to 'PK_boolean_check_fa_yes_c'
and it is strongly advised not to change this value.
If the face checking is switched off, the boolean
operation may produce an invalid body without
raising an error.
'default_tol' The default tolerance to which the instancing
operation, if it has to, may approximate entities
or assume that entities are coincident. This value
should be set to a value that is related to the
tolerance to which the application is creating
approximations.
If this field is set to zero (0.0), it is assumed
that the decision to set tolerances on entities is
being left to the modeller.
'max_tol' This value specifies the maximum tolerance which may
be applied to any entity involved in the instancing
operation.
If this field is set to zero (0.0), the default, then
it assumed that no upper limit has been set on the
tolerance of any entity.
If the field is not set to zero (0.0), then it must be
set to a value that is greater than the value of the
'default_tol' field.
'imprint_complete_targ' This option controls whether to complete the imprint
on the target faces so that the end vertices of the
imprint lie on any edge or laminar edge of the target
faces. This imprint completion is carried out during
the imprinting phase of the boolean algorithm
(described in PK_BODY_boolean_2).
If this is set to PK_imprint_complete_no_c (the
default) the imprint is not completed. Otherwise the
incomplete imprint is completed by intersecting the
target faces with a plane orthogonal to the target at
the end vertices of the incomplete imprint.
Depending on the value of this option, the imprint
will be completed along the direction of this plane
until it either:
o meets any edge belonging to the target faces, or
o meets any laminar edge belonging to the
target faces
Both the target and tool bodies must be manifold sheet
bodies.
A complete imprint that self-intersects will be
trimmed at the point of self-intersection.
Imprint completion on the target faces will only
occur from laminar edges of the tool.
Restriction: The orientation of the plane is currently
restricted to that which would be produced by
PK_imprint_extend_tangent_c.
See here for more information.
'imprint_complete_tool' This option controls whether to complete the imprint
on the tool faces in a manner similar to that
described for 'imprint_complete_targ' above.
See here for more information.
'target_material_side' This option allows the material side of the target
faces to be specified when determining which faces
survive the given instancing Boolean.
PK_boolean_material_inside_c:
All faces are treated as if their face normals
point away from solid material.
This allows a sheet body to be treated locally as
the boundary of a solid; treatment of faces from
solid bodies will be unchanged.
PK_boolean_material_none_c:
All faces are treated as if they have no solid
material on either side.
This allows a solid body to be treated locally as
a sheet; treatment of faces from sheet bodies will
be unchanged.
PK_boolean_material_outside_c:
All faces are treated as if their face normals
point into solid material.
This allows a sheet body to be treated locally as
the boundary of a solid; solid bodies will be
negated.
PK_boolean_material_default_c (the default):
Faces from solid bodies have normals pointing away
from solid material; faces from sheet bodies will
have material on neither side.
This option is only supported if general topology is
disabled.
See here for more information.
'tool_material_side' This option allows the material side of the tool
faces to be specified when determining which faces
survive the given Boolean.
PK_boolean_material_inside_c:
All faces are treated as if their face normals
point away from solid material.
This allows a sheet body to be treated locally as
the boundary of a solid; treatment of faces from
solid bodies will be unchanged.
PK_boolean_material_none_c:
All faces are treated as if they have no solid
material on either side.
This allows a solid body to be treated locally as
a sheet; treatment of faces from sheet bodies will
be unchanged.
PK_boolean_material_outside_c:
All faces are treated as if their face normals
point into solid material.
This allows a sheet body to be treated locally as
the boundary of a solid; solid bodies will be
negated.
PK_boolean_material_default_c (the default):
Faces from solid bodies have normals pointing away
from solid material; faces from sheet bodies will
have material on neither side.
This option is only supported if general topology is
disabled.
See here for more information.
'limit_target_faces' This option limits the faces to be deleted. It
is particularly useful when the operation is a
trim of the target.
PK_LOGICAL_true:
The boundary of the target face set is used to
complete the imprint and limits the face set
to be deleted. It should be noted that the
target face set will include faces added by any
requested face list extension during the initial
phase of imprinting.
PK_LOGICAL_false (the default):
No limits are imposed upon the region to be
deleted.
This option can only be used with a limited
set of operations.
For more information, see here.
'tracking_type' This option allows the user to specify the level
of information they wish tracking records to
contain. The levels of tracking available are:
PK_instance_track_type_none_c:
No tracking information will be returned.
PK_instance_track_type_inst_c:
Tracking information will be returned in the
return structure 'instance_tracking'.
'instance_tracking' will contain
tracking regarding the new topologies
associated with each instance.
PK_instance_track_type_topol_c:
Tracking information will be returned in the
return structure 'tracking'. The structure
'tracking' will contain topological tracking
information.
PK_instance_track_type_both_c:
(Default).
Tracking information will be returned in the
return structures 'tracking' and
'instance_tracking'. The structure 'tracking'
will contain topological tracking information
and 'instance_tracking' will contain
tracking regarding the new topologies
associated with each instance.
See the documentation for
PK_FACE_instance_bodies for more details.
'track_edges' This option specifies the level of edge
tracking information returned in the
'tracking' records.
The levels of tracking available are:
PK_instance_track_edges_no_c:
No edge tracking information will be
returned.
PK_instance_track_edges_laminar_c:
Tracking information will be returned
associated with laminar edges.
PK_instance_track_edges_new_c:
(Default).
Tracking information will be returned
associated with all new edges.
'resulting_body_type' This option allows the preferred type of the
resulting body to be indicated.
PK_boolean_prefer_solid_c:
If possible the results of the Boolean operation
will be solid bodies. The result will only be
made solid if all shells in the result are closed.
PK_boolean_prefer_sheet_c:
If possible the results of the Boolean operation
will be sheet bodies. The result may contain
several components, if 'allow_disjoint' is set to
PK_LOGICAL_false then the components will be
split out into separate bodies.
PK_boolean_prefer_original_c (the default):
The resulting bodies will be of the same type as
the target body. If it is not possible to return
a body of the desired type an appropriate error
will be returned.
See here for more information.
'update' The default value allows applications to take
advantage of the latest enhancements to the boolean
algorithm. To maintain consistency when rebuilding
models created in a previous version of Parasolid, a
non-default value should be specified.
(PK_boolean_update_default_c)