You are on page 1of 10

Computer-Aided Design 43 (2011) 2130

Contents lists available at ScienceDirect

Computer-Aided Design
journal homepage: www.elsevier.com/locate/cad

Curve interpolation based on the canonical arc length parametrization


Spiros G. Papaioannou , Marios M. Patrikoussakis
Department of Mechanical and Aerospace Engineering, University of Patras, Patra, Greece

article
Article history:
Received 8 July 2009
Accepted 4 July 2010
Keywords:
CNC interpolators
STEP-NC
Canonical equations
Curvature
Torsion

info

abstract
We use the canonical equations (CE) of differential geometry, a local Taylor series representation of any
smooth curve with parameter the arc length, as a unifying framework for the development of new CNC
algorithms, capable of interpolating 2D and 3D curves, represented parametrically, implicitly or as surface
intersections, with accurate feedrate control. We use a truncated form of the CE to compute a preliminary
point, at an arc distance from the last interpolation point selected to achieve a desired feedrate profile.
The next interpolation point is derived by projecting the preliminary point on the curve. The coefficients
in the CE involve the curves curvature, torsion and their arc length derivatives. We provide computing
procedures for them for common Cartesian representations, demonstrating the generality of the proposed
method. In addition, our algorithms admit corrections, which render them more accurate in terms of the
programmed feedrate, compared to existing parametric algorithms of the same order.
2010 Elsevier Ltd. All rights reserved.

1. Introduction
Recent work on interpolation algorithms for CNC [18] has been
motivated by theoretical considerations and the need to address
the following practical requirements:
(a) Increase the capability of CNC systems for machining
complex geometries. This is currently limited to straight line and
circular cuts. Extending it to more complex geometries requires
interpolation algorithms for general curves and surfaces.
(b) Improve the CAD/CAM interface. This is presently characterized by gross inefficiency. Complex geometries to be machined,
arising in CAD, are approximated in a CAM system by numerous
short straight line cutter moves, to accommodate present CNC capabilities as described in (a). The resulting transmission of a large
volume of short move data from CAM to the CNC machine, with
tangent discontinuities between adjacent moves, degrades the cutting conditions and the quality of the machined surfaces [4].
(c) Improve cutting conditions in high-speed machining, by
allowing for variable time, arc length and curvature dependent
feedrates [7,9].
To overcome these and other shortcomings, the international
STEP-NC program is currently underway [1,2]. Being an offshoot of
STEP (STandard for the Exchange of Product model data), STEP-NC
aims at transmitting original CAD curve and surface data to the
CNC in a portable neutral format, together with machining process
and tool path planning or explicit tool movement information
generated by CAM. A first STEP-NC standard, compatible with

Corresponding author. Tel.: +30 2610 433592; fax: +30 2610 997744.
E-mail address: papaioan@mech.upatras.gr (S.G. Papaioannou).

0010-4485/$ see front matter 2010 Elsevier Ltd. All rights reserved.
doi:10.1016/j.cad.2010.07.007

present CNC capabilities and known as Application Protocol 238


(AP238) has evolved. Subsequent standards will be addressed
to more sophisticated types of future CNCs. It is expected that,
eventually, the need for transmitting large volumes of explicit tool
movement data from CAD/CAM to present CNC systems, which
arises when free-form geometries are to be machined, will be
eliminated by a new generation of CNC controls, incorporating
general interpolation algorithms, capable of converting the original
CAD curve and surface data to tool movement commands, in real
time.
CNC interpolators generate a sequence of steps on a curve. This
sequence defines a trajectory performed in real time by the tip of
a cutting tool. In modern interpolators, each iteration starts from
the current point Pi on the curve and locates the following point
Pi+1 , at an arc distance s from Pi , selected to achieve a desired
traverse speed (feedrate) profile. In the control computer, this is
usually implemented by generating each new point within a fixed
sampling interval 1t (typically 1 ms) and commanding the new
step when 1t expires. The feedrate is controlled by setting the
step size s equal to the time integral of the prescribed function
over 1t. For constant feedrate s = 1t. Modern algorithms must
be capable of accommodating time, arc length and curvature
dependent feedrates [9].
Accurate control of the feedrate is critical in high-speed
machining. Complete feedrate accuracy, however, can be achieved
only at the expense of generality. The root of this issue lies
in mathematics, since it is not generally possible to express
arc length, and hence speed, as a rational function of the
curves parameter [9]. To solve the problem, Farouki and his
coworkers have extensively investigated Pythagorean hodograph
(PH) curves [510], a special class of parametric curves for which
a rational speed expression exists, thus achieving full feedrate

22

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

Fig. 1. Locating the next interpolation point Pi+1 : (a) Without correction. (b) Using a corrected arc distance d in the CE.

accuracy in their interpolation by compromising on generality.


Given the lack of rational speed expressions for broader classes
of curves, an important issue to be addressed is achieving a better
balance between feedrate accuracy, generality and efficiency.
Other authors have investigated the use of various approximations for particular types of representations. Huang and Lo developed independently in their Ph.D. dissertations interpolation
algorithms for plane parametric curves, based on truncated Taylor
series expressions of the curves parameter as a function of time.
These parametric algorithms originally published in [3,4] were
later extended to higher order Taylor series approximations, 3D
curves and variable feedrates by Farouki and Tsai [9]. They locate
points lying exactly on the curve but, apart from the truncation error, they also involve a feedrate error arising from the variation of
the parametric speed ds/du along the curve. In addition, the extension of these algorithms to plane implicit curves and to 3D curves
defined as surface intersections, a common situation in CAD, has
not been demonstrated. A discussion of the state of the art in interpolation for CNC is presented in [10].
In this paper we lay the foundation for new interpolation
algorithms for CNC, termed CE algorithms, which are based
on a curves canonical equations (CE) known from differential
geometry [11,12]. The CE provide a local parametric Taylor series
representation of a curve
xl (s) = s
yl (s) =
z l ( s) =

k
2

k2
6

s2 +

k
6

s3
k
6

s3 +

kk
8

s3 +

s4 + O (s5 )

k k 2 k3

2k k
24

24

s4 + O (s5 )

s4 + O (s5 )

(1)

in the vicinity of a given point, which in each iteration we identify


