Edge Blend Overflows   

<<< Edge Blending Functions and Options Chapters Interpreting Edge Blending Error Codes >>>

Contents

[back to top]


31.1 Introduction

A blend overflow occurs when a blend as defined by its basic parameters, would leave one or both of the faces adjacent to the edge being blended.

This configuration can be dealt with by specifying how the blend surface should be modified:

[back to top]


31.2 Definitions

[back to top]

31.2.1 Internal and external overflow

The blends can leave either internally, when the blend lies in a face adjacent to the edge being blended to both sides of the overflow,

 

Figure 31-1 Blend overflowing internally

or externally, when the overflow occurs at one end of the blend:

 

Figure 31-2 Blend overflowing externally

[back to top]

31.2.2 Bounds

The overflow bounds are the edges bounding the region of overflow.

 

Figure 31-3 Overflow bounds

[back to top]

31.2.3 Edges

Overflow edges are any other edges at vertices between overflow bounds.

 

Figure 31-4 Overflow edges

[back to top]

31.2.4 Convexity

The convexity of an overflow refers to the relative convexities of the overflow bounds and the edge being blended.

 

Figure 31-5 Overflow convexity

[back to top]


31.3 Overflow types

Overflows can be dealt with by being treated as:

[back to top]

31.3.1 Smooth overflow

Smooth overflow ov_smooth - in the region of the overflow, the blend surface is replaced by an equivalent blend on the face(s) associated with the overflow. This occurs when all the overflow bounds and all the overflow edges are smooth.

 

Figure 31-6 Smooth overflow

[back to top]

31.3.2 Cliff overflow

Cliff overflow ov_cliff - in the region of the overflow, the blend surface is replaced by a (series of) cliffedge blends running round the region of overflow. For this to be successful it is necessary that all the overflow edges are smooth, but the overflow bounds need not be smooth.

 

Figure 31-7 Cliff overflow

[back to top]

31.3.3 Cliff end overflow

Cliff end overflow ov_cliff_end - if the configuration is unsuitable for cliff overflow, Parasolid tries to 'cliff and overflow' - i.e. replace the appropriate section of the blend by a cliffedge blend at the ends of the appropriate edges.

[back to top]

31.3.4 Notch overflow

Notch overflow ov_notch - the blend surface remains the same, and the blend is trimmed using the faces in the notch.

 

Figure 31-8 Notch overflow

[back to top]


31.4 The default overflow behavior and influencing tokens

