PK_BODY_emboss   

PK_ERROR_code_t           PK_BODY_emboss
(
--- received arguments ---
PK_BODY_t                 target,           --- sheet or solid where emboss
                                            --- feature is 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_BODY_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.

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_bad_value              Incorrect values are provided for emboss
                                    convexity, sidewall method, taper method,
                                    or profile residence.
                                    (MILD)

    PK_ERROR_bad_position           The position of endcap relative to the
                                    target is incorrect for the specified
                                    emboss convexity.
                                    Any inconsistency in positioning caused
                                    by not satisfying the constraints on
                                    orientations.
                                    The 'target' body or the 'endcap' body
                                    is too small or misaligned to produce
                                    complete interactions with the sidewall.
                                    (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_BODY_emboss enables pad and pocket like features to be added onto the
'target' body with sidewalls constructed using ruled surfaces between
base areas on the 'target' body and cap areas on the 'endcap' body. It
receives a solid or sheet as the 'target' body, another solid or sheet
as the 'endcap' body, a sheet or closed wire as the 'profile' body and
an 'options' structure for other parameters required in 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.

See here for more information.


Constraints on Topologies

The 'target' body can be a solid or a sheet. It must contain a sufficiently
large area to at least partially support the base of the emboss feature. No
facet geometry on the body may be altered by the operation.

The 'endcap' body can be a solid or a sheet. It must contain a sufficiently
large area to cap the sidewall of the emboss. It must be a classic body.

The 'profile' body can be a closed oriented wire or an open sheet. It must be a
classic body. 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.

All input bodies must not be disjoint.

See here for more information.

Constraints on Orientations

PK_BODY_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 on the 'target' body 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 the 'target' body and the 'endcap'
body. When measured relative to the emboss direction, the cap area on the
'endcap' body is above, for pad emboss, and below, for pocket emboss, the
base area on the 'target' body.

See here for more information.

Emboss Sidewall

An emboss sidewall can be supplied as a sheet body or constructed internally
by PK_BODY_emboss to rule through its peripheral or laminar edges of the
'profile' body. PK_BODY_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 'target', 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.

As all faces in the 'target' body are included by the emboss opertion,
only laminar overflow options are relevant.

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.

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 will return:

'tracking'          It contains 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'           It is a structure containing the results of the operation.
                    If the function returns PK_ERROR_no_errors, the result of
                    the operation will be 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 in this failure 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.