with the last interpolation point Pi . The term local indicates that
the CE are valid in the local Cartesian system (Frenet trihedron)
formed by the unit tangent, normal and binormal vectors T, N, B
at Pi . The index l emphasizes that xl , yl , zl are local coordinates of
the curve, not to be confused with the coordinates of the curves
global representation.
The CE are available for any continuous curve with continuous
derivatives and possess the desirable property of being polynomial
expressions in the curves arc length s, measured from Pi .
The coefficients in these expressions involve the curves local
curvature k, torsion and their arc length derivatives k , , k , . . . ,
quantities which can be expressed in closed form for any curve
representation, in any coordinate system. This fact and the
availability of the CE for all smooth curves account for the
generality of the proposed CE algorithms, in terms of curve
representation and associated coordinate systems.
We use a truncated form of the CE in the beginning of each
p
iteration, to compute a preliminary point Pi+1 at arc distance s from
Pi (Fig. 1(a)). The step size s is selected to realize a prescribed local
feedrate. An nth order CE approximation, n = 1, 2, 3, . . . , has nth
p
order contact to the curve and Pi+1 , although not on the curve, is

generally located at a high order infinitesimal distance from the


sought next interpolation point on it, when s is small. Its projection
Pi+1 on the curve approximates even closer the true point and is
used as the next interpolation point.
In terms of feedrate accuracy, CE algorithms are characterized
by the absence of variation in the parametric speed (ds/du), a
source of feedrate error in existing parametric algorithms. This
is because in the CE parametrization ds/du = ds/ds = 1. CE
algorithms, on the other hand, involve a point projection, which is
also a source of error. It is shown that this error can be significantly
reduced by using a proper correction in the computation of
p
the preliminary point Pi+1 . The ability of the CE algorithms to
admit corrections results in higher feedrate accuracy, compared to
existing parametric algorithms of the same order.
The local values of k, , k , , k , . . . involved in the CE are most
conveniently obtained if the curve is expressed parametrically.
To extend their computation to implicit 2D and to 3D curve
representations we regard one of the representation variables as
a free parameter and the remaining variables as implicit functions
of the parameter, through the equations of the representation.
This is always possible since the number of equations defining
the curve, which ranges from one (for a plane implicitly defined
curve) to three (for a 3D curve defined as the intersection of two
parametrically expressed surfaces), is in all cases one less than the
number of variables. One variable can thus always be regarded
as free. This implicit parametrization (or IP) of the curve works
with CE algorithms without numerical difficulties, other than the
expected ones at cusps or points of self-intersection, which affect
all algorithms, since at such points the curves tangent, which
guides the interpolation, is ill-defined.
For parametric curves represented as r = [x(u), y(u), z (u)]T ,
expressions of k, , k , , k have long been known [9,11,12] and
are summarized in Appendix A.1. It is emphasized that all these
expressions are functions of the curves parametric derivatives
r , r , r , r . Recent literature has provided curvature and
torsion calculations for the plane implicit curve representation
f (x, y) = 0 and for 3D curves defined as intersections of two
surfaces represented implicitly as f (x, y, z ) = 0, g (x, y, z ) = 0,
parametrically or in a mixed parametric/implicit mode [1316].
None of these works, however, has dealt with the calculation
of the arc length derivatives k , , k for such representations.
We show that the IP concept fills this gap. It permits recursive
expressions of the derivatives r , r , r , r to be derived in
a straightforward manner, in terms of the partial derivatives
fx , fxx , fxy , fxz , . . . , gx , gxx , . . . , of the functions involved in the
curves definition. Thus, it makes possible the computation of
all differential quantities depending on r , r , r , r , i.e. of the
curvature k, torsion , their arc length derivatives k , , k , . . .
and the Frenet frame vectors T, N, B, for curves defined by
any common representation. Finally, although we consider only
Cartesian representations, this is not a limitation. Procedures for
other coordinate systems can also be worked out.
Although we focus on the theory of CE-based interpolation,
the proposed CE algorithms can easily evolve into practical CNC

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

software, if due consideration is given to the following: A curve is


to be generally understood as a trajectory of the cutters contact
point (CC point) with the machined surface. By interpolating
this curve, CE algorithms generate motion of the CC point with
feedrate control. The CC is not a fixed tool point, however, and
the programmed tool motion in 3D machining is generally defined
by the motion of a selected fixed point on the cutter axis, whose
momentary position represents the cutters location (CL point).
Therefore, practical CNC algorithms must include the computation,
in each step, of the CL point from the CC point, for various
cutter geometries [17]. The connection between particular curve
representations and practical machining strategies are discussed
in the following sections, when the occasion arises. More complex
machining tasks, where the cutting tools and the machined
features geometry must be considered as an integral part of the
CC or the CL point computation, will be dealt with in future work.
The rest of the paper is organized as follows: Section 2
introduces the general approach to interpolation based on the
CE, as applied to parametric curves represented by r = [x(u),
y(u), z (u)]T . Sections 3 and 4 use the IP concept to extend the
CE approach to plane curves defined implicitly by f (x, y) = 0
and to 3D curves defined as intersections of surfaces. Section 5
discusses the numerical solution of the point projection problem,
using Newtons method. A convergence condition for Newtons
iterations is developed in Appendix A.4. Sections 6 and 7 deal with
variable feedrates and with the derivation of corrections which
improve feedrate accuracy. Sections 8 and 9 conclude the paper
with the presentation of computational results and some final
comments.

The next interpolation point Pi+1 is generally defined by its


arc length distance s from Pi . In the proposed CE algorithms, s is
inserted in the truncated CE (Eq. (1)) to compute a preliminary
p
p
p
p
point Pi+1 = [xl , yl , zl ]T (Fig. 1(a)). This point lies close to the
curve and to the true interpolation point on it. Although the true
point cannot be located exactly, it can be approximated with high
p
accuracy by the projection point Pi+1 of Pi+1 on the curve.
p
p
p
p
Since the coordinates xl , yl , zl of Pi+1 computed from the CE
are in the local Frenet frame defined by the unit vectors T, N, B,
p
to obtain the projection point Pi+1 we must first transfer Pi+1 to
the global coordinate system in which the curve resides. This
requires the transformation

Pg = [Pi ] + [T]l Pl

An isoparametric path of the cutters contact point (CC) is defined,


for example, by ri = [x(u, i ), y(u, i ), z (u, i )]T , i = 1, 2, . . . , n,
with each pass of the cutter generated by keeping i constant and
varying u. The side step 1 = i+1 i determining the next pass
ri+1 must be selected to keep the height of the ridge-like uncut material (scallop) left between passes ri , ri+1 within a small tolerance
limit [18,19].
3. Implicit parametrization
A parametric curve representation r = [x(u), y(u), z (u)]T is
most convenient, since then the parametric derivatives x , y , z , . . .
(the components of r , r , r , r ) are easily computed once u
is known. But when this convenience is not available, acquiring it, a task known as parametrization, is not always possible.
For example, not all algebraic implicit curves or surfaces can be
parametrized in terms of polynomial or rational polynomial functions [20]. In this section we show that assuming the existence of
an explicit parametric representation is not necessary.
Consider a plane curve defined implicitly by f (x, y) = 0. We
can approach the interpolation problem by considering one of the
coordinates x, y as a free parameter and the other as an implicit
function of the parameter through the defining equation. We call
this perspective implicit parametrization (IP). To establish a basis for
discussion, assume that x is the free parameter so that x = 1, x =
x = = 0. Introducing these values into the expressions
(A.1.1), (A.1.7) for s , s , s and (A.1.5), (A.1.6), (A.1.8), (A.1.10)1 for
k, k , k , T, N, dropping all z-terms and setting = 0, we obtain
s = (1 + y2 )1/2 ,

