Blend Geometry


ACIS allows round blends, chamfer blends, and vertex nsided patches (Gregory Polygon surfaces).

Blend Radius

The blend radius refers to the radius of the figurative rolling ball. The blend radius may either be constant or variable. Any combination of variable radius and constant radius blends may exist in a sequence of edges to be blended, as long as they always meet one another with matching radius values.

Constant Radius Blends

When the blend radius is constant, the spine and spring curves are obtained by:

Constant radius blends are represented by the rolling ball surface type (rb_blend_spl_sur). Older versions of ACIS used a pipe surface (pipe_spl_sur), and this behavior can be recovered by setting the option rb_replace_pipe to off (false). However, applications are strongly discouraged from changing this option.

The surface of a constant radius blend is represented by either a spline surface or a simple analytic surface. The spring curves bound the portion of the surface used for the blend.

In general, the blend surface is represented by a spline. Under certain geometric conditions, (i.e., when the spine curve is a simple curve type), the blend surface is represented by a simple analytic surface. For example:

If the spine is a: The surface is a:
straight line cylinder
circular arc torus
point sphere

The corresponding points on the spine and spring curves (i.e., the center and the two contact points of the rolling ball at a given position) determine a plane. The spine curve is perpendicular to this plane. Dropping a perpendicular from a point on the spine curve onto the other two curves provides the corresponding points.

Variable Radius Blends

Allowing the blend radius to vary introduces some fundamental differences into the algorithms. The offset intersection algorithm used to find the spine and spring curves works only for constant radius blends, because a variable offset is ill-defined on a surface. A figurative rolling ball must be set up at the desired position to evaluate the curves and the blend surface, and a marching algorithm is required to find the approximating curves and surface. Analytic surfaces cannot be used to represent even simple variable radius blends. The spine and spring curves are no longer perpendicular to the plane defined by corresponding points.

When a variable radius function is specified, there must be some way to indicate exactly where along the blend a particular radius value is obtained. ACIS uses the geometry of the edge being blended to calibrate this. The parameter of the radius function is the parameter of the edge curve. At a given vparameter, a ball of radius r(v) is set up so that its center is in the plane perpendicular to the edge curve, evaluated at v.

Variable Radius Blend Surface Types

Standard blending supports two mathematical definitions of variable radius blend surfaces. The first is a rolling ball snapshot blend surface. The second type (introduced in Release 5.0) is a rolling ball envelope blend surface. Although geometrically similar, sequences of the rolling ball envelope surface are smoother, and their offsets are better behaved. Their spring curves are identical, but the cross sections have a subtly different shape. This allows the rolling ball envelope to be perfectly smooth across transitions between blend surfaces in a smooth sequence of edges.

The Advanced Blending Component provides a third mathematical definition of a variable radius blend surface called a sliding disc. Both the rolling ball snapshot and the sliding disc surface types have a slight crease between faces if the blend rolls across an edge that is smooth but not curvature continuous and if the radius is varying as it crosses the edge. This can cause near tangency problems when the surfaces are offset. The rolling ball envelope surface addresses this problem and permits robust performance in operations that use surface offsets.

The type of variable radius blend surface created (for standard blending only) is controlled by option bl_envelope_surf. If this option is on (true), a rolling ball envelope blend surface is created. If it is off (false), a rolling ball snapshot blend surface is created. However, applications are discouraged from changing this option setting.

Simplest Variable Radius Blend Surface Used

The variable radius blend algorithms construct the simplest blend surface that can represent the geometry requested. For example, if a variable radius blend is specified with a start and an end radius value, and these values are the same, then a constant blend will be made. This behavior is controlled by the option blend_make_simple, but applications are strongly discouraged from changing this option setting.

Geometric Limitation on the Blend Radius

During blending, if the blend supports are not flat (the curvature of a blend support is of the same type as the curvature of the blend being requested), then the blend surface may become self-intersecting, resulting in the blend operation to fail.

Consider two bodies (refer to the figures below), which are quite similar with the exception of the cylindrical face (highlighted in yellow shade) being concave in the first figure and convex in the second figure:

      

When attempting to blend the three edges marked red (in the figures shown below), it should be noted that both bodies have high-curvature face (highlighted in yellow shade), which should serve as a support for one of the blend faces. In both the bodies, the curvature radius of the yellow face is lower then the requested blend radius. This does not present any difficulties in the first case, as the curvature vector of the support surface and that of the blend face point in opposite direction (that is, the support is concave but the blend in convex). However in the second case, both the curvatures point inside the body (that is, both the support and the requested blend surface are convex), which causes the upper spring curve to form a loop and the blend surface to self-intersect. Such an invalid situation gets detected by ACIS and results in an error message to report a blend failure.

      

