Creating Emboss Features   

<<< Shadow Curves Chapters Introduction To Sheets and Wires >>>

Contents

[back to top]


42.1 Introduction

The functions PK_BODY_emboss and PK_FACE_emboss provide you with generic, high-level functionality for adding protruding (pad) or indented (pocket) emboss features to a target body, the general shape of which can be described using supplied profiles.

For both functions, Parasolid automatically creates sidewalls for emboss features, based on a range of criteria you supply.

 

Note: This functionality supports facet geometry in the target body but only if the facet geometry is not modified in the result.

 

Figure 42-1 Creating pad and pocket emboss features on a target body

 

Related Topics:

42.1.1 Arguments

In order to create an emboss feature, you need to supply:

Parasolid then creates a sidewall around the profile, limited by the target (or the specified faces) and the end cap, and based on further constraints supplied in the form of options to the function (described in Section 42.2, “Options”). The received bodies are described in more detail in the following table:

 

Body

Description

Profile

The profile describes the general shape of the emboss feature you want to create, depending also on constraints supplied by the other input bodies and data for the operation: for example, a circular profile will in general create circular emboss features.

The profile supplied must be either a closed oriented wire or an open sheet without holes. It survives unchanged after the operation.

End cap

The end cap places either a “roof” (for pads) or a “floor” (for pockets) on the emboss feature. Parasolid confines the sidewall so that it exists between the profile area projected on the target, and the end cap.

The end cap supplied must be either a solid or sheet. It survives unchanged after the operation.

Target

For any emboss operation, the target is the body on which you want to place the emboss feature.

  • PK_BODY_emboss receives the whole target body as input, and creates an emboss feature bounded by that target.
  • PK_FACE_emboss receives a set of faces from the target body as input, and creates an emboss feature that is bounded by those faces.

For both global and local emboss, the target body must be either a solid or sheet. It survives, and is modified after the operation.

 

Figure 42-2 Orientation of input bodies in pad and pocket emboss features

[back to top]


42.2 Options

In addition to the input bodies, you can supply an extensive set of options that further describe the nature of the emboss feature. This section describes the options that are available.

The table below provides a summary of the options that you can specify in both PK_BODY_emboss_o_t and PK_FACE_emboss_o_t.

 

Option

Description

tolerance

Tolerance information for the emboss operation. Default: 1.0e-5

convexity

Whether emboss features should protrude from the target, indent into the target, or a combination of both. See Section 42.2.1, “Convexity”, for more information. Default: PK_emboss_convexity_both_c.

profile_on

Where the profile for the operation is located. See Section 42.2.2, “Profile location”, for more information. Default: PK_emboss_profile_on_any_c

sidewall_data

A data structure containing information that specifies how the sidewalls for the emboss operation should be constructed. Construction of the sidewalls is a major part of the emboss operation, and there are a number of ways that you can control the final result. See Section 42.2.3, “Sidewalls”, for more information.

overflow_data

A data structure containing information that specifies how the emboss feature should be constructed in the event that the sidewall lies beyond the boundary of the target body (in the case of PK_BODY_emboss) or the specified faces on the target (in the case of PK_FACE_emboss). See Section 42.2.4, “Overflow”, for more information.

unite

Whether emboss features should be attached to the target (to create a single body) or produced separately. See Section 42.2.5, “Returning the embossed feature separately”, for more information. Default: PK_emboss_unite_sidewall_yes_c (attach features to target).

update

Update switch to maintain consistency when rebuilding models built in older versions of Parasolid. See Section 62.5.2, “Update control”, for information.

Default: PK_local_ops_update_default_c.

42.2.1 Convexity

You can choose the convexity of the emboss features that Parasolid creates using the convexity option. By default, Parasolid creates both protruding embosses (pads) and indented embosses (pockets), but if required, you can specify that only one or other type is created.

When a non-default convexity is specified, attempting to create an emboss feature of the opposite convexity results in the error PK_emboss_bad_position.

42.2.2 Profile location

By default, the profile you specify can be located anywhere. However, if required, you can use the profile_on option to indicate that the profile must be located on either the target or the end cap.

42.2.3 Sidewalls

A major part of the emboss functionality involves the construction of the sidewall, and Parasolid provides you with a number of different methods and controls for you to specify its final appearance.

 

Note: In areas where the emboss feature overflows the boundary of the target body or the specified faces in the target, sidewalls are trimmed where necessary using the overflow data supplied in the options structure. See Section 42.2.4, “Overflow”, for details.