2. Interpolation based on the canonical equations

(2)

p p
where Pl , Pg are the local and global coordinate vectors of
p
g
Pi+1 , [Pi ] is the global coordinate vector of Pi and [T]l is the
transformation matrix from the local to the global system.
Recursive expressions for the computation of k, , k , , k , T,
N, B at Pi , for curves, represented parametrically by r = [x(u),
y(u), z (u)]T are provided in Appendix A.1. The curvature k, torsion
and their arc length derivatives are required to apply the
CE, while T, N, B are used to form the transformation
p matrix
g
[T]l in Eq. (2). Once the global coordinate vector Pg of the
p
preliminary point Pi+1 is obtained, the projection point Pi+1
is computed numerically using Newtons method. Apart from
Pi+1 , the projection computation also provides the corresponding
value of u, which we need to compute k, and their arc length
derivatives at Pi+1 , to start the next iteration.
Parametric representations of 3D curves arise in the isoparametric machining of surface patches represented by r = [x(u, ),
y(u, ), z (u, )]T , 0 u, 1. The cutter is directed to move in
zig-zag or unidirectional fashion along a path consisting of a family
of n closely spaced isoparametric lines, covering the entire patch.

23

s =

y y
s

s =

y2 + y y s2
s

y
y 3ks2 s
k = 3 ,
k =
,
s
s4
3 s 6ks s2 3ks2 s
y 7ks
k =
s5

[
T=

1 y
s

]T

y 1
N= ,
s s

]T

(3)

(4)

(5)

These expressions permit the use of up to fourth order


CE. To use them, we first compute y , y , y , y from their
recursive expressions provided in Appendix A.2 (Eqs. (A.2.2)
(A.2.5)), which relate y , y , y , y to partial derivatives of
the function f (x, y). These last expressions must be used with
caution, since they all have a power of fy as their denominator
and assume infinitely large values when fy = 0 (refer to
Appendix A.2). A simple remedy to this problem is to use x as
parameter only as long as |fy | |fx |. When |fx | > |fy |, we replace
x by y. We then need to compute x , x , x , x from expressions
analogous to those provided for y , y , y , y in Appendix A.2.
These will have fx as their common denominator, and the condition
preventing fx from vanishing is just |fx | > |fy |. A geometric
interpretation of this rule is provided by the expression t = [fy, fx ]
for the tangent vector (see Eq. (7) below). The problem occurs
when the tangent vector is perpendicular to the coordinate axis
associated with the current parameter and by not allowing fy /fx
to vanish when x/y serves as a parameter, the tangent vector is
prevented from ever assuming a similar orientation. When this rule
is enforced, Eqs. (A.2.2)(A.2.5) and (3)(5) can be used safely.
Another safe approach is to develop numerically robust
expressions for k, k , T, N by eliminating the recursion, i.e. by
expressing y , y , y in terms of partial derivatives of f (x, y) alone

1 Equations whose designation starts with A are located in the Appendix.

24

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

and inserting them into Eqs. (3)(5), to get,


k=
k =

T=

2f x fy fxy

fx2

fx2 fyy

fy2 fxx

fy2 3/2

3f 2x fy fxyy + fx3 fyyy fy3 fxxx

3f x fy2 fxxy

(fx2 + fy2 )2
3(2f x fy fxy fx2 fyy fy2 fxx )[fx fy (fxx fyy ) fxy (fx2 fy2 )]

(fx2 + fy2 )3
1

fx2

fy2 1/2

f y , f x

N=

fx2

fy2 1/2

fx , fy

(6)

(7)

Eqs. (6)(7) allow the use of up to third order CE. The fourth order
but obtaining a numerically robust expression for it
CE requires k,
is cumbersome.
In CNC practice, the above equations and the CE can be used to
direct an end milling cutter in the 2 21 D peripheral machining of a
part, whose boundary is an implicitly defined plane curve [17].
4. Extension to surface intersections
A 3D curve may also be defined as the intersection of two surfaces, each of which may be represented implicitly or parametrically. This gives rise to three possible curve representations, of
which computationally simpler is the hybrid case, where one of the
intersecting surfaces is expressed implicitly as f (x, y, z ) = 0 and
the other parametrically as x = x(u, v), y = y(u, v), z = z (u, v).
The curve representation then reduces to a single implicit equation
f (x(u, v), y(u, v), z (u, v)) = 0 in the parametric u v domain.
In the pure implicit case, both surfaces are expressed implicitly as
f (x, y, z ) = 0, g (x, y, z ) = 0. The intersection curve is then represented by the system of these two equations in the three position
variables x, y, z. In the pure parametric case, the intersecting surfaces are represented by x = c (u, v), y = d(u, v), z = e(u, v) and
x = f (r , t ), y = g (r , t ), z = h(r , t ) and the curve by the three
equations c (u, v) = f (r , t ), d(u, v) = g (r , t ), e(u, v) = h(r , t ), in
the four parameter variables u, v, r , t.
To extend the CE algorithms to surface intersections, it is
convenient to compute k from the first of Eq. (A.1.4) as a positive
quantity
k =

r r
s3

[(x y x y )2 + (y z y z )2 + (z x z x )2 ]1/2

s3

(8)

This equation must be adapted for use with each of the


above representations. Recursive expressions for computing
x , x , y , y , z , z are provided in Appendix A.3. They are based
on the IP concept, i.e. on the assumption that x or u is a free
parameter and that the remaining variables are implicit functions
of the parameter.
Given the increased complexity of surface intersections, we
must decide how much accuracy we can afford. A reasonable
compromise is to retain in the CE terms up to third order, which
We consider first the intersection curve of two
requires only k, , k.
surfaces defined implicitly as f (x, y, z ) = 0, g (x, y, z ) = 0 (pure
implicit representation). To compute k, , k and the Frenet frame
vectors when x is the parameter, we first set x = 1, x = x = 0
and then use (A.3.2), (A.3.4) and (A.3.5) to obtain y , z , y , z , y ,
z , (A.1.1) and Eq. (8) to compute k and, finally, (A.1.5)(A.1.8)
to compute , k , T, N, B. An analogous process is used when the
parameter is y or z (refer to Appendix A.3).

