 |
PK_BODY_extend_o_t |
|
struct PK_BODY_extend_o_s
{
int o_t_version; --- version number
PK_LOGICAL_t modify; --- whether to modify the original
--- faces or always create separate
--- extension faces (PK_LOGICAL_false)
PK_extension_shape_t extension_shape;
--- the shape of the extension
--- (PK_extension_shape_linear_c)[PF]
PK_BODY_extension_t extension_type;--- the type of the extension
--- (PK_BODY_extension_distance_c)
double extension_distance;
--- distance to extend by (0.0)
PK_ENTITY_t target; --- target body or surface to define
--- the extended sheet's new boundary
--- (PK_ENTITY_null)
PK_extension_limit_t target_limit; --- defines how the target controls
--- the amount of extension
--- (PK_extension_limit_minimal_c)
PK_extension_smoothness_t
preserve_internal_smoothness;
--- the level of continuity to
--- preserve across internal edges
--- on the extension, where
--- possible.
--- (PK_extension_smoothness_g0_c)
PK_extend_track_type_t
track_type; --- how to track new laminar edges
--- (PK_extend_track_type_basic_c)
PK_extend_track_internal_t
track_internal;--- whether to track new internal edges
--- (PK_extend_track_internal_no_c)
PK_extend_create_t extend_create; --- how extension topology is created
--- (PK_extend_create_new_c)
PK_extension_boundary_t
extension_boundary;
--- whether to produce a simpler
--- extension boundary
--- (PK_extension_boundary_precise_c)
PK_extend_side_data_t
extend_side_data;
--- How to create side edges of
--- extension faces at specific
--- terminal vertices of the chain
--- of edges.
PK_extend_side_t extend_side; --- How to create side edges at any
--- terminal vertices of the chain
--- edges which don't appear in the
--- field 'extend_side_data'
--- (PK_extend_side_default_c)
PK_local_ops_update_t
update; --- update flag
--- (PK_local_ops_update_default_c)
PK_results_output_t results_output;
--- specifies whether function should
--- output its local status and
--- associated entities as a return
--- argument from the function or in
--- report form to the Parasolid
--- report.
--- ( PK_result_output_return_c )
};
typedef struct PK_BODY_extend_o_s PK_BODY_extend_o_t;
This structure contains optional controls for PK_BODY_extend.
Used in:
PK_BODY_extend
The options provided are:
'modify' Controls whether the extension modifies the
original faces of the body where possible
(PK_LOGICAL_true) or always creates separate
extension faces (PK_LOGICAL_false). See
Changes to topology for more
information.
'extension_shape' Specifies the shape of extension to use.
Possible values are:
PK_extension_shape_linear_c:
create linear extension
PK_extension_shape_soft_c:
create curvature continuous extension
PK_extension_shape_reflective_c:
create reflective extension
Note that the values
PK_extension_shape_natural_c and
PK_extension_shape_arc_c are not allowed.
Note that the value PK_extension_shape_soft_c
will produce the same result as
PK_extension_shape_linear_c for facet geometry.
Note that the value
PK_extension_shape_reflective_c is not supported
for facet geometry.
The default value is
PK_extension_shape_linear_c. See
Specifying the shape of the extension
for more information.
'extension_type' Specifies the method for determining the extent
of the extension.
Possible values are:
PK_BODY_extension_distance_c:
Extend the body by the amount determined
by a given distance.
PK_BODY_extension_target_c:
Extend the body until its intersection
with the target entity forms a complete
boundary.
If the value PK_BODY_extension_distance_c is
supplied a non-zero distance must be supplied in
'extension_distance'.
If the value PK_BODY_extension_target_c is
supplied, either a surface, or a solid or sheet
body must be supplied in the field 'target'.
Otherwise, no change will be made to the sheet.
See here for more information.
'extension_distance' A length to extend the given body by. The
distance is taken as a guide to the amount of
extension, not an exact limit. It must be
non-negative.
This field is ignored unless the
'extension_type' has been set to
PK_BODY_extension_distance_c.
'target' Specifies a surface, or a sheet, solid, or
general body that intersects the extended
body to define its new boundary. This surface
or body remains unmodified.
This field is ignored unless the
'extension_type' has been set to
PK_BODY_extension_target_c.
See here for more information.
'target_limit' Defines how the target controls the amount of
extension.
Possible values are:
PK_extension_limit_minimal_c:
PK_extension_limit_inside_c:
PK_extension_limit_outside_c:
'preserve_internal_smoothness' Specifies the level of continuity to be
preserved between surfaces along non-laminar
edges internal to the extension where possible.
Possible values are:
PK_extension_smoothness_g0_c:
No attempt at preserving smoothness will be
made.
PK_extension_smoothness_g1_c:
G1 smoothness will be preserved where
possible.
Note that this option is ignored for facet
geometry.
'track_type' Specifies how to track new laminar edges that
by created by splitting vertices.
Possible values are:
PK_extend_track_type_basic_c:
Tracks the original vertices from which the
new edges are created.
PK_extend_track_type_edges_c:
Tracks the original vertices and their
edges from which the new edges are created.
See Tracking new edges for more
information.
'track_internal' Specifies whether to track new non-laminar
edges.
Possible values are:
PK_extend_track_internal_no_c:
Do not track new non-laminar edges.
PK_extend_track_internal_yes_c:
Track new non-laminar edges.
See Tracking new edges for more
information.
'extend_create' Indicates how extension topology is created for
the purposes of bulletining and attribute
processing.
Possible values are:
PK_extend_create_new_c:
Extension topology is newly created
PK_extend_create_split_c:
Extension topology is split from the
original topology
If 'modify' is PK_LOGICAL_true then the
extension faces created as above are merged with
the original faces of which they are extensions
where possible.
'extension_boundary' Specifies whether to produce a simpler extension
boundary.
Possible values are:
PK_extension_boundary_precise_c:
The new extension boundary represents an
accurate measure of extension distance.
PK_extension_boundary_loose_c:
The body will be extended by at least the
supplied distance and the new extension
boundary represents a rough measure of
extension distance.
Note that this option is ignored for facet
geometry.
'extend_side_data' A structure which specifies data for
creating side edges of extension faces
at specific terminal vertices of the chain
of edges.
'extend_side' Indicates how side edges of extension
faces are created at any terminal
vertices of the chain of edges which
don't appear in the field 'extend_side_data'.
If the extend_side option is set to
PK_extend_side_follow_adj_c and the convexity
of a terminal vertex could not be determined,
the side edge creation will fail. The status
PK_local_status_cant_extend_c will be returned
with the tag of the terminal vertex.
'update' The default value allows applications to take
advantage of the latest enhancements of the
generic algorithms supporting Parasolid local
operations functions. To maintain consistency
when rebuilding models created in a previous
version of Parasolid, a non-default value
should be specified.
The default value is
PK_local_ops_update_default_c
'results_output' Specifies whether function should output its
local status and associated entities as a
return argument from the function or in
report form to the Parasolid report. The
records in the report will be of type
PK_REPORT_record_type_1_c.
Possible values are:
PK_results_output_return_c:
The results are output as a return argument.
PK_results_output_report_c:
The results are output in the Parasolid
report.
The default value is PK_results_output_return_c.