A Surface Interpolating Method for 3D Curves-Nets

Ling Huang JianFeng Zhen Xinxiong Zhu Leiyi

（School of Mechanical Engineering & Automation,

Beijing University of Aeronautics &
Astronautics, Beijing, 100083）

**Abstract: **This paper
presents an algorithm for surface interpolating on 3D curve-nets based on NURBS
boundary Gregory (NBG) patches. By applying this algorithm complicated surfaces
can be generated with curve lofting and sweeping. Based on them a set of
surface generating tools have been developed and applied in the commercial CAD/CAE/CAM
software system – CAXA-ME and greatly enriched its surface generating
capability.

Constructing mesh surfaces from 3D curve-nets is a widely used modeling tool in commercial CAD/CAM systems which make the design of complex free-form surfaces easily and intuitively. Curves in a curve-net should be smooth enough and intersect with each other to form a mesh as shown in Fig.1. The curve-net may have a rectangular topology as shown in Fig.1 (a) and (b) or an irregular topology as shown in Fig.1(c).

F1

(a) Regular rectangular
topology (b) Irregular rectangular topology (c) Irregular
topology
Fig.1. Three types of curve-nets

This memorandum discusses
the interpolation of curve-nets with rectangular topology. In our method
free-form surface patches over the curve-nets are generated based on localized
boundary information and all the adjacent patches are joined together with _{} continuity. Fig.1 (b) illustrates that
patch F1 is generated from the region defined by edges E1, E2, E3 and E4. The surface
interpolating method presented generates surfaces with _{} continuity and
is based on NURBS boundary Gregory （NBG）patches.

This section describes the main steps of constructing surfaces from 3D curve-nets:

l
**Step1**: Split the curves and transform them to a series of Bezier curve
segments suitable for NBG patches interpolation.

l
**Step2**: Define the cross boundary derivatives of curves.

l
**Step3**: Construct NBG patches on every rectangular region.

l
**Step4**:
Compose all the NBG patches to a composite surface if needed.

A NURBS Boundary Gregory patch is an extension of a general boundary Coons
Patch. NBG patch solved the problem of the twist compatibility at patch corners
by taking advantages of Gregory patch** _{}. **Fig.2 illustrates the concept of the NBG patch. An NBG
patch

_{}
(1)

_{} is a surface
interpolating two NURBS curves _{} and _{}, and the cross boundary derivatives _{} and _{}. _{} and _{} are represented
in NURBS form as follows:

_{}, _{} (2)

where both of _{} and _{} have _{} control points; _{} denotes the
degree of the curves; _{} and _{} (_{}) denotes the control points and _{} and _{} denotes the
weights of _{} and _{}, respectively; _{} is the j-th B-spline
basis function of degree _{} defined by knot
vector _{} as follows:

_{}_{} (3)

Fig.2. Concept of an NBG patch

Since the cross boundary derivatives _{} and _{} can be
represented in NURBS form, _{} should be a
NURBS surface defined by Equation (4):

_{} (4)

where _{} is the i-th B-spline
basis function of degree 3 defined by the knot vector in the _{}-direction which is described by _{}. A knot vector in the _{}-direction is defined by Equation (3). _{} has a similar
representation. To simplify our discussion, we assume that the degree of the
boundary curves is 3 (_{}).

_{} is an additional
surface. The relationships between _{} and _{}, and _{} and _{} are shown by
Equation set (5):

_{} _{}

_{} _{} (5)

Where _{}.

_{} can be
represented by bicubic rational boundary Gregory patches (Equation (6) and (7))_{}:

_{}
(6)

where _{}

_{} (7)

where _{}，_{}_{} denotes control points and _{} denotes the
weights of the corresponding control points _{}. By applying
Equations (5),** **we can get the 32
control points and their weights defining _{}** _{}**。

The features of an NBG patch are:

l The
cross boundary derivatives in u- and v- directions can be defined independently. By applying this feature, an irregular
mesh can be interpolated smoothly.

l The shape of an NBG patch can be modified by
adjusting the defining control points as NURBS patch does.

l An NBG patch can be exactly converted to a NURBS surface.

Before constructing a surface interpolating the given curve-nets (See Fig.3), we should deal with the curves as follows:

l Split
each curve at intersection points to get all the rectangular regions. We call the intersection points *Corner Points*.

l
Transform
every curve to a series of Bezier curve segments by applying the knot inserting
algorithm of NURBS_{}. We call the joining point between two Bezier segments *Node*.