The recursive expressions (A.3.2), (A.3.4) and (A.3.5) for


y , z , y , z , y , z must, however, be used cautiously, since they
all have X = (fy gz fz gy ) as their denominator, which can become
0. X is the x-component of the curves tangent vector f g
so, when x is the parameter, the undesirable condition X = 0
occurs when the tangent vector is perpendicular to the x-axis, as
in the 2D case. To avoid this problem, we need to apply a rule
replacing the free parameter on time by another variable. A simple
rule is to use x as parameter as long as |X | = max(|X |, |Y |, |Z |)
and similarly y when |Y | = max(|X |, |Y |, |Z |) and z when |Z | =
max(|X |, |Y |, |Z |). Again, this rule shifts the axis associated with
the current parameter on time, to prevent f g from ever
becoming perpendicular to it.
Alternatively, introducing into Eqs. (8), (A.1.1) and (A.1.6)
the expressions (A.3.2), (A.3.4) and (A.3.5) for y , z , y , z , and
eliminating the recursion, we arrive at the following robust
expressions for the curvature and the Frenet frame vectors

(fx cg gx cf )2 + (fy cg gy cf )2 + (fz cg gz cf )2


k=
(X 2 + Y 2 + Z 2 )3/2

1/2

cf = fxx X 2 + fyy Y 2 + fzz Z 2 + 2fxy XY + 2fxz XZ + 2fyz YZ


cg = gxx X 2 + gyy Y 2 + gzz Z 2 + 2gxy XY + 2gxz XZ + 2gyz YZ
X = (fy gz fz gy ),
Y = (fz gx fx gz ),
Z = (fx gy fy gx )

[XYZ ]T
,
N = B T,
( + Y 2 + Z 2 )1/2
[(fx cg gx cf )(fy cg gy cf )(fz cg gz cf )]T
B=
(X 2 + Y 2 + Z 2 )3/2 k
T=

X2

(9)

(10)

which do not depend on the variable used as parameter and suffice


for applying the second order CE. Obtaining robust expressions for
however, is cumbersome.
, k,
For the intersection of two surfaces represented by x =
c (u, v), y = d(u, v), z = e(u, v) and x = f (r , t ), y =
g (r , t ), z = h(r , t ) (pure parametric representation), assuming
that u is the free parameter, we proceed in a similar fashion. The
parametric derivatives x , y , z and x , y , z are computed from
their expressions in Appendix A.3.
For the hybrid representation f (x(u, v), y(u, v), z (u, v)) = 0, it
is convenient to interpolate the curve in the u v plane, using the
expressions in Appendix A.2 for plane curves. The price to be paid
for this convenience is an additional computation required in each
iteration to determine the virtual local feedrate in the u v
plane from the required real feedrate in the x y z Cartesian
space. We can relate these feedrates by observing that

=
2

dx

dt

xu

du
dt

zu

dt

dv

dz

dv

dt

+ yu

dt

+ zv

dt

+ xv
du

dy

du
dt

+ yv

dv

dt

dt

(11a)

and combining this with the equation


df
dt

= fu

du
dt

+ fv

dv
dt

=0

to form a system for

=
=

du
dt

du
dt

dv

(11b)

, ddtv , from whose solution it is found that


2

dt

(fu2 + fv2 ) 2
.
(xu fv xv fu )2 + (yu fv yv fu )2 + (zu fv zv fu )2

(12)

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130


p

This concludes the discussion regarding the computation of Pi+1


from the CE, in all of the above three representations.
A family of n closely spaced 3D curves, defined as intersections
of a surface f (x, y, z ) = 0 to be machined by a family of cutting
surfaces g (x, y, z , ai ) = 0, i = 1, 2, . . . , n can be connected to
define a path of the cutters contact point (CC path) on f (x, y, z ) =
0. A usual practice is isoplanar machining, where the cutting family
g (x, y, z , ai ) = 0 consists of parallel planes [21,22].
5. The point projection problem

Let n = Pi+1 Pi+1 be the vector which starts at Pi+1 =


[xpg , ypg , zgp ]T and ends at the projection point Pi+1 = [x, y, z ]T
(Fig. 1). Pi+1 is generally found by solving a system composed
of the equations involved in the curves definition and the
normality condition n t = 0, where t is any vector tangent
to the curve at Pi+1 . For curves defined parametrically by r =
[x(u), y(u), z (u)]T , n = [(xpg x(u))(ypg y(u))(zgp z (u))]T ,
t = [x (u), y (u), z (u)]T and the only equation to be solved is the
normality condition
h(u) = (xpg x(u))x (u) + (ypg y(u))y (u) + (zgp z (u))z (u)

= 0.

(13)

Newtons iteration is

(xpg x)x + (ypg y)y + (zgp z )z


p
(xg x)x + (ypg y)y + (zgp z )z x2 y2 z 2

(14)

where x, x , x , y, y , y , z , z , z are evaluated at uj . For plane


curves defined implicitly by f (x, y) = 0, the normality condition
becomes
p

h(x, y) = (xl x)fy (yl y)fx = 0.

fy h fhy
fx hy fy hx

To maintain accurate feedrate, its variation during each step


must be accounted for exactly or, if this is not possible, with
a high degree of accuracy. This is accomplished in different
ways, depending on the interpolation method. Existing parametric
algorithms estimate the next parameter value ui+1 from the
parameter versus time function, expressed as a truncated Taylor
series [3,4,9]. The coefficients in this series involve the feedrate
and its parametric derivatives , , . . . . Thus, the feedrate
error is included in the series truncation error. The computation
of , , . . . for time, arc length or curvature dependent feedrate
is discussed in [7,9]. PH algorithms, on the other hand, obtain the
exact value of the next parameter ui+1 by reducing the integral in
the equation
ui+1

ui

du = 1t

(18)

to a function of the upper limit ui+1 and solving the resulting


equation by Newtons method [9,10]. This is generally possible if
is a simple function of s or k, given that in PH algorithms the latter
can be expressed as rational functions of u. If is prescribed as an
integrable time function, the equation

yj+1 = yj +

fhx fx h
f x hy f y hx

(16)

(i+1)1t

i1t

dt

(19)

is solved instead for ui+1 .


In the proposed CE algorithms, the CE do not involve the
feedrate. To account for the feedrate variation during each step, we
compute the step magnitude s from Eq. (19) and insert the resulting
p
value in the CE to obtain Pi+1 . If is not prescribed as an integrable
time function, we compute its time derivatives as shown below and
obtain s from a truncated form of the Taylor series

