Advanced Blending Functionality
From DocR23
In the most general sense, a blend is a transition surface between regions of a model. Standard blending, which is embedded within ACIS, offers blends to transition between faces, but Advanced Blending (ABL) provides additional capabilities.
Advanced blending with ABL falls broadly into two categories:
- Edge sequence-following
- Augments the range of face-face geometries available to standard blending.
- Entity-entity
- Provides a wholly general framework for blends between faces, edges, and vertices.
Note: The standard blending of the Blending Component provides some support for entity-entity blends to resolve certain difficult blending configurations. However, it does not provide the functionality for defining arbitrary entity-entity blends.
In ABL, variable radius blends may be defined with a more flexible range of radius functions and cross section shapes, and blends between faces and edges (entity-entity blending) may be performed.
ABL handles many more geometric and topological cases than standard blending and also provides many new blend shapes, augmenting the round and chamfer blends available in standard blending. However, the geometry classes (for example, curve and surface types) needed for this functionality are implemented within the Kernel Component, because ACIS based applications that are not linked with ABL must be able to read, write, and evaluate (but not create) the geometries produced by advanced blending operations.
Refer to Geometric Limitation on the Blend Radius.
Contents |
Interfaces
Edge Blending Interfaces
- Interfaces to attach blend attributes to the edges.
| API | Scheme Extension | Component | Description |
|---|---|---|---|
| api_smooth_edge_seq | blend:get-smooth-edges | Blending | Gets a list of all edges that smoothly connect to a given edge. |
| api_smooth_edges_to_curve | blend:smooth-edges-to-curve | Blending | Generates a calibration curve fit to a list of edges. |
| api_set_abh_blends | abl:set-abh-blends abl:edge-blend | Advanced Blending | Sets an implicit variable radius blend on each of a list of edges or vertices. |
| api_abh_vblend | abl:var-round | Advanced Blending | Attaches variable radius blend attribute with smooth radius variation. |
- Interfaces to fix blend attributes.
| API | Scheme Extension | Component | Description |
|---|---|---|---|
| api_fix_blends | blend:fix blend:network | Blending | Apply blend by fixing the attached blend attributes. |
| api_blend_edges_pos_rad | solid:blend-edges-pos-rads | Advanced Blending | Blend edges of a solid by defining position-radius pairs. Attach and fix the blend attributes in a single API call. |
Entity Entity Interfaces
This section describes some of the APIs and Scheme commands to perform entity-entity constant and variable radius blending operation.
| API | Scheme Extension | Component | Description |
|---|---|---|---|
| api_set_ee_cr_blend | abl:ents-ents-blend abl:ent-ent-blend | Advanced Blending | Attaches a constant radius entity-entity round blend attribute between two sets of support entities. |
| api_smooth_edges_to_curve | blend:smooth-edges-to-curve | Blending | Generates a calibration curve fit to a list of edges. |
| api_set_ee_vr_blend | abl:ent-ent-blend | Advanced Blending | Attaches variable radius entity-entity blend attribute to the body. The blend radius is described by one or two variable radius objects. |
| api_set_inst_blend | abl:set-instruction | Advanced Blending | Sets a blend instruction on the indicated entity. This is used to govern behavior related to capping, roll-on to new entity. |
| api_fix_blends | blend:fix blend:network | Blending | Apply blend by fixing the attached blend attributes. |
Blend Cross Section
A blend surface between two entities has a characteristic shape, which is defined by its cross section. The cross section is a line in the blend surface, which connects the two entities being blended.
In standard blending, a blend surface bridges from one face to another face (for example, does not blend from a face to an edge or an edge to an edge). The cross section shape of the blend is seen by the shortest line along the blend surface from one face to the other.
A round, or circular, cross section creates a pipe-shaped blend surface that is represented as a spline, in general, but under special circumstances is represented as a cylinder or a torus. In standard blending, the blend surface is tangent to each of the faces being blended, and the plane of the cross section is always perpendicular to both of the faces.
A chamfer cross section is a straight line which is controlled by offset distance parameters along each of the surfaces being blended. Under special circumstances, the blend surface is created as a plane or a cone.
In addition to the round and chamfer cross sections described above, the following cross section shapes are also available with ABL:
Elliptical
Cross section shape is a rotated ellipse controlled by major and minor radius and rotation angle parameters.
Rounded Chamfer
Cross section is like a chamfer with a round bulge added. Like the chamfer, it is not tangent to the side surfaces. The bulge may be zero in order to create an ordinary chamfer.
Thumbweights
The normally circular cross section can be given more or less bulge. The surface is still tangent to the side surfaces. Left and right thumbweights can be applied separately.
ABL provides geometry extensions that allow a variety of cross section shapes beyond those available in standard blending.
In standard blending, the plane of the cross section is always perpendicular to both of the faces being blended, but with advanced blending, the plane of the cross section may be lofted to align with a given orientation.
Cross Section Radius
All types of blend surface cross sections are controlled by blend radius parameter values. Varying the parameter values at different positions along the blend surface allows the size of the cross section to change.
In standard blending, the blend radius may be either a constant radius value or an implicit variable radius across the blend, which is specified by providing two radius values at the ends of a smooth edge sequence.
In addition to these two radius specification methods, advanced blending offers the following methods:
- Radius specified by a series of radius values at arbitrary positions along the blend.
- Radius specified by a series of parameters along the defining curve for the blend and corresponding radius values
- Radius varies implicitly, depending on the angle between the side faces, to maintain a constant, or fixed, cross sectional width along the blend.
- Radius varies implicitly, controlled by the specified holdline Holdline Blending Sample for further details.
This example illustrates how you can perform a variable radius edge blend using a holdline.
Standard and advanced blending perform automatic smoothing of consecutive two-end functions. Additionally, advanced blending offers automatic stabilizing of discrete-valued radius functions. If parameter values are specified at a few locations, the resulting blend forces the parameter values to change smoothly between the specified points.
Interfaces for Cross Section Radius Object
This section describes some of the C++ APIs and Scheme commands to create variable radius objects for setting attribute in variable radius blends. For example, the variable radius object is used in api_set_ee_vr_blend and api_set_abh_blends.
| API | Scheme Extension | Description |
|---|---|---|
| api_make_radius_pos_rads | abl:pos-rad | Creates a variable radius object from position-radius pairs. |
| api_make_radius_spline_rad | abl:spline-rad | Creates a variable radius object for a blend whose radius function is specified by a 3D spline curve. |
| api_make_radius_two_ends | abl:two-ends-rad | Creates a variable radius object for a blend with the radii specified at the two ends of the blend. |
| api_make_radius_constant | abl:const-rad | Creates a vradius object for setting advanced blending attributes for a blend with a constant radius. |
| api_make_radius_fixed_width | abl:fixed-width-rad | Creates a variable radius object with a fixed width. |
| api_make_radius_param_rads | abl:make-radius-param-rads | Creates a variable radius object from parameter-radius pairs. |
| api_make_radius_param_rads_tan | abl:make-radius-param-rads-tan | Creates a variable radius object from parameter-radius pairs. |
| api_make_radius_rot_ellipse | abl:ell-rad | Creates a variable radius object with a rotational ellipse cross section. |
Topology
Standard blending supports blends between both faces that are adjacent to the blend edge (the blend is tangent to both faces) and has some limited support for blending faces and edges that are remote from the edge.
Advanced blending supports blends between:
- Both faces that are adjacent to an edge
- Two nonadjacent faces
- A face and an edge
- A vertex and a face
- A vertex and an edge
- Two edges
Mitering
Mitering is available only in standard blending and the geometry extensions provided by ABL. For entity-entity blends, the effect of mitering is only possible when distinct sequences can be fixed separately.
Automatic Transitions
With entity-entity blending, blend processing instructions are placed on the model to direct the automatic transition between blend types: from face-face to edge-face or from edge-face to face-face. This only applies to entity-entity blending.
Single Stepping
Blends using ABL may be produced in the same single-step manner as standard blending (using api_concl_blend_ss).
Advanced Chamfering
Unlike Standard Chamfering, Advanced Chamfering provides the functionality for generating chamfers between any type of support surfaces. It also provides a method for specifying the chamfer ranges, which is more aligned with the way rolling ball blends are defined. In Advanced Chamfering, the "ranges" specify the offsets that need to be applied on the supports to obtain the spring points as shown in the image below.
Limitations
- If the left and right offsets are different, then in some cases the offset of the supports would possibly not intersect each other causing the chamfer operation to fail. For example, if the supports are planes that meet at an obtuse angle and when the offsets (left and right) are different, then the offsets may not meet each other and the chamfer operation would fail.
Interfaces for Advanced Chamfers
This section describes some of the C++ APIs and Scheme commands to perform advanced chamfering operation.
| API | Scheme Extension | Component | Description |
|---|---|---|---|
| api_abh_chamfer_edges | solid:var-chamfer-edges | Advanced Blending | Chamfers the given edges. It is a preferred constant offset chamfering interface over standard chamfering interfaces. |
| api_make_radius_rnd_chamfer | abl:rnd-ch-rad | Advance Blending | Creates the two variable radius objects for a blend with a rounded chamfer cross section. |
| api_set_abh_blends | abl:set-abh-blends | Advance Blending | Sets an implicit variable offset chamfer on each of a list of edges or vertices. |
| api_set_ee_vr_blend | abl:ent-ent-blend | Advanced Blending | Attaches variable radius entity-entity chamfer attribute to the body. The chamfer offsets are described by one or two variable radius objects. |
| api_fix_blends | blend:fix blend:network | Blending | Apply blend by fixing the attached blend attributes. |