The CBDs have crucial effect on the shape of the result patches, i.e., they can make the patches effectively reflect the shape of the given curves.

The normal vector _{} at the corner
point should be perpendicular to the tangent vectors _{} and _{} at the
corresponding corner point, as shown in Fig.4.

Fig.3. Corner point and node Fig.4. The normal vectors at corner points

Fig.5. The normal vectors on boundaries Fig.6. The
cross-boundary derivatives

Now calculate the normal vectors at nodes. As show in Fig.5, E is a node
between corner points A and B. We can determine the normal vector _{} at node E by
taking a linear blending of the normal vectors _{} and _{} at corner points A and B. _{} is perpendicular to tangent vector _{} at node E of the curve and can be
calculated by Equation (8):

_{}

where _{} (8)

Where _{} is the dot
product of two vectors.

The cross boundary derivatives at corner points and nodes should be perpendicular
to the corresponding normal vectors as shown in Fig.6. The length of those
vectors is determined by taking advantages of one third of the distance between
two adjacent curves.

As shown in Fig.7, the shape of
patches _{} and _{} with common
boundary _{} is controlled by
boundaries _{},_{},_{},_{} and _{}. So the cross boundary derivative _{} of patch _{} on boundary _{} should be
determined by boundaries _{}, _{} and _{} to reflect the
shape change of the adjacent boundaries _{} and _{}. Similarly, the cross boundary derivative _{} of patch _{} on boundary _{} should be
determined by boundaries _{}, _{} and _{}. _{} and _{} are joined with _{} continuity at _{}; _{} and _{} are joined with _{} continuity at _{}. So _{} and _{} can be joined with _{} continuity on boundary _{} if _{}，where _{} is a variable changing along _{}. By applying the
same strategy we can determine cross boundary derivatives _{}, _{} and _{}.

_{}

_{}

Fig.7. Determining CBDs of curve mesh

As show in Fig.8, after defining
the cross-boundary derivatives, the control points both sides next to those on
common boundary _{} and _{} and _{} and _{} can be
calculated.

Fig.8. Joining two NBG patches

Now calculate the inner control points of patches _{}, _{} and _{}. Two NBG patches will join together with _{} continuity along
common boundary if they join together with _{} continuity on
every Bezier segment of the boundaries. So we can join two patches smoothly and
determine the inner control points and their weights of patches _{} and _{} by applying the
algorithm of joining rational boundary Gregory patches** _{}**, as shown in Fig.8. By applying Equation (5), the
control points and weights of

A
number of NBG patches defined on the rectangular regions of the
curve-nets can be constructed and all the adjacent patches can be joined
together with _{} continuity by the use of the procedure
presented. All the patches can be composed into a composite surface if needed.

The algorithm has the following
advantage：

l The shape of the result surfaces can be controlled
and modified easily because only local information is referenced.

l NURBS
Boundary Gregory Patch solves the problem
of twist vectors incompatibility at corner points in the super-linear interpolation
of mesh surface and ensures the smoothness of every patch and continuity
between adjacent patches.

l The shape of result surface can effectively
reflect the shape of the curves in a net by the method determining CBDs.

l The amount of data to represent the mesh surfaces
is less than that of NURBS surfaces.

As shown in Fig.9, Fig.10 and Fig.11, the algorithm has been used to a number of cases in curve-nets interpolation. The algorithm has been realized by ourselves with C and C++, and has been incorporated into our commercial CAD/CAE/CAM software system —CAXA-ME.

(a) Curve-nets
given
(b) Mesh surface generated

Fig.9. Rear axle surface generation

(a) Curve-nets given
(b) Mesh surface generated

Fig.10. Aerodynamic Fairing surface
generation

(a) Curve-net given
(b) Mesh surface generated

Fig.10. Water tank surface
generation

[1] Konno K. And Chiyokura H., A approach of designing and controlling free-form surfaces by using NURBS boundary Gregory patches, Computer aided geometric design, Vol.13, 1996, pp.825-849.

[2] Gregory J.A., Smooth interpolation without twist constrains, Computer Aided Geometric Design, Academic-Press, 1974, pp.27-33.

[3] Chiyokura H., Takamura T., Konno K., Harada T., surface interpolation over irregular meshes with rational curves. In: Farin G., ed., NURBS for curves and surfaces design, SIAM, Philadelphia PA, 1991, pp.15-34.

[4] Piegl,L. and Tiller,W., The NURBS Book, Springer, 1995.

[5] Toriya H. And Chiyokura H., eds., 3D CAD Principles and Application, Springer, 1993.