Parasolid can construct a sidewall for you using one of three methods:

In all three cases, the geometry of the sidewall is formed by a set of ruled surfaces that pass through the boundary of the profile.

In addition to these methods of internal construction, you can supply a sidewall yourself.

The data required for sidewalls is supplied using the sidewall_data option, which uses the PK_emboss_sidewall_data_t sub-structure.

42.2.3.1 Tapered sidewalls

If the sidewall field of sidewall_data is PK_emboss_sidewall_tapered_c, then Parasolid creates sidewalls that are tapered between the specified target and end cap, usually based on a supplied draw direction and taper angle.

 

Figure 42-3 Pad emboss feature with tapered sidewalls

For tapered sidewalls, you should also set the following fields (some of which are optional).

 

Field

Description

taper_method

The method used to created tapered sidewalls. Any of the following taper methods are allowed:

  • Isocline: this is the default.
  • Normal: the sidewall is tapered with respect to the normals of the faces of the supplied profile. This method can produce taper results in which the taper angle is not dependent on the draw direction, as shown in Figure 42-4.
  • Offset.
  • Curve.

If offset tapering is used, additional information needs to be supplied using the offset and top_surface fields. For more information about the differences between the different tapering methods allowed, see Section 64.2.12, “Taper methods”. Default: PK_taper_method_isocline_c

draw_direction

The direction of taper. This must be a unit vector. Default: (0,0,1).

The draw direction also acts as a general reference direction for the face normals of the cap of the resulting emboss feature. See Section 42.3, “Constraints”, for more information.

taper_angle

The angle of taper. Default: 0

offset

For offset tapering: the offset distance for the operation. This should be left at its default value if any other tapering method is used. Default: 0

top_surface

For offset tapering: the surface on which the profile edge's curve is projected to create the relevant offset curve. This should be left at its default value if any other tapering method is used. Default: PK_ENTITY_null

 

Figure 42-4 Pad emboss feature with normal tapered sidewalls

Tapered sidewalls (when taper_method is not PK_taper_method_offset_c) are generally constructed such that they draft outwards from the end cap body to the target body. This ensures that the emboss feature created will be non die-lock, that is, it would be physically possible to draw the part from a mold in the specified draw direction. You can model a die-lock emboss feature, such as a dovetail, by supplying a negative taper_angle .

42.2.3.2 Specifying multiple angles for tapered sidewalls

By default, if tapered sidewalls are created then a single taper angle is used for all faces in the sidewall. However, you can specify that different taper angles are used for any of the faces in the sidewall, as shown in Figure 42-5.

 

Figure 42-5 Pad emboss feature with tapered sidewalls using different angles

For sidewalls with multiple taper angles, you should set the following fields:

 

Field

Description

n_multi_taper_edges

The number of edges in the profile for which multiple taper angles are specified. Default: 0.

multi_taper_edges

An array of edges in the profile for which multiple taper angles are specified. Default: NULL.

multi_taper_angles

An array of taper angles for each of the edges specified in multi_taper_edges . Default: NULL.

42.2.3.3 Ruled sidewalls

If the sidewall field of sidewall_data is PK_emboss_sidewall_ruled_c, then Parasolid creates sidewalls that are ruled along the normals of the faces in the supplied profile.

No additional information needs to be supplied in order to create this type of sidewall.

 

Figure 42-6 Pad emboss feature with ruled sidewalls

42.2.3.4 Swept sidewalls

If the sidewall field of sidewall_data is PK_emboss_sidewall_swept_c, then Parasolid creates sidewalls that are swept.

For swept sidewalls, the sweep direction is taken from the specified draw_direction , which must be a unit vector. No other information needs to be supplied.

 

Figure 42-7 Pad emboss feature with swept sidewalls

42.2.3.5 Supplying your own sidewall

If the sidewall field of sidewall_data is PK_emboss_sidewall_supplied_c, then you can supply your own pre-constructed sidewall to use in the emboss operation. The sidewall itself is supplied using the sidewall_body field in the sidewall_data structure.

The sidewall supplied must be a sheet body, and is usually duct-like in shape. A supplied sidewall must be manifold and must not be disjoint. It should also be large enough to reach both the target and end cap.

When supplying a sidewall yourself, the profile received by Parasolid may be PK_ENTITY_null.

 

Figure 42-8 Pad emboss feature with user-supplied sidewalls

42.2.4 Overflow