Cross Section

A blend between two entities has a characteristic shape which is defined by the cross section of the blend surface. The cross section is the shortest line along the blend surface that connects the two faces being blended. The cross section is always perpendicular to both faces in the blend.

A circular (round) blend has a circular cross section. The cross section of a chamfer blend is a straight line.

Round Blends

A round blend refers to the surface produced by either of the following:

In general, the envelope of the rolling balls path is represented by a spline surface. When possible, it is represented by a simple analytic surface. In either case, the surface is tangent to the two faces and has precise evaluators.

Spring curves follow the point of contact between the pipe and the two faces. The portion of a pipe surface that lies between the spring curves is used to form the round blend face.

Note:  The phrase between the spring curves refers to the portion of the surface with smaller arc length.

Figure. Blend Face Between Spring Curves

Chamfer Blends

Chamfering is a ruled surface swept out between the contact points on the support surfaces. The following figure shows an example of a chamfer blend.

Figure. Chamfer Blend

Standard Chamfering is contained in the blend component and provides functionality for generating chamfers between analytic support surfaces configured in such a way that the chamfer surface can be represented by a plane or a cone. The size and orientation of the chamfer are defined by specifying an "in-support" distance ("range") for each support. This range is defined to be the distance in the support between the edge being chamfered and the contact point on the support where the chamfer intersects the support as shown below.

Figure. Standard Chamfering

Vertex Blends

ACIS supports vertex blends and provides a variety of ways to control the shape of the vertex blend surface. Parameters to control the shape (for example, setbacks, etc.) may be passed explicitly, or ACIS may be left to work them out automatically (by specifying autosetback or no parameters at all).

Setbacks

When a blended edge ends in a blended vertex, the blend face made for the edge meets the blend face made for the vertex in a cross edge. ACIS needs to find a position and inclination for this cross edge. In such cases, start and end setbacks may be applied to each end of the blended edge. A setback specifies the distance along an edge back from the vertex at which the blend stops.

The setback defines a plane which is normal to the edge through a point on the edge and set back from the edge end by the given distance. The intersection of the setback plane with the blend surface defines a curve that may be used to bound part of the face for the blended vertex at the end of the edge.

The setback can be defined in one of the following ways:

If the setback is to be applied on the vertex blend, it may be:

Setback Specified Explicitly

Start and end setbacks may be specified explicitly when the blend is set by passing the values as arguments to various blend APIs (or test harness commands or Scheme extensions). Valid values for setback depend on the size and geometry of the edges at the vertex being blended.

If the user specifies a setback that is smaller than the smallest setback practical, that value will be overridden and the smallest practical value used instead (refer to section No Setback Specified for information about how this minimum value is determined).

Oblique Setbacks

If the setback is specified explicitly, it may be inclined (oblique). This is a further refinement that lets the setback on the left spring curve of a blended edge differ from the setback on the right spring curve. This gives further control over the boundary shape of the blend face made for a vertex blend.

Oblique setbacks can be selected in one of two ways:

If the difference is not specified, when the left and right spring curves of the blended edge are intersected with the spring curves of the adjacent blended edges at the blended vertex, and when two intersection points are obtained (one for each spring curve), the cross edge is inclined so that it passes through both the intersection points. This gives the smallest and topologically simplest vertex blend face.

For a blended vertex of uniform convexity (its n edges are all convex or are all concave), the vertex blend face made will have n sides. If the blended vertex is not of uniform convexity, the blend face will have more than n sides; i.e., in addition to n cross edges, its will have one or more spring edges (edges at which the vertex blend surface springs from surfaces of faces adjacent to the blend vertex).

When a vertex is of mixed convexity or the sizes of the blends on its edges differ greatly, the oblique option can lead to poor shapes for the vertex blend boundary (angles at vertices of the boundary must be less than pi). In that case it is probably best to compute setbacks automatically.

Automatic Setback Calculation (Autosetback)

The setback can be automatically calculated, which means ACIS finds and assigns setbacks at a blended vertex (provided the edges at the vertex already carry implicit blend attributes). Autosetback is applied to a vertex blend using the api_set_vblend_auto function.

