Home > User Guide > Modeling Operations > Advanced Blending
Three Entity Blends
For three entity blend, the radius of the blend is not specified explicitly, but calculated implicitly during the blend surface construction such that the blend surface meets the three support faces tangentially. The center face is discarded. The generated blend may be a variable radius blend. This functionality is supported by api_blend_three_ent.
The following two figures illustrate the initial supporting faces: the magenta face (the center face), the cyan face, and the face (not seen) parallel to the cyan face.
![]()
Figure. Supporting Faces for Three Entity Blends
![]()
Figure. Conical Three Face Blend
C++ Example
#include "ckoutcom.hxx" #include "cstrapi.hxx" #include "intrapi.hxx" #include "ablapi.hxx" { BODY *b1 = NULL; ENTITY_LIST left_face_list, right_face_list, center_face_list, tmp; double* ray_params = NULL; outcome result; // build a flat block, 50 x 50 x 5 check_outcome(result = api_make_cuboid(50, 50, 5, b1)); // select the "left" (50 x 50) face check_outcome(result = api_get_ents(SPAposition(0, 0, 5), SPAunit_vector(0, 0, -1), 0.01, FACE_TYPE, b1, tmp, ray_params)); // Make the list of left faces (just one in this case). left_face_list.add(tmp.next()); tmp.clear(); // select the "right" (50 x 50) face check_outcome(result = api_get_ents(SPAposition(0, 0, -5), SPAunit_vector(0, 0, 1), 0.01, FACE_TYPE, b1, tmp, ray_params)); // Make a list containing the right face right_face_list.add(tmp.next()); tmp.clear(); // select one of the narrow faces to be the center face check_outcome(result = api_get_ents(SPAposition(50, 0, 0), SPAunit_vector(-1, 0, 0), 0.01, FACE_TYPE, b1, tmp, ray_params)); // Make the list containing the center face center_face_list.add(tmp.next()); tmp.clear(); // Call the three entity blend api check_outcome(result = api_blend_three_ent(left_face_list, right_face_list, center_face_list)); }[Top]
© 1989-2007 Spatial Corp., a Dassault Systèmes company. All rights reserved.