Sometimes, the target body (for PK_BODY_emboss), or the supplied target faces (for PK_FACE_emboss) may not provide a complete base for the emboss feature. In other words, some of the profile’s projection along the sidewall lies outside the target area, and prevents the emboss feature from being completely defined.

In such cases, Parasolid can either trim the emboss feature so that it fits in the available area, or modify the feature so that it overflows onto adjacent faces.

Figure 42-9 shows an example where the profile’s projection overflows the target body on several sides. The resulting pad has been successfully created by trimming the pad on two overflow boundaries, and creating a new swept sidewall on the third boundary.

 

Figure 42-9 Creating an emboss feature using a profile that overflows the target

You use the overflow_data structure in both PK_FACE_emboss_o_t and PK_BODY_emboss_o_t to control emboss overflow behaviour. It has the following fields:

 

Field

Description

interior_overflow

Overflow behaviour along any interior edges in the target body that the area of profile projection runs outside. This behaviour applies only to PK_FACE_emboss. Default: PK_emboss_overflow_added_c

laminar_overflow

Overflow behaviour along any laminar edges in the target body that the area of profile projection runs outside. This behaviour applies to both PK_FACE_emboss and PK_BODY_emboss. Default: PK_emboss_overflow_swept_c

sweep_direction

The direction along which the overflow boundary is swept to produce a sheet. Default: (0, 0, 1)

laminar_walled

Whether to add side faces at laminar edges that overflow. Default: PK_LOGICAL_false.

Overflow behaviour is different at laminar edges in the target body than it is at non-laminar, or interior, edges. Both interior overflow and laminar overflow are specified using a PK_emboss_overflow_t sub-structure.

42.2.4.1 Specifying interior overflow behaviour

Interior overflow behaviour only applies to local emboss operations performed using PK_FACE_emboss. You should not specify interior overflow behaviour for a global emboss operation using PK_BODY_emboss.

If a locally created emboss feature overflows an interior edge on a target body, then several approaches are possible, depending on the configuration of the faces adjacent to the edge, and the information provided in the interior_overflow field.

 

Value

Description

PK_emboss_overflow_added_c

Include additional faces from the target body to allow the emboss feature to be extended, where necessary. This is the default, and is the same as the result created by a global emboss using the same configuration.

PK_emboss_overflow_mixed_c

At a concave edge, trim the emboss feature to adjacent faces. At a convex edge, trim the emboss feature by extending adjacent faces until they meet the end cap.

PK_emboss_overflow_none_c

Do not modify the emboss feature if it overflows the interior edge. In this case, the emboss operation fails if overflow is detected.

PK_emboss_overflow_laminar_c

Limit the embossed feature by treating the interior overflow boundary as a laminar overflow boundary. This can only be used when the embossed feature is to be returned separately; see Section 42.2.5, “Returning the embossed feature separately” for more details.

Convex and concave edges along an interior boundary are determined by the direction in which the adjacent faces bend with respect to the direction of the emboss feature:

The convexity of a given edge is therefore dependent on whether you are creating a pad or a pocket.

Figure 42-10 and Figure 42-11 show the result of mixed and added overflow on a pad and a pocket respectively. Notice that the concave and convex edges are reversed for the pocket example, compared to the pad example. In each case, the face specified in the call to PK_FACE_emboss is shown in blue.

 

Note: Interior edges are always defined in terms of the entire target body, rather than the faces specified in the call to PK_FACE_emboss. Thus, in Figure 42-10 and Figure 42-11, the overflowing edges are considered interior, even though only a single face is specified in the function call.

 

Figure 42-10 Trimming pads at interior edges

 

Figure 42-11 Trimming pockets at interior edges

42.2.4.2 Specifying laminar overflow behaviour

If an emboss feature overflows a laminar edge on a target sheet body, when using either global or local emboss, Parasolid’s general approach is to attempt to trim the emboss back to the laminar edge. The precise behaviour of overflow in these circumstances is actually a combination of two pieces of information:

You control the first of these using the laminar_overflow field, which can take any of the following values.

 

Value

Description

PK_emboss_overflow_ruled_c

Trim the end cap along the intersection with a sheet of ruled surfaces that touches the laminar edge and lies in the direction of the normal of the face adjacent to the laminar edge.

PK_emboss_overflow_swept_c

Trim the end cap along the intersection with a sheet of swept surfaces that touches the existing laminar edge and lies in the direction given by the sweep_direction field of overflow_data . This is the default.