In general, Parasolid attempts overflow in the following order:

  1. Smooth overflow
  2. Cliffedge overflow
  3. Notch overflow
  4. The following two sections, "Internal overflows" and "External overflows", illustrate the different overflow types being used in specific circumstances, and the default conditions which apply in these circumstances.

    When an overflow type, other than the default, is required the relevant token must be supplied in the argument props . These tokens are declared in the typedefs:

    The tokens listed in the following tables each have the prefix PK_blend_ov_ (e.g. PK_blend_ov_smooth_no_c).

    [back to top]

    31.4.1 Tokens for use with PK_EDGE_set_blend_constant

     

    Overflow Type PK_BLEND_ov_... Token to
    prevent allow when same convexity allow at end default

    Smooth

    smooth_no_c

    smooth_any_c

     

    smooth_diff_c

    Cliffedge

    cliff_no_c

    cliff_any_c

     

    cliff_diff_c

    Cliffedge end

     

     

    cliff_end_yes_c

    cliff_end_no_c

    Notch

    notch_no_c

     

     

    notch_yes_c

    [back to top]

    31.4.2 Tokens for use with PK_EDGE_set_blend_chamfer

     

    Overflow Type PK_BLEND_ov_... Token to
    prevent allow when same convexity default

    Smooth

    smooth_no_c

    smooth_any_c

    smooth_diff_c

    Notch

    notch_no_c

    notch_yes_c

     

    [back to top]

    31.4.3 Tokens for use with PK_EDGE_set_blend_variable

     

    Overflow Type PK_BLEND_ov_... Token to
    prevent allow when same convexity allow at end default

    Smooth

    smooth_no_c

    smooth_any_c

     

    smooth_diff_c

    Cliffedge

    cliff_no_c

    cliff_any_c

     

    cliff_diff_c

    Cliffedge end

     

     

    cliff_end_yes_c

    cliff_end_no_c

    Notch

    notch_no_c

     

     

    notch_yes_c

    When no allowed overflow type can be created, the blend operation fails.

    [back to top]

    31.4.4 Internal overflows

    For any type of internal overflow to be allowed, there must be one (and only one) overflow edge per vertex, i.e. all vertices between overflow bounds must have 3 edges meeting at them. Internal smooth overflows may flow more than one face away from the blend.

     

    Figure 31-9 Internal overflows

    The following examples of internal overflows are used to illustrate the expected default behavior of the particular example, and the behavior of the example when specific overflow conditions (via tokens) are applied.

    Internal overflow over a sharp edge

     

    Figure 31-10 Blend to overflow a sharp edge of opposite convexity

    For this set of conditions the default blend overflow is a cliffedge overflow.

     

    Note: At some point, as the blend radius increases, the cliffedge becomes unstable and at that point the overflow becomes a notch overflow by default . If you want to prevent the cliffedge overflow changing to a notch overflow then apply the token PK_blend_ov_notch_no_c. This prevents the formation of the notch overflow, with the result that if a cliffedge is not possible the blend operation fails.

     

    Figure 31-11 Default conditions creating a cliffedge overflow

    To create a notch overflow the default cliffedge overflow must overridden. This is managed by supplying the PK_blend_ov_cliff_no_c token to the props argument (bearing in mind that with these conditions a smooth overflow is not possible).

     

    Figure 31-12 Overriding the default to produce a notch overflow

    Internal overflow over a smooth edge with opposite convexity

     

    Figure 31-13 Blend to overflow a smooth edge of opposite convexity

    For this set of conditions the default blend overflow is a smooth overflow. It is not possible to produce a notch overflow in these circumstances.

     

    Figure 31-14 Default conditions producing a smooth overflow

    To create a cliffedge overflow, the default smooth overflow must be overridden. This is managed by supplying the token PK_blend_ov_smooth_no_c to the props argument.

     

    Figure 31-15 Overriding the default to produce a cliffedge overflow

    Internal overflow over a sharp edge with the same convexity

     

    Figure 31-16 Blend to overflow a sharp edge of same convexity

    For this set of conditions the default blend overflow is a notch overflow. In these circumstances a smooth overflow is not possible, therefore the PK_blend_ov_smooth_any_c token would be ignored (if supplied).

     

    Figure 31-17 Default conditions creating a notch overflow

    To create a cliffedge overflow, the token PK_blend_ov_cliff_any_c must be supplied to the props argument. If a cliffedge overflow is not possible a notch overflow is attempted. Supplying the PK_blend_ov_notch_no_c token would prevent this notch overflow from being attempted.

     

    Figure 31-18 Overriding the default to produce a cliffedge overflow

    Internal overflow over a smooth edge with the same convexity

     

    Figure 31-19 Blend to overflow a smooth edge of the same convexity

    For this set of conditions the default blend overflow is a notch overflow.

     

    Figure 31-20 Default conditions creating a notch overflow

    To create a cliffedge overflow, the token PK_blend_ov_cliff_any_c must be supplied to the props argument.

     

    Figure 31-21 Overriding the default to produce a cliffedge overflow

    To create a smooth overflow, the token PK_blend_ov_smooth_any_c must be supplied to the props argument.

     

    Figure 31-22 Overriding the default to produce a smooth overflow

    [back to top]

    31.4.5 External overflows

    External overflows are those cases where the overflowing blend is the only edge being blended at the appropriate vertex.

     

    Figure 31-23 External overflow

     

    Note: When creating external overflows of the cliffedge type it is always necessary to specify that the cliffedge is required at the end of the blend by supplying the PK_blend_ov_cliff_end_yes_c token to the props argument.

    The PK_blend_ov_notch_no_c token only applies to internal overflows, and has no effect on external overflow behavior.

    The following examples of external overflows are used to illustrate the expected default behavior of the particular example and the behavior of the example when specific overflow conditions (via tokens) are applied.

    External overflow over a sharp edge

     

    Figure 31-24 Blend to overflow a sharp edge of opposite convexity

    For this set of conditions the default blend overflow is a notch overflow. In these circumstances smooth overflow is not possible, the token PK_blend_ov_smooth_any_c would be ignored if supplied to the props argument.

     

    Figure 31-25 Default conditions creating a notch overflow

    To create a cliffedge overflow the PK_blend_ov_cliff_any_c token must be supplied to the props argument. As previously explained, when creating external overflows of the cliffedge type it is necessary, as in this case, to also supply the PK_blend_ov_cliff_end_yes_c token as the cliffedge overflow is at the end of the blend.

     

    Figure 31-26 Overriding the default to produce a cliffedge overflow

    External overflow over a smooth edge with opposite convexity

     

    Figure 31-27 Blend to overflow a smooth edge of opposite convexity

    For this set of conditions the default blend overflow is a smooth overflow. The notch overflow is not possible in these circumstances.

     

    Figure 31-28 Default condition creating a smooth overflow

    To create a cliffedge overflow, the PK_blend_ov_smooth_no_c token must be supplied to the props argument. As previously explained, when creating external overflows of the cliffedge type it is necessary, as is in this case, to also supply the PK_blend_ov_cliff_end_yes_c token to allow an end cliff.

     

    Figure 31-29 Overriding the default to produce a cliffedge overflow

    External overflow over a sharp edge with the same convexity

     

    Figure 31-30 Blend to overflow a sharp edge of the same convexity

    For this set of conditions the default blend overflow is a notch overflow. The smooth overflow is not possible in these circumstances, therefore the PK_blend_ov_smooth_any_c token would be ignored if it were supplied to the props argument.

     

    Figure 31-31 Default condition creating a notch overflow

    To create a cliffedge overflow the PK_blend_ov_cliff_any_c token must be provided because the convexity is the same, and the PK_blend_ov_cliff_end_yes_c token because the cliffedge is at the end of the blend.

     

    Figure 31-32 Overriding the default to produce a cliffedge overflow

    External overflow over a smooth edge with the same convexity

     

    Figure 31-33 Blend to overflow a smooth edge of the same convexity

    For this set of conditions the default blend overflow is a notch overflow.

     

    Figure 31-34 Default conditions creating a notch overflow

    To create a smooth overflow the PK_blend_ov_smooth_any_c token must be supplied to the props argument.

     

    Figure 31-35 Creating a smooth overflow by supplying token PK_blend_ov_smooth_any_c

    To create a cliffedge overflow the PK_blend_ov_cliff_any_c token must be provided because the convexity is the same, and the PK_blend_ov_cliff_end_yes_c token because the cliffedge is at the end of the blend.

     

    [back to top]

    <<< Edge Blending Functions and Options Chapters Interpreting Edge Blending Error Codes >>>