Edge Blending Overview   

<<< Introduction To Blending Chapters Edge Blending Options >>>

Contents

[back to top]


74.1 Introduction

Parasolid provides three forms of blending:

Edge blending smooths off an edge or list of edges, by introducing a new face or faces to a body. The resulting blend faces are usually tangent-continuous with the adjoining faces.

 

Note: Edge blending offers partial support for facet geometry. Face-face blending and three-face blending do not support facet geometry.

 

Related Topics:

74.1.1 Edge blending documentation

This chapter and the next few chapters describe Parasolid’s edge blending functionality. It is split into the following sections:

74.1.2 Face-face blends

Face-face blending is described in Chapter 77, “Face-Face Blending”.

Edge blending and face-face blending should not be thought of as alternatives, but as two approaches that work together powerfully, because their strengths and weaknesses are complementary.

74.1.3 Three-face blending

Three-face blends are a special case of face-face blends in which a blend is created between three sets of faces, rather than two. Three-face blends are described in Chapter 78, “Three-Face Blending”.

[back to top]


74.2 Fixed and unfixed edge blends

Edge blends are initially defined, or set, using one of the functions described in Section 74.3, “Types of edge blend”. Calling these functions attaches blend data to edges on a body in the form of attributes. Blends that are attached to edges in this way are referred to as unfixed.

To actually create blends on a series of edges, the unfixed blends need to be incorporated into the body (fixed) as faces that replace the edges to which the blend attributes were attached. Edge blends are fixed using PK_BODY_fix_blends, as described in Section 74.4.3, “Fix the blends in a body”.

 

Warning: You are strongly recommended not to change the topology or geometry of a model between setting and fixing an edge blend. Doing so may lead to invalid results.

Once a blend has been fixed, it may not be possible to restore the original edge, except by using rollback to unwind the modeling operation(s). See Chapter 97, “Rollback”, for more information.

[back to top]


74.3 Types of edge blend

There are three types of edge blend:

Each type of edge blend is set (that is, blend attributes are attached to the blend edges) using the functions listed below. Blends can then be fixed using PK_BODY_fix_blends.

 

Note: You should not attempt to fix a mixture of chamfers and rolling-ball blends in a single call to PK_BODY_fix_blends.

You can create each type of edge blend on general bodies, so long as the body is locally manifold in the area of the blend.

74.3.1 Rolling-ball blends

Function:

PK_EDGE_set_blend_constant

Rolling-ball blends have a constant circular or curvature-continuous cross-section; they are the result of rolling a sphere along two surfaces adjoining an edge (see Figure 74-1). The extent of rolling-ball blends is determined by specifying the radius of the sphere.

 

Figure 74-1 Rolling-ball blend

74.3.2 Chamfers

Function:

PK_EDGE_set_blend_chain and PK_EDGE_set_blend_chamfer

Chamfers are blends that have a linear cross-section (see Figure 74-2). There are two types of chamfer blends: face offset chamfers and apex-range chamfers.

Face offset chamfer blends can be determined by the intersection between offset surfaces that are defined using the range_1 and range_2 arguments in PK_EDGE_set_blend_chamfer or using options in PK_EDGE_set_blend_chain. See Section 75.2.4, “Options for face offset chamfers”, for more information.

Apex-range chamfers provide an alternative way of controlling the boundaries of a chamfer blend, and can be created using options in PK_EDGE_set_blend_chain. See Section 75.2.3, “Options for chamfer blends” for more information.

 

Figure 74-2 Chamfer blend

74.3.3 Variable rolling-ball blends

Function:

PK_EDGE_set_blend_chain

Variable rolling-ball blends are those where the size of the blend (e.g. the blend radius, in the case of a blend with a circular cross-section) varies along the chain of edges being blended as shown in Figure 74-3. Variable rolling-ball blends may have circular, conic, or curvature-continuous cross-sections.

 

Figure 74-3 Variable rolling-ball blend

[back to top]


74.4 Other blending functionality

As well as creating an unfixed blend, you can also enquire the properties of any unfixed blends, remove the blend attributes of an unfixed blend, and fix the blend.

74.4.1 Enquiring blend properties

This section provides a brief overview of the functionality available for enquiring various properties of edge blends. See the API documentation for each function in the PK Interface Programming Reference Manual for more information.

 

Type of enquiry

Description

Blend parameters

PK_EDGE_ask_blend returns information about the parameters of the unfixed blend on a given edge:

  • The type of blend attached to the edge (if any).
  • The faces to the left and right of the edge.
  • A structure detailing the shape of the blend (in the case of a blend set by PK_EDGE_set_blend_chain, this structure is not filled in; this function returns the details of the shape of the blend in a Parasolid Report instead).
  • A structure detailing the blend’s properties.
  • The blend’s cliff edge if used.

Standard form of a blend surface

PK_BLENDSF_ask returns the standard form of a rolling-ball blend surface. See Section 74.8, “Outputting fixed blend surfaces”, for more information.