PK_emboss_overflow_none_c

Do not modify the emboss feature if it overflows the laminar edge.

 

Figure 42-12 Trimming emboss features at laminar edges

You can control whether additional side faces are created during laminar overflow using the laminar_walled field of overflow_data . If PK_LOGICAL_true, side faces are created from the laminar edges whose surfaces are the ruled or swept surfaces used to trim the sidewall. Figure 42-13 shows the swept overflow result from Figure 42-12 with an additional side face. By default, side faces are not created at laminar edges.

 

Figure 42-13 Adding additional side faces at laminar edges

42.2.5 Returning the embossed feature separately

By default, Parasolid returns a single body containing the embossed feature. Alternatively, you can choose to leave the target body unaltered and return the faces of the embossed feature in the tracking information for the function. You do this by specifying the value of the unite field of the options structure as follows:

 

Value

Description

PK_emboss_unite_sidewall_yes_c

The embossed feature is attached to the target body. This is the default.

PK_emboss_unite_sidewall_no_c

The embossed feature is created separately; the target body is unaltered. The faces of the embossed feature are returned in the track_records->product_topols[] array of the tracking structure.

To recover the body comprising the embossed feature, you can call PK_FACE_ask_body with one of the faces in this array as the input to the function.

 

Figure 42-14 Embossed feature returned united or separate by PK_FACE_emboss

In Figure 42-14, the profile overlaps the target sheet body with the end cap positioned above as shown in diagram (a). By default, PK_FACE_emboss returns the embossed attached to the target body. If unite is set to PK_emboss_unite_sidewall_no_c, however, the embossed feature is returned separately (with the target unaffected).

If you choose to have the embossed feature returned separately, you can limit the sidewalls by treating the interior overflow boundary as a laminar overflow boundary; for details of laminar overflow processing, see “Specifying laminar overflow behaviour” in Section 42.2.4, “Overflow”. Limiting the sidewalls is done by setting the interior_overflow field of the overflow_data structure to PK_emboss_overflow_laminar_c. Figure 42-15 shows the difference in setting interior_overflow to PK_emboss_overflow_mixed_c and to PK_emboss_overflow_laminar_c.

 

Note: interior_overflow may be set to PK_emboss_overflow_laminar_c only when unite is set to PK_emboss_unite_sidewall_no_c.

 

Figure 42-15 The effect of interior_overflow on the embossed feature.

[back to top]


42.3 Constraints

For emboss operations to be successful, Parasolid places a number of constraints on both the topology supplied to the operation, and the orientation of the input bodies. This section describes the constraints that you should be aware of.

42.3.1 Topological constraints

The topology of the input bodies are checked for their suitability for the emboss operation. The following constraints should also be observed:

 

Input body

Constraints

Target

The target must contain a sufficiently large area to support the base of the emboss feature.

End cap

The end cap must contain a sufficiently large area to cap the sidewall of the emboss feature.

Profile

The peripheral edges of the profile define a cross-section of the resulting sidewall geometry.

If sidewall is PK_emboss_sidewall_ruled_c, you must specify a sheet profile.

If taper_method is PK_taper_method_normal_c, you must specify a sheet profile.

You can only specify a profile of PK_ENTITY_null if you supply the sidewall body yourself. If you supply a sidewall body, PK_BODY_emboss assumes that the profile, if not PK_ENTITY_null, lies on the supplied sidewall.

42.3.2 Orientation constraints

You should observe a number of constraints regarding the orientation of the various bodies received by PK_BODY_emboss:

 

Orientation

Constraint

Emboss direction

Any draw direction or sweep direction specified, whether it is used for a tapered sidewall or a swept sidewall, must be a unit vector. The extent of an emboss feature is determined by the position of the end cap.

Face normals

The face normals on both the base area of the target and the cap area of the end cap must point to the positive side of the draw direction.

When supplying a sheet profile, the face normals should point to the positive side of the draw direction.

A wire profile should encircle the draw direction in a right-handed manner.

When supplying your own sidewall body, the face normals of the duct-like sheet forming the sidewall body must point outwards for pad emboss features and inwards for pocket emboss features.

Positional constraints

The constraints on orientations also provide a simple way of describing the correct positional relationship between the target and the end cap. When measured relative to the draw direction, the cap area on the end cap must be above (for pads), or below (for pockets), the base area on the target.

 

[back to top]

<<< Shadow Curves Chapters Introduction To Sheets and Wires >>>