 |
PK_FACE_emboss |
|
PK_ERROR_code_t PK_FACE_emboss
(
--- received arguments ---
int n_faces, --- number of target faces > 0
const PK_FACE_t faces[], --- target faces upon which the
--- emboss feature is to be
--- created
PK_BODY_t profile, --- sheet or closed wire defining
--- a cross-section of the
--- sidewall geometry
PK_BODY_t endcap, --- sheet or solid providing
--- capping for emboss sidewall
const PK_FACE_emboss_o_t *options, --- options
--- returned arguments ---
PK_TOPOL_track_r_t *const tracking, --- tracking information
PK_TOPOL_local_r_t *const results --- status information
)
This function creates emboss features on the target body over areas covered
by the specified 'faces'.
This function does not support facet geometry [NF]
Specific Errors:
PK_ERROR_unsuitable_topology One of the constraints on topologies
is not satisfied by an input body.
(MILD)
PK_ERROR_wrong_entity Target 'faces' are not from the same body.
PK_ERROR_bad_value Incorrect values are provided for emboss
convexity, sidewall method, taper method,
profile residence or overflow method.
The value of 'top_surface' is wrongly set
to PK_ENTITY_null when 'taper_method' is
PK_taper_method_offset_c.
(MILD)
PK_ERROR_bad_position The position of 'endcap' relative to the
'faces' is incorrect for the specified
emboss convexity.
Any inconsistency in positioning caused
by not satisfying the constraints on
orientations.
The 'faces' or the 'endcap' body is too
small or misaligned to either produce
full interactions with the sidewall or
process overflow.
(MILD)
PK_ERROR_bad_angle Specification of different taper angles is
not allowed on smoothly connected edges
of the profile body for sidewall creation.
PK_ERROR_not_implemented Unavailable functionality is called.
(MILD)
PK_ERROR_non_manifold Result of the emboss is non-manifold.
(SERIOUS)
Introduction
PK_FACE_emboss enables pad and pocket like features to be added onto the
target body over areas of 'faces' with sidewalls constructed using ruled
surfaces between base areas on the target body and cap areas on the 'endcap'
body. It receives 'faces' of a solid or sheet body as the target, another
solid or sheet body as the 'endcap', a sheet or closed wire body as the
'profile' and an 'options' structure for other parameters required in the
emboss creation:
'tolerance' This field controls the operation tolerance.
'convexity' This field controls whether to create pads or pockets.
'profile_on' This field indicates the source of profile body.
'sidewall_data' This field controls the creation of emboss sidewall.
'overflow_data' This field controls the processing of overflow.
All input bodies survive the operation and remain unchanged except the
target body from which the specified 'faces' originate.
See here for more information.
Constraints on Topologies
The target body containing 'faces' can be a solid or a sheet. The 'faces'
must contain a sufficiently large area to at least partially support the
base of the emboss feature.
The 'endcap' body can be a solid or a sheet. It must contain a sufficiently
large area to cap the sidewall of the emboss.
The 'profile' body can be a closed oriented wire or an open sheet. Its
peripheral or laminar edges define a cross-section of the sidewall geometry.
The supplied 'profile' must be a sheet if either:
o The 'sidewall' field in the 'sidewall_data' option is
PK_emboss_sidewall_ruled_c.
o The 'taper_method' field in the 'sidewall_data' option is
PK_taper_method_normal_c.
In the second case, the normals of the sheet along its laminar edges are
used as local draw directions during the tapering. Setting 'profile' to
PK_ENTITY_null is only acceptable for supplied sidewall. If a sidewall body
is supplied, it is also assumed that the 'profile', if not PK_ENTITY_null,
lies on the supplied sidewall body.
For PK_emboss_sidewall_supplied_c, a sheet body must be provided through
the field 'sidewall_body' in 'sidewall_data' as the supplied sidewall. This
sheet is usually duct-like in shape with two laminar peripheries.
The body containing the given 'faces', the 'profile' and the 'endcap' must
each contain a single connected component. Disjoint bodies are not allowed
for any of these inputs.
See here for more information.
Constraints on Orientations
PK_FACE_emboss requires a unit vector to be supplied in the 'draw_direction'
field in 'sidewall_data'. It is used as the draw direction for tapered
sidewall and as the sweep direction for swept sidewall. It is also regarded
as the emboss direction that controls the direction of pitting for pocket
emboss and protruding for pad emboss.
Orientations of the input bodies are constrained by the emboss direction.
Both the base area over 'faces' and the cap area on the 'endcap' body must
have their overall face normals pointing to the positive side of the emboss
direction. For a sheet profile, overall face normals are expected to point
to the positive side of the emboss direction. A wire profile is expected to
encircle the emboss direction in a right-handed manner. If a sidewall body
is supplied, the face normals of the duct-like sheet forming the sidewall
body are expected to point outwards for pad emboss and inwards for pocket
emboss around the emboss direction.
The constraints on orientations also provide a simple way of describing the
correct positional relationship between 'faces' and the 'endcap' body. When
measured relative to the emboss direction, the cap area on 'endcap' is above,
for pad emboss, and below, for pocket emboss, the base area on 'faces'.
See here for more information.
Emboss Sidewall
An emboss sidewall can be supplied as a sheet body or constructed internally
by PK_FACE_emboss to rule through its peripheral or laminar edges of the
'profile' body. PK_FACE_emboss supports the following methods of internal
construction:
o Tapered according to a specified draw direction and other parameters.
o Ruled along normals of 'profile' faces.
o Swept along a specified sweep direction.
See here for more information.
Overflow Processing
When the interaction between the sidewall body and the target body extends
beyond the boundary of the specified 'faces', the emboss feature needs to
overflow across that boundary. The behaviour of overflow processing during
emboss creation is controlled by the 'overflow_data' option field.
There are two types of overflow: laminar overflow and interior overflow.
A laminar overflow boundary is one that consists of laminar edges of the
target body and an interior overflow boundary is one formed by non-laminar
edges of the target body. The orientation of an interior overflow boundary
is understood by interpreting its adjacent target faces as inner faces and
faces on its other side as outer faces.
The following methods are for processing a laminar overflow boundary:
o Limiting sidewall with ruled sheet from laminar overflow boundary.
This behaviour can be selected by setting 'laminar_overflow' to
PK_emboss_overflow_ruled_c.
o Limiting sidewall with swept sheet from laminar overflow boundary.
This behaviour can be selected by setting 'laminar_overflow' to
PK_emboss_overflow_swept_c.
The following methods are for processing an interior overflow boundary:
o Limiting sidewall by including adjacent outer faces to add more area
to 'faces'.
This behaviour can be selected by setting 'interior_overflow' to
PK_emboss_overflow_added_c.
o Limiting sidewall by extending adjacent outer faces.
This is only used as part of PK_emboss_overflow_mixed_c and is not
available as a user option.
o Limiting sidewall by treating a smooth interior overflow boundary as
a laminar overflow boundary with additional side faces from laminar
overflow processing.
This is only used as part of PK_emboss_overflow_mixed_c and is not
available as a user option.
o Limiting sidewall by a mixture of all above three methods based on
the local convexity of the overflow boundary being concave, convex
or smooth.
This behaviour can be selected by setting 'interior_overflow' to
PK_emboss_overflow_mixed_c.
o Limiting sidewall by treating the interior overflow boundary as a
laminar overflow boundary with optional side faces from laminar
overflow processing.
This behaviour can be selected by setting 'interior_overflow' to
PK_emboss_overflow_laminar_c. This option is only allowed if 'unite'
is set to PK_emboss_unite_sidewall_no_c.
An interior overflow boundary is considered convex if its adjacent outer
faces are bending away from the capping area, and concave if towards the
capping area. A convex boundary is treated as a smooth one if the bending
is less than three degrees.
See here for more information.
Non Die-Lock Tapering
Tapered sidewalls by methods other than PK_taper_method_offset_c will be
constructed such that for a positive angle they draft outwards from endcap
bodies to target bodies, thereby ensuring the parts created will be
non die-lock.
Returned Tracking and Results
The function returns:
'tracking' A collection of structures that contain information
identifying new emboss faces created during emboss
processing. New emboss faces may be derived from their
corresponding 'endcap' faces as well as created using
their originating 'profile' edges or corresponding faces
of the supplied sidewall body. Also, new emboss faces
produced by overflow processing may be created from
relevant edges and faces of the original target body.
'results' A structure containing the results of the operation.
If the function returns PK_ERROR_no_errors, the result
of the operation is indicated by the value of the
'status' field of this structure. When this value is
not PK_local_status_ok_c, it indicates an operation
failure and an array of entities involved is returned
through the field 'error_entities', when possible.
For more information regarding the failure status code
and the error_entities, refer to the PK documentation
of the PK_TOPOL_local_r_t structure.