![]() |
Edge Blend Overflows |
<<< Edge Blending Options | Chapters | Face-Face Blending >>> |
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:
For an example of edge blend overflows, see the code example in the
C++\Code
Examples\Modelling\Blending\Edge\Recommended
Options
folder, located in
example_applications
in your Parasolid installation folder.
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 76-1 Blend overflowing internally
or externally, when the overflow occurs at one end of the blend:
Figure 76-2 Blend overflowing externally
The overflow bounds are the edges bounding the region of overflow.
Overflow edges are any other edges at vertices between overflow bounds.
The convexity of an overflow refers to the relative convexities of the overflow bounds and the edge being blended.
Figure 76-5 Overflow convexity
Overflows can be dealt with by being treated as:
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.
Cliff overflow
ov_cliff
- in the region of the overflow, the blend surface is replaced by a (series of) cliff-edge blends running round the region of overflow. For this to be successful all the overflow edges must be smooth, though the overflow bounds need not be smooth.
Cliff end overflow
ov_cliff_end
- if the configuration is unsuitable for cliff overflow, Parasolid tries to ‘cliff end overflow’ - i.e. replace the appropriate section of the blend by a cliff-edge blend at the ends of the appropriate edges.
Notch overflow
ov_notch
- the blend surface remains the same, and the blend is trimmed by extending or trimming the neighboring faces in the notch.
If you want to give your users more control over the final shape of the blend, you can combine cliff edge or cliff end overflow with other types of overflow. You do this by using the
explicit_cliff_edges
and
explicit_cliff_edges_type
options in PK_BODY_fix_blends to control which edges do and do not form cliff-edge blends. In this way you can force a cliff edge overflow in cases where Parasolid would use a smooth or notch solution by default.
Figure 76-9 shows an example where a notch overflow is required to successfully place a blend on an edge, because of a boss on the side of the body. The default solution for this is to create a notch overflow for the entire blend. However, by specifying that the edge shown must be a cliff edge, you can control the blend operation and produce an alternative result.
Figure 76-9 Combining notch and cliff-end overflow
Figure 76-10 shows another use of this functionality in which one side of a blend is given a notch overflow, while the other side has a cliff edge overflow: if no explicit cliff edge was specified on the original body, the default solution would have a notch overflow on both sides of the resulting blend.
Figure 76-10 Specifying cliff edge overflow and notch overflow on each side of a blend
For more information about controlling the use of cliff-edge blends, see Section 75.3.1, “Creating cliff-edge blends”.
In general, Parasolid attempts overflow in the following order:
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
properties
. 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).
When no allowed overflow type can be created, the blend operation fails.
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 76-11 Internal overflows
The following examples of internal overflows are used to illustrate the expected default behaviour of the particular example, and the behaviour of the example when specific overflow conditions (via tokens) are applied.
Figure 76-12 Blend to overflow a sharp edge of opposite convexity
For this set of conditions the default blend overflow is a cliff-edge overflow.
Note: At some point, as the blend radius increases, the cliff edge becomes unstable and at that point the overflow becomes a notch overflow by default. If you want to prevent the cliff-edge 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 cliff edge is not possible the blend operation fails. |
Figure 76-13 Default conditions creating a cliff-edge overflow
To create a notch overflow the default cliff-edge overflow must overridden. This is managed by supplying the PK_blend_ov_cliff_no_c token to the
properties
argument (bearing in mind that with these conditions a smooth overflow is not possible).
Figure 76-14 Overriding the default to produce a notch overflow
Figure 76-15 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 76-16 Default conditions producing a smooth overflow
To create a cliff-edge overflow, the default smooth overflow must be overridden. This is managed by supplying the token PK_blend_ov_smooth_no_c to the
properties
argument.
Figure 76-17 Overriding the default to produce a cliff-edge overflow
Figure 76-18 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 76-19 Default conditions creating a notch overflow
To create a cliff-edge overflow, the token PK_blend_ov_cliff_any_c must be supplied to the
properties
argument. If a cliff-edge 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 76-20 Overriding the default to produce a cliff-edge overflow
Figure 76-21 Blend to overflow a smooth edge of the same convexity
For this set of conditions the default blend overflow is a notch overflow.
Figure 76-22 Default conditions creating a notch overflow
To create a cliff-edge overflow, the token PK_blend_ov_cliff_any_c must be supplied to the
properties
argument.
Figure 76-23 Overriding the default to produce a cliff-edge overflow
To create a smooth overflow, the token PK_blend_ov_smooth_any_c must be supplied to the
properties
argument.
Figure 76-24 Overriding the default to produce a smooth overflow
External overflows are those cases where the overflowing blend is the only edge being blended at the appropriate vertex.
Figure 76-25 External overflow
Note: When creating external overflows of the cliff-edge type it is always necessary to specify that the cliff edge is required at the end of the blend by supplying the PK_blend_ov_cliff_end_yes_c token to the
properties
argument.The PK_blend_ov_notch_no_c token only applies to internal overflows, and has no effect on external overflow behaviour. |
The following examples of external overflows are used to illustrate the expected default behaviour of the particular example and the behaviour of the example when specific overflow conditions (via tokens) are applied.
Figure 76-26 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
properties
argument.
Figure 76-27 Default conditions creating a notch overflow
To create a cliff-edge overflow the PK_blend_ov_cliff_any_c token must be supplied to the
properties
argument. As previously explained, when creating external overflows of the cliff-edge type it is necessary, as in this case, to also supply the PK_blend_ov_cliff_end_yes_c token as the cliff-edge overflow is at the end of the blend.
Figure 76-28 Overriding the default to produce a cliff-edge overflow
Figure 76-29 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 76-30 Default condition creating a smooth overflow
To create a cliff-edge overflow, the PK_blend_ov_smooth_no_c token must be supplied to the
properties
argument. As previously explained, when creating external overflows of the cliff-edge 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 76-31 Overriding the default to produce a cliff-edge overflow
Figure 76-32 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
properties
argument.
Figure 76-33 Default condition creating a notch overflow
To create a cliff-edge 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 cliff edge is at the end of the blend.
Figure 76-34 Overriding the default to produce a cliff-edge overflow
Figure 76-35 Blend to overflow a smooth edge of the same convexity
For this set of conditions the default blend overflow is a notch overflow.
Figure 76-36 Default conditions creating a notch overflow
To create a smooth overflow the PK_blend_ov_smooth_any_c token must be supplied to the
properties
argument.
Figure 76-37 Creating a smooth overflow by supplying token PK_blend_ov_smooth_any_c
To create a cliff-edge 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 cliff edge is at the end of the blend.
<<< Edge Blending Options | Chapters | Face-Face Blending >>> |