Users may want to use autosetback to get a good starting point, and then adjust the setbacks manually for further refinement of the blend shape.

Autosetback finds an average blend size for the edges at the vertex. For each edge, it considers the edge adjacent on the clockwise side and finds a setback that allows a spring curve of radius close to the average blend size, and similarly for the counterclockwise side. It then chooses the greater of the two setbacks for the current edge. This method regards the vertex as polyhedral; i.e., it looks at normals and tangents at the vertex.

Autosetback never makes oblique setbacks. However, it is possible to introduce oblique setbacks by manually refining the setback to improve vertex blend shape after the automatic setback calculation.

Because autosetback uses the sizes of the blends and the angles in which the edges meet at the vertex to estimate the setbacks, it works reasonably well if all of the following conditions are true:

Note:  A variant of autosetback exists for historical reasons. It is called autoblend ( api_set_vblend_autoblend) and differs from autosetback in that it will use simple surfaces (spheres, etc.) whenever possible (autosetback does not), otherwise, it uses the same setbacks as autosetback.

No Setback Specified

If no setback is specified, ACIS must still find the position of the cross edge. Given a blended edge with no setback specified, ACIS intersects the spring curves of the blend geometry found for the edge with the spring curves made for the adjacent blended edges at the vertex (i.e., the edges that are found by stepping to the next edge clockwise or counter-clockwise about the vertex).

Usually, two intersection points are found: one for the left and one for right spring curve. ACIS chooses the intersection point further from the blended vertex and positions the cross edge to pass through that point. If an adjacent edge meets the current edge in a reflex angle (greater than pi), no point will be found for that side, but a point must exist for the other side and that will be used to position the cross edge. In effect, this method finds the smallest setback practical for a nonoblique cross edge.

Some final adjustments are made in order to remove or improve any awkwardly shaped curves, sometimes resulting in oblique cross curves.

As a rule of thumb, use no setbacks at all to obtain the smallest pleasing vertex blend surface, and use autosetback to obtain a larger extent for the blend surface. If no setbacks are specified, simple vertex blend surfaces will be made whenever possible (for example, spheres, tori, etc.). Using autosetback precludes the creation of such simple surfaces, and an nsided patch will always result.

Vertex Setback Example

The following figure illustrates a vertex blend with no setback, then the same blend with two different setbacks. The original block is 100 x 100 x 100. In the blend with no setback, oblique cross curves are used automatically to create a minimal blend. The first setback is 20, and the second setback is 40. With a setback of 40, the blend is larger. In this example, a setback of 200 is invalid, because it is larger than the length of the edges.

Figure. Vertex Setback

Bulge Factor

The bulge factor is a number used to control the shape of the vertex blend. The bulge factor affects the interior shape of the vertex blend surface. It has no effect on the boundaries of the blend surface. It also affects only the nsided patch surface, making no difference when spheres or tori (etc.) are used.

The bulge factor value ranges from 0.0 to 2.0. If the bulge factor is not set by the user, it is set to the default value, 1.0. A larger value increases the fullness of the blend. A value of zero is usually suitable for a blend at a mixed convexity vertex, but for a uniform convexity vertex (i.e., all of whose edges are either convex or concave), a positive bulge factor may improve the shape obtained. The following figure illustrates a vertex blend with no bulge (blend is flatter) and then the same blend with bulge = 2.0, which produces a fuller blend. The default value of 1.0 should normally be acceptable.

Figure. Bulge

Vertex N-Sided Gregory Polygon Surface

A vertexnsided Gregory polygon surface is the case in which all of the edges meeting at an internal vertex are to be blended. They do not have to have identical blend radii, nor do they have any smoothness requirements.

An nsided Gregory polygon surface is typically produced when a sphere, torus, or rolling ball blend will not fit into the vertex region (for example, if all the blends that meet there are of different radii), or when setbacks are given (as in the following figure).

Figure. NSided Gregory Polygon Surface

Other cases of internal vertices that are not explicitly blended with an nsided Gregory polygon surface are handled by other techniques. The vertex may be smoothed away by blending one of the edges at the vertex, leaving a smooth sequence of edges that are then blended in a second step. Another option is to simultaneously blend a pair of edges at the vertex to form a mitered joint.

Approximated Vertex Blend Surface

The API function api_make_VBL_output_surfaces approximates an n-sided VBL_SURF surface by n four-sided bs3_surfaces. This enables ACIS to output vertex blend surfaces in a form that can be read and used by most other systems.

[Top]