74.4.2 Removing unfixed blends

PK_EDGE_remove_blend removes an unfixed blend from the given edge. If the blend was set using PK_EDGE_set_blend_chain, then the unfixed blend is removed from all edges in the chain of which the given edge forms a part.

74.4.3 Fix the blends in a body

PK_BODY_fix_blends changes any edges of the body which have blend attributes into full faces with the appropriate blending surface geometry.

PK_BODY_fix_blends supports a wide range of options for controlling the appearance of the fixed blend. See Section 75.3, “Options when fixing blends”, for more details.

[back to top]


74.5 Limitations on edge blending

There are a number of limitations which determine whether a particular edge can be blended. These limitations are based both on the underlying topology and geometry of the edge and the presence of blends on adjacent edges. Some limitations are general while others are related to the number of adjacent edges that are blended.

The geometry of blends can be extremely complex, and it is not possible to lay down hard and fast rules which can always be guaranteed to apply. The following sections give general rules of thumb which apply in the majority of cases.

74.5.1 General limitations on edge blending

Some general limitations are:

Figure 74-4 Exception to the previous rule

74.5.1.1 Blending facet or mixed edges

You can successfully blend facet or mixed edges if all of the following are true at the start of a blend operation:

 

Figure 74-5 Performing edge blending on facet bodies that have varying convexity

 

Figure 74-6 Blending chains of mixed edges

74.5.2 Specific limitations on edge blending

74.5.2.1 Blending one edge at a vertex

If three edges meet at the vertex, it is normally possible to blend one of them. The occasion when it is not possible to blend one of the edges is when the end surface is undefined. For example:

 

Figure 74-7 Limitation of blending one edge at a vertex

[back to top]


74.6 Edge blending rules, theories and tips

Although it is fairly straightforward to describe illegal blends it is much harder to generate rules of thumb which guarantee that blends are legal. In particular it is often difficult to avoid falling over the illegal overlap/intersection type errors caused by choosing too large blend radii. However, the following rules and tips are worth considering but always remember that it is best to make and fix blends in small groups:

74.6.1 Blending one edge at a vertex

If more than three edges meet at a vertex it is usually possible to blend one of them providing that:

74.6.2 Blending two edges at a three-edge vertex

You can successfully blend two of the edges at a three-edge vertex in the following situations:

 

Note: You cannot blend two edges of different convexity if either or both of the requested blends is a chamfer blend.

 

Figure 74-8 Blending two edges at a three-edge vertex

74.6.3 Blending three edges at a three-edge vertex

When all three edges of a three-edge vertex are blended simultaneously (put them on and fix them as a group), an extra blend face is added to smooth out the vertex.

74.6.4 Blending two edges at a four-edge vertex

When blending two edges of a four-edge vertex with a rolling-ball blend, the following constraints are applied:

 

Note: The two edges to be blended must both be picked before either blend is fixed.

Some common cases are illustrated in Figure 74-9. The illustrations show the “before” and “after” for each case; in the left hand picture of each example, the four-edge vertex is surrounded by a dotted circle.

 

Figure 74-9 Blending two edges at four-edge vertices

For an example of vertex blending, see the code example in the C++\Code Examples\Modelling\Blending\Edge\Vertex Blending folder, located in example_applications in your Parasolid installation folder.

74.6.5 Blends and B-surfaces

In principal edges at which one or both of the adjoining surfaces is parametric can be blended subject to the same restrictions as any other edge. However, the nature of B-surface definitions introduces extra restrictions on blending:

[back to top]


74.7 Variable radius blends

When creating variable radius blends (VRBs) using PK_EDGE_set_blend_chain, the following criteria must be satisfied:

For an example of variable radius blends, see the code example in the C++\Code Examples\Modelling\Blending\Edge\Variable Radius Blending folder, located in example_applications in your Parasolid installation folder.

Section 75.2.2, “Options for variable radius blends” for more information on variable radius blend options.

[back to top]


74.8 Outputting fixed blend surfaces

PK_BLENDSF_ask outputs the data describing a fixed blend surface. Internally there is only one type of blend surface, the blended edge, which is used for a face which smooths out an edge or a vertex, e.g. that which is used to smooth out a three-edge vertex when two of the blends add material and the other removes material (or vice versa).

74.8.1 Blended edge

The data which is returned for a blended edge is:

The chamfer blend type is never returned, the surfaces introduced by fixing chamfers are always planes, cylinders, cones or B-surfaces.

74.8.2 Simplification of blend surfaces

Wherever possible, Parasolid simplifies fixed rolling-ball blends to tori and cylinders.

PK_BLENDSF_ask can only be used to output a surface of type PK_CLASS_blend. PK_ENTITY_ask_class may be used to determine the type of surfaces created by fixing blends.

[back to top]

<<< Introduction To Blending Chapters Edge Blending Options >>>