(15)

It now involves two unknown variables and must be solved as a


system with the equation f (x, y) = 0 to obtain Pi+1 . Newtons
iteration is
xj+1 = xj +

6. Variable feedrate

s = s(ui+1 ) s(ui ) =

uj+1 = uj

25

s = 1t +

1 d

1 d2

(1t )3 + .
(20)
2 dt
6 dt 2
If is a function of arc length, its derivatives are obtained by
d
applying the operator dt
= dsd . Thus,
d

(1t )2 +

d2

+ 2

where all functions on the r.h.s. are evaluated at xj , yj . When more


equations are involved in the curves definition, Newtons general
formula for systems

If is prescribed as a function of curvature, the operator


yields

pj+1 = pj J1 (pj )F(pj )

(17)

is used, where p is the vector of the unknown variables, F(p) is


the vector of functions in the in curves definition and J1 (p) is the
inverse of the Jacobian matrix of these functions with respect to
the unknowns. In all cases, the iterations start at the closest known
point Pi .
It is instructive to view the point projection problem in
connection with 3D curve tracing methods developed in CAD.
Identifying and tracing surface intersections is a basic CAD
problem, where tracing of the intersection is primarily approached
by marching methods [23]. The proposed CE algorithms are also
marching techniques, which share a common aspect with CAD
marching methods: The next point on the curve is obtained by
solving a system of 2, 3 or 4 equations. These equations but one are
supplied by the curves definition, as discussed above. But whereas
in CAD the curve is approximated by a series of chords, designed to
keep the maximum deviation from it within a prescribed tolerance,
and the next chord is computed by completing the system with the
equation of a plane or other surface cutting the curve, in the CE
algorithms the equation completing the system is the normality
p
condition expressing the projection of the preliminary point Pi+1
on the curve.

dt

dt

ds

d
dk

+ 2

dt 2

d2

k ,

d2
dk2

dt 2

k 2 + 2

ds

d
dk

dt

d
dk

ds

d2
ds2

d
dt

. (21)

d
= dk
k

k 2

k .

(22)

7. Location of Pi+1 with a corrected arc length


Using higher orders of the CE results in higher feedrate accuracy
but is computationally expensive. In this section we propose a less
expensive way to improve feedrate accuracy. We show that the
polynomial form of the CE permits corrected, substantially more
p
accurate positions of the preliminary point Pi+1 to be computed
from lower CE orders.
p
To obtain a corrected position of Pi+1 from the nth order CE,
n = 1, 2, 3, we assume that the curve is represented by the
p
more accurate fourth order CE. We then project Pi+1 on this fourth
order CE approximation and require the projection point P4i+1 on
it to lie at a prescribed arc distance s from Pi (Fig. 1(b)). When
this condition is fulfilled the arc
on the nth order CE
p
defines the corrected position of Pi+1 . To compute d, we must solve

26

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

Table 1
p

Corrected arc lengths d(s) for computing Pi+1 from the nth order CE, n = 1, 2, 3.
Order of CE algorithm

d (s )

d(s) for balancing


accuracy with efficiency

First

s+

k2 s3
3

4
23kks
24

s+

k2 s3
3

Second

k2 s3
6

4
7kks
24

k2 s3
6

4
kks
8

4
kks

Third

the normality condition F (d, s) = Pr(d, s) T(s) = 0, where

Pr(d, s) = Pi+1 (d)P4i+1 (s) is the projection vector and T(s) is the
tangent vector at P4i+1 . To form the condition F (d, s) = 0, we first
write T(s) as a fourth order Taylor approximation
T(s) = T(0) + T (0)s + T (0)

= 1

k s

s3

...

+ T (0)

s4
24

24

T(0)

(k k 2 k3 )s3

24
k s2

....

+ T (0)

(3k 2 4kk + k2 2 + k4 )s4

2
6
...

2
( k 3k 3k 6k2 k )s4

ks

+ ks +

3
3kks

2 2

s2

N(0)

(2k + k )s3

(3k + 3k + k k 3 k3 )s

24

B(0)

(23)

...

by
.... using the FrenetSerret relations to express T(0), T(0), T (0),
T (0) in terms of T(0), N(0), B(0) and inserting these expressions
into the Taylor series. Then, for the second order CE algorithm with
correction, for example, from Eq. (1) we obtain
p

Pr(d, s) =

P4i+1

[
+
+

(s)
ks2
2

kd2

k s3
6

N(0)

p
Pi+1

3
ks

(d) = s
+

k2 s3

k k 2 k3

24

kk
8

24

2k k

s d T(0)
4

kd2
2

(24)
N(0)

s4 B(0).

Since the normality condition F (d, s) = Pr(d, s) T(s) = 0 is


too involved to allow an explicit solution for d(s) and the greatest
accuracy we can hope for can be no better than a fourth order
approximation, d(s) was computed from the fourth order Taylor
series
d(s) = d(0) + d (0)s + d (0)

The proposed CE algorithms were tested for accuracy and


efficiency on one half of a plane cardioid curve (Fig. 2(a)), defined
parametrically by x = a cos u(1 + cos u), y = 2a sin u(1 +
cos u), a = 20 mm [24]. The cardioid was chosen for two reasons:
(a) It possesses the expression s = 4a sin(0.5u) for the arc length,
permitting an exact calculation of the percentage step magnitude
error

sp se
100%,

e=

...

+ d (0)

....

+ d (0)

(25)

2
6
24
The derivative values were obtained by using Mathematica to
differentiate the normality condition F (d, s) = 0 symbolically with
respect to s and setting in the resulting expression F (d, s) = 0, s =
0, d(0) = 0 to obtain d (0) = 1, then differentiating F (d, s) = 0
and setting in F (d, s) = 0, s = 0, d(0) = 0, d (0) = 1 to obtain
d (0) = 0 and so forth for the remaining derivatives. The results
are summarized in Table 1 and are valid for both plane and space
curves.
Corrections are the terms beyond s, that is the quantities d(s) s
which, when divided by 1t, can be regarded as general estimates
of the step feedrate error, when no correction is used. The CE
algorithms with correction proceed as before, except that d(s)
p
rather than s is inserted in the chosen order of the CE to obtain Pi+1 .

se = 4a[sin(0.5ui+1 ) sin(0.5ui )] (26)

where ui , ui+1 are the parameter values associated with Pi and


Pi+1 , sp is the prescribed and se is the actual local step. (b) As u
sweeps the interval 0 , the curvature of the cardioid increases
from an initial value of 3/(4a) all the way to infinity, allowing full
testing of the effect of curvature on the step error.
Fig. 2(c) and (d) show the dependence of the step error on u/ ,
for the first, second and third order CE algorithms without and with
correction, applied with a constant step size s = sp = 100 m.
Corrections were based on the single term correction formulas
listed in the right column of Table 1. These results can be compared
with the step error versus u/ curves obtained with the existing
parametric algorithms [9] (Fig. 2(e)). Fig. 2(f) shows the step error
profiles for CE and parametric algorithms, when the programmed
feedrate is curvature dependent, according to the formula

Pi+1 (d) = dT(0) +

8. Computational results

o
1 + k(d /2)

(27)

where o = 100 mm/s, d = 5 mm, = 0.3 mm. This feedrate


function is designed to keep constant the material removal rate of
a tool of radius d, engaged in the peripheral cutting of a curve of
curvature k, with a cutting depth [7].
Clearly, in all cardioid tests, CE algorithms with correction
show superior performance in terms of minimizing the step error
and consequently the feedrate error, compared to CE algorithms
without correction and to the existing parametric algorithms of
the same order. Computer times from these tests indicate that
CE algorithms with correction are about 40% more expensive,
compared to parametric algorithms. Newtons process required to
solve the point projection problem converged, on the average, to 6
decimal precision in three iterations.
The remaining tests illustrate graphically the application of CE
algorithms to the interpolation of implicitly defined plane and 3D
curves. These include the oval of Cassini (Fig. 2(b)), defined by the
equation
f (x, y) = (x2 + y2 + a2 )2 4a2 x2 b4 = 0,

a = 5, b = 6 (28)

and the intersection of a sphere with a cylinder (Fig. 3), defined by


the system
f (x, y, z ) = x2 + y2 + z 2 = 402
g (x, y, z ) = (x 18)2 + (y 20)2 = 162 .

(29)

The spherecylinder intersection was interpolated using the


robust expressions (9) and (10) for k, T, B, N. The oval of Cassini
was first interpolated using the recursive expressions (A.2.2)
(A.2.5) for y , y , y , y and (3)(5) for k, k , k , T, N, which
hold when x is the parameter, in order to study the numerical
problem associated with them. The condition fy = 0 causing
the problem manifested itself when x approached its maximum
value x = 8.296, as an oscillating behavior in Newtons iterations.
This can be attributed to the tangent vector T = [1/s , y /s ]T
(Eq. (5)), which maintains a strictly positive x-component,
preventing it from turning in the opposite direction when x passes
its maximum and starts decreasing, while the numerator y =
fx /fy in the y-component of T oscillates wildly between large

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

27

Fig. 2. (a)(b) Generated cardioid and oval of Cassini. (c)(f) Cardioid test results.

positive and negative values in the vicinity of the maximum


x-value. The oval was interpolated successfully when the rule
proposed in Section 3 was enforced and again when k, k , T, N
were computed from the robust expressions (6) and (7).
9. Conclusion
We have shown that the canonical equations (CE) of differential
geometry provide a unifying framework for generating accurate
tool paths in real time, suitable for high-speed CNC machining,
with controlled feedrate. The generated paths can be composed
of 2D or 3D curves in any common Cartesian representation
(parametric, implicit or surface intersection). Extension to other

coordinate system types is possible, but was not pursued here. Our
computer results so far indicate that, when corrections are used,
the proposed algorithms are more accurate in terms of feedrate
compared to established parametric algorithms of the same order.
They are also less efficient, but the difference in computer times is
modest, not enough to compromise their suitability for high-speed
machining.
Questions open to further research are the expression of
the differential quantities k, , k , , k , T, N, B of the CL points
trajectory, in terms of corresponding quantities of the trajectory
of the cutters CC point, on a given base surface. Such expressions
would make it possible to interpolate the trajectory of the CL point
directly, using the CE. A more challenging problem is the 3D finish

28

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

30

Fig. 3. (a) Spherecylinder intersection. (b) Generated intersection curve.

machining of free-form pocket boundaries, with various cutter


geometries.
Appendix

The alternative expression for k not involving B is found by using


the identity (a b)(c d) = (a c)(b d) (b c)(a d), to reduce
(r r ) B = (r r ) (r r )/s3 k, then finding the values of
the resulting dot products from Eq. (A.1.3) and inserting them into
the expression. Similarly,

A.1. Computation of k, , k , , k , T, N, B for parametric curves


For curves defined parametrically by a position vector r =
[x(u), y(u), z (u)]T , a basic quantity appearing in all expressions is
the parametric speed
ds
= (x2 + y2 + z 2 )1/2 = (r r )1/2 = |r |
(A.1.1)
du
where primes denote differentiations with respect to u. The
curvature k and the torsion are computed by first using the
d
operator = du
= s dsd to differentiate r successively and the
FrenetSerret equations
s =

k =

(k )
s

k =

k =

(A.1.2)

(A.1.3)

r = (s s3 k2 )T + (3s s k + s k )N + s3 k B
r r = s kB,

r (r r ) = s k

(r r ) B
s 3

r
T = ,
s

B=

=
r r

|r r |

6 2

(A.1.4)

r (r r )

r r
s3 k

N = B T.

(A.1.6)

r r
s

s =

r2 + r r s2
s

. (A.1.7)

Then,
k
1
k = =
s
s

(r r ) B
s 3

=
=

(r r ) B 3s2 s k
r r s s 2s3 s k2
s5 k

7s s k s k

s 5
s (r r ) s (r r ) s3 (3s2 + 4s s )k2
s7 k

6s s kk s k (k + 2 )
7 2

s7 k

(A.1.10)

s
s kr (r r ) (6s k + 2s2 k )r (r r )
s 8 k 3

(A.1.11)

These expressions hold for 3D parametric curves and plane


curves (with the term involving dropped) and permit the use
of up to fourth order CE. For plane curves, it is preferable to use
for k , k the expressions involving B, since this is then a constant
vector, perpendicular to the plane of the curve and can be assigned
the value B = [0, 0, 1]T . The expressions for k, k , T, N then assume
the simple form
x y x y
s 3

[
. (A.1.8)

(A.1.9)

Finally, the arc length derivative of torsion is

k=

s 4

s5
5

To compute the arc length derivatives of k, , expressions for


s , s are needed
s = ((r r )1/2 ) =

(A.1.5)

s6 k2

s2

((r r ) + (r r )) B 3s (2s2 + s s )k

2
r = s T + ks N,

r = s T ,

k s k

s3

, B in the resulting expressions. Then k and are


to substitute T , N
isolated by appropriate vector operations on r , r , r :

((r r ) + (r r )) B 3s (2s2 + s s )k 6s3 s k + s5 k 2

= N
B

k=

Introduction of this expression into (A.1.9) yields

= kT + B
N

This expression involves k , which is computed by differentiating


k = s k = [(r r ) B 3s2 s k]/s3 and simplifying to obtain

T = kN

T=

x y
s

]T

k =

x y x y 3s2 s k
s 4

[ ]T
y x
N= ,
.
s

,
(A.1.12)

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

All these expressions have some power of the parametric


speed s in the denominator. Generally s is strictly positive,
except at singular points (cusps or self-intersections), where
x (u), y (u), z (u) vanish simultaneously, resulting in s = 0, a
condition which makes the computed quantities infinitely large.
Such points are difficult to cope with for any interpolation
algorithm, since there the curve tangent and consequently the
direction of interpolation is ill-defined. The curve is, therefore,
assumed to be regular, that is contain no singular points.
A.2. Computation of y , y , y , y for plane implicitly defined curves
All expressions in the previous section involve parametric
derivatives x , y , z , x , y , z , . . . of the coordinates, which must
therefore be computed before these expressions are applied to determine the local values of k, , k , , k , T, N, B, as required by the
CE. For a parametric curve representation r = [x(u), y(u), z (u)]T ,
the computation of parametric derivatives is straightforward. In
this section we derive recursive expressions for computing parametric derivatives up to fourth order, for plane curves defined implicitly as f (x, y) = 0.
Assuming that x is the free parameter so that x = 1, x =
x = = 0, we obtain successive derivatives of y by applying
the operator

dy

=
=
+
=
+ y
dx
x y dx
x y
d

(A.2.1)

first to the equation f (x, y) = 0, then to the resulting expressions


for fx , fy , fx , fy , fx , fy . We assume, as is normally the case,
that higher order partial derivatives of f with respect to the same
variables are independent of the order of differentiation. Thus

y , z at Pi by differentiating the equations representing the curve


and solving the resulting system f (x, y, z ) = 0, g (x, y, z ) = 0 for
y , z .
f (x, y, z ) = fx + fy y + fz z = 0,

y =

fz g x fx g z
fy gz fz gy

fx = fxx + fxy y ,

fx

y =

fy

fx fy fx fy

(A.2.3)

fy2

fy = fxxy + 2fxyy y + fyyy y2 + fyy y

(fx fy fx fy )fy2 2(fx fy fx fy )fy fy


fy4

(A.2.4)

fx = fxxxx + 3(fxxxy y + fxxyy y2 + fxxy y

+ fxyy y y ) + fxyyy y3 + fxy y

fy = fxxxy + 3(fxxyy y + fxyyy y2

+ fxyy y + fyyy y y ) + fyyyy y3 + fyy y


y =

z =

fy4

fy gz fz gy

Z
X

g (x, y, z ) = cg (y , z ) + gy y + gz z = 0
cf = fxx + fyy y2 + fzz z 2 + 2(fxy y + fxz z + fyz y z )

to obtain
y =

fz cg gz cf
X

z =

gy cf fy cg

(A.3.4)

Applying once more this process of differentiating the last system,


and solving it for the derivatives of the next higher order, we find
y =

fz cg gz cf

z =

gy cf fy cg

X
X
cf = fxxx + fyyy y3 + fzzz z 3 + 3(fxxy y + fxxz z + fxyy y2

+ fxzz z 2 + fyyz y2 z + fyzz y z 2 + 2fxyz y z + fxy y


+ fxz z + fyy y y + fzz z z + fyz (y z + y z ))
3

+ 3(gxxy y + gxxz z

+ gxyy y + gxzz z + gyyz y2 z + gyzz y z 2


+ gyz (y z + y z )).
These recursive expressions, as well as those easily inferred
for x , z , x , z , x , z and for x , y , x , y , x , y when y, respectively z, is used as parameter suffice for computing k, k , , T, N, B
and applying the third order CE.
Similarly, for the pure parametric representation x = c (u, v),
y = d(u, v), z = e(u, v) and x = f (r , t ), y = g (r , t ), z = h(r , t )
of the intersecting surfaces, the curve is defined by the system of
equations c (u, v) f (r , t ) = 0, d(u, v) g (r , t ) = 0, e(u, v)
h(r , t ) = 0. Taking u as the parameter, we apply as before the
process of successive differentiation and solution of this system for
the derivatives of the highest order. The first differentiation results
in the system
du + dv v gr r gt t = 0,

. (A.2.5)

(A.3.6)

which is solved for v , r , t and the solution is used to compute


x = cu + cv v ,

y = du + dv v ,

z = eu + ev v .

A.3. Computation of y , z , y , z , y , z for surface intersections

fr r ft t = 0
duu + 2duv v gur r grr r 2 gut t gtt t 2 + dv v
gr r gt t = 0
euu + 2euv v hur r hrr r 2 hut t htt t 2 + ev v

(A.3.5)

The second differentiation yields the system

(A.3.3)

cg = gxx + gyy y2 + gzz z 2 + 2(gxy y + gxz z + gyz y z )

Expressions for x , x , x , x , which are required when y is


used as the parameter, are easily inferred.

(A.3.2)

f (x, y, z ) = cf (y , z ) + fy y + fz z = 0

e u + e v v hr r ht t = 0

fy4

4(fx fy fx fy )fy fy + 2(fx fy fx fy )(3fy2 fy fy )

fx gy fy gx

Next, we differentiate (A.3.1) and solve the resulting system

cu + cv v fr r ft t = 0,

(fx fy + fx fy fx fy fx fy )fy2

+ 2gxyz y z + gxy y + gxz z + gyy y y + gzz z z

fy = fxy + fyy y ,

fx = fxxx + 2fxxy y + fxyy y2 + fxy y ,

y =

cg = gxxx + gyyy y + gzzz z


(A.2.2)

(A.3.1)

g (x, y, z ) = gx + gy y + gz z = 0

fx
f = fx + fy y = 0 y =
fy

29

For the pure implicit representation f (x, y, z ) = 0, g (x, y, z ) =


0 of the intersecting surfaces, let X = (fy gz fz gy ), Y = (fz gx
fx gz ), Z = (fx gy fy gx ) be the components of the intersections
tangent vector f g. Assuming x as the parameter, we obtain

(A.3.7)

cuu + 2cuv v fur r frr r 2 fut t ftt t 2 + cv v

hr r ht t = 0

(A.3.8)

30

S.G. Papaioannou, M.M. Patrikoussakis / Computer-Aided Design 43 (2011) 2130

which is solved for v , r , t and these values are used to compute


x = cuu + 2cuv v + cv v ,

y = duu + 2duv v + dv v ,

z = euu + 2euv v + ev v ,

(A.3.9)

etc.
A.4. Convergence of Newtons method
To derive a convergence condition of Newtons iterations in the
point projection problem, we assume a plane parametric curve,
express the normality condition (Eq. (13)) in the local Frenet frame
p

h(s) = (xl x(s))x (s) + (yl y(s))y (s) = 0

k 2 s3

yl =

ks2
2

3
ks
6

(A.4.2)

Since h is parametrized in terms of s, s = s = 1. Also at the


origin s = 0 and at any other point on the curve x 2 + y 2 = s2 =
1, x x + y y = 0. Then, (A.4.1) yields
p

h(s) = (xl x)x + (yl y)y


p

p
xl
p
xl

p
yl
p
yl

h (s) = (xl x)x + (yl y)y (x2 + y 2 )

= (
h (s) = (

x)x + (
...

x) x + (

y)y 1

(A.4.3)

...

y) y .

...
...
The values of x , x , x , y , y , y at the origin are obtained by applying
the FrenetSerret relations (Eq. (A.1.2)) at Pi , as follows
T = [x, y ]T = [1, 0]T x = 1, y = 0
T = [x, y ]T = kN = k[0, 1]T x = 0, y = k
(A.4.4)
... ...
T = [ x , y ]T
...
k2 T = k [0, 1]T k2 [1, 0]T ...
x = k2 , y = k .
= kN
Writing (A.4.3) at the origin and introducing in them the values
(A.4.4) and the expressions (A.4.2), we obtain
p

h(0) = xl = s

k2

s3
6
k2 2
kk 3
p
h (0) = kyl 1 =
s +
s 1
2
6
4

2
p
pl = k2 s + kk s2 + k + k s3 .
h (0) = k2 xl + ky
2
6

s < 0.707rk

(A.4.6)

where rk is the radius of curvature. If we assume a minimum


curvature radius rkmin = 2 mm, a reasonable assumption for
machined parts, then inequality (A.4.6) establishes a maximum allowable step size s = 1.414 mm, to ensure convergence. With a
sampling interval 1t = 1 ms, this corresponds to a maximum feedrate value = s/1t = 1.414 m/s, proving that the convergence
condition (A.4.6) is satisfied even in high-speed machining.

(A.4.1)

and assume that h is parametrized in terms of s.


A specific convergence condition can be derived from the
general condition |hh | < h2 given in books on numerical
analysis [25]. We only need to apply it at Pi (the origin of the Frenet
frame) on the usual premise that, if it is satisfied at the starting
point of Newtons process, it will be satisfied at any subsequent
point, on account of its closer position to the solution point. In what
p
p
p
follows, we assume that Pi+1 = [xl , yl ]T , which is a fixed point in
the context of Eq. (A.4.1), is derived from the third order CE, so that
xl = s

The convergence condition |h(0)h (0)| < h (0)2 , after some manipulation
and dropping of the higher order terms, yields s <

2/(2k) or

(A.4.5)

References
[1] Suh SH, Cho JH, Hong HD. On the architecture of intelligent STEP-compliant
CNC. Int J Comput Integer Manuf 2002;15(2):16877.
[2] Hardwick M, Loffredo D. Lessons learned implementing STEP-NC AP-238. Int
J Comput Integer Manuf 2006;19(6):52332.
[3] Yang DCH, Kong T. Parametric interpolator versus linear interpolator for
precision CNC machining. Comput Aided Des 1994;26(3):22533.
[4] Spithalni M, Koren Y, Lo CC. Realtime curve interpolators. Comput Aided Des
1994;26(11):8328.
[5] Farouki RT, Shah S. Real-time CNC interpolators for Pythagorean-hodograph
curves. Comput Aided Geom Design 1996;13:583600.
[6] Farouki RT, Tsai Y-F, Yuan G-F. Contour machining of free-form surfaces with
real-time PH curve CNC interpolators. Comput Aided Geom Design 1998;16:
6176.
[7] Farouki RT, Manjunathaiah J, Nicholas D, Yuan G-F, Jee S. Variable-feedrate
CNC interpolators for constant material removal rates along Pythagoreanhodograph curves. Computer Aided Des 1998;30(8):63140.
[8] Farouki RT, Manjunathaiah J, Yuan G-F. G Codes for the specification of
Pythagorean-hodograph tool paths and associated feedrate functions on
open-architecture CNC machines. Int J Mach Tools Manuf 1999;39:12342.
[9] Farouki RT, Tsai YF. Exact Taylor series coefficients for variable-feedrate CNC
curve interpolators. Comput Aided Des 2001;33(2):15565.
[10] Farouki RT. Pythagorean-hodograph curves, algebra and geometry inseparable. Springer; 2008.
[11] Willmore TJ. Differential geometry. Oxford Univ. Press; 1959.
[12] Lipschutz MM. Theory and problems of differential geometry. Schaums
Outline Series, McGraw Hill; 1969.
[13] Hartmann E. G2 interpolation and blending on surfaces. Vis Comput 1996;
12(4):18192.
[14] Ye X, Maekawa T. Differential geometry of intersection curves of two surfaces.
Comput Aided Geom Design 1999;16(8):76788.
[15] Goldman R. Curvature formulas for implicit curves and surfaces. Comput
Aided Geom Design 2005;22:63258.
[16] Patrikalakis NM, Maekawa T. Shape interrogation for computer aided design
and manufacturing. Springer; 2002.
[17] Choi BK, Jerard RB. Sculptured surface machining. Kluwer Acad Publ.; 1998.
[18] Lin RS, Koren Y. Efficient tool-path planning for machining free-form surfaces.
Trans ASME, J Eng Ind 1996;118:208.
[19] Choi YK, Banerjie A. Tool path generation and tolerance analysis for free-form
surfaces. Int J Mach Tools Manuf 2007;47:68996.
[20] Pratt MJ. Geometric methods for CAD. In: Piegl LA, editor. Fundamental
developments of computer-aided geometric modeling. Acad Press; 1993.
[21] Farouki R, Tsai YF, Yuan GF. Contour machining free-form surfaces with
real-time PH curve CNC interpolators. Comput Aided Geom Design 1999;16:
6176.
[22] Tam HY, Xu H, Zhou Z. Iso-planar interpolation for the machining of implicit
surfaces. Comput Aided Des 2002;34:12536.
[23] Pratt MJ, Geisow AD. Surface/surface intersection problems. In: Gregory JA,
editor. The mathematics of surfaces. Oxford Univ. Press; 1986.
[24] Lawrence JD. A catalog of special plane curves. Dover; 1972.
[25] Scarborough JB. Numerical mathematical analysis. Johns Hopkins Press;
1966.

You might also like