ARTICLE IN PRESS
Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264 www.elsevier.com/locate/rcim
A CNC machine tool interpolator for surfaces of cross-sectional design Sotiris L. Omiroua,, Andreas C. Nearchoub a
Department of Mechanical Engineering, Frederick Institute of Technology, 1303 Nicosia, Cyprus b Department of Business Administration, University of Patras, 26 500 Patras, Greece Received 22 July 2005; received in revised form 8 December 2005; accepted 5 January 2006
Abstract A machining strategy for milling a particular set of surfaces, obtained by the technique of cross-sectional design is proposed. The surfaces considered are formed by sliding a Bezier curve (profile curve) along another Bezier curve (trajectory curve). The curves are located in perpendicular planes. The method employs a three-axis CNC milling machine equipped with suitable ball-end cutter and is based on the locus-tracing concept. The algorithm described, utilizes a real-time CNC interpolator providing the highest possible accuracy, of which the milling machine is capable. The surface quality is controlled by keeping the distance between scallops within a programmed value. Finally, the whole machining task can be programmed in a single block of the part program. r 2006 Elsevier Ltd. All rights reserved. Keywords: CNC; Bezier curves; Offset curves; Cutter path generation
1. Introduction In the automobile, aerospace and appliances industry, a variety of functional or even aesthetic free-form surfaces are engaged by engineers and designers to achieve the desired performance of a product. The machining of such complex geometries is a basic problem in computer-aided manufacturing since the available NC machines are constrained, by their software, to linear and circular motions [1]. Voluminous part programs with these motions are generated by computer aided design (CAD)/CAM systems, driving the cutting tool through a set of points approximating the complex paths. Inevitably, the continuous succession of accelerations and decelerations of the driving motors causes feedrate variations, decreases machining accuracy and requires more machining time. However, in many cases the design of a surface does not require a grid of control points as is the case in general freeform surfaces. The design of these surfaces fit into a special technique, the cross-sectional design. In general, the crosssectional design technique requires one or more profile Corresponding author. Tel.: +357 22 44 8124.
E-mail addresses: eng.os@fit.ac.cy (S.L. Omirou),
[email protected] (A.C. Nearchou). 0736-5845/$ - see front matter r 2006 Elsevier Ltd. All rights reserved. doi:10.1016/j.rcim.2006.01.001
curves that describe the profile, or cross-section, of the desired surface and perhaps a trajectory curve that guides that way of sliding the profile curve. As the profile curves slide along the trajectory curve, a surface is generated. In this paper we deal with a set of surfaces obtained with this design technique. More particularly we use Bezier curves [2–5] to define the shapes of both the profile and the trajectory. Bezier curves as free-form curves are a powerful designing tool. They need only a few points to define a large number of shapes, hence their wide use in CAD systems. The principle for generating the considered surfaces is shown in Fig. 1. The curves are located in perpendicular planes. The upper end of the profile curve lies on the trajectory curve which is a plane contour. Fig. 2 shows a sample surface obtained by the above-mentioned technique. Despite the particularity in the definition and the design of these surfaces, the available CAM systems deal with them as with free form surfaces. Consequently, the drawbacks mentioned in the first paragraph continue to be present in the machining of these surfaces as well. This paper, following the present intention of research engineers to take advantage of the hardware capabilities of modern CNC systems, proposes a real-time surface interpolator for machining the specified surfaces on a
ARTICLE IN PRESS S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
258
profile curve
90°
trajectory curve
Y
X Z
X Fig. 1. Surface is generated by sliding the profile curve along the trajectory curve.
using an exact analytic expression or a piecewise-analytic approximation for the offset. Instead, we use analytic concepts and the defining geometric property to generate a succession of points on the locus (Bezier’s offset), through repeated application of two analytically implemented construction operations. These operations are designed to achieve coordinate increment step control, automatic error control and maximum advance along the local tangent. The outline of this paper is as follows: Section 2 points out the flexibility in achieving the desired shape of the surfaces by the ability to design and modify easily the form of Bezier curves. For this paper to stand alone, the basic formulas for Bezier curves and their design method based on the de-Casteljau algorithm are also given in this section. Section 3 demonstrates the versatility of the locus-tracing concept by accordingly adapting it for machining the specified cross-sectional design surfaces. The section analytically presents the locus-tracing method for tool path generation along Bezier’s offset. In the context of CNC programming and machining, Section 4 proposes tool path planning while Section 5 describes the implementation issues related to the integration of the new algorithm in a CNC controller. Simulation examples are provided in Section 6 to support the adequacy of the proposed method. Finally, Section 7 summarizes the contribution of this paper to manufacturing process. 2. Cross-sectional design with Bezier curves
Fig. 2. Sample surface obtained by cross-sectional design.
vertical three-axis CNC milling machine. Of course, the fixed orientation of the tool disables the machining of surfaces with inaccessible regions, demanding machines with coordinated tool positions and orientations (i.e., fiveaxis). However we keep in mind that whenever feasible, three-axis milling procedures are often preferred due to considerations of cost. For the considered surfaces, inaccessibility issues are directly dependent upon the form of the profile curve. So by controlling the form of the profile curve such issues are avoided. Flexibility, simplicity and accuracy are the main advantages of this manufacturing method. Flexibility is secured by the ability to modify easily the form of the profile and/or the trajectory curve until the requirements of each particular situation are met. Simplicity is assured by the fact that the whole machining task can be programmed in a single block of the part program. In this block, the user specifies the desired surface shape, the tool radius and the required cutting conditions. Finally, accuracy is obtained by applying the locus-tracing concept [6] for driving the tool along the Bezier’s offset. The concept is generally applicable in motion generation [7–9]. In this paper, its application is illustrated in the context of motion generation along Bezier’s offset. Compared to the customary offset-modeling schemes [10,11], an additional advantage besides accuracy, is the fact that we avoid the complexity of
Many commonly seen and useful surfaces are surfaces of cross-sectional design. For example a surface of revolution is produced under this technique. The surface is generated by revolving a given curve about an axis. The given curve is a profile curve while the axis is the axis of revolution. This paper deals with a more complex type of surface which is an extension to the surfaces of revolution. We still need a profile curve that rotates about the axis of revolution, but the rotation is controlled by a trajectory curve. Now, the profile curve swings about the axis of revolution, guided by the trajectory curve. Both curves, profile and trajectory, are Bezier curves located in perpendicular planes. A Bezier curve of degree n is a polynomial interpolation curve defined by ðn þ 1Þ points defining the Bezier control polygon. The interpolation basis functions used in Bezier interpolation are the Bernstein polynomials defined for degree n as n i Bni ðtÞ ¼ t ð1 tÞni , (1) i where the binomial coefficients are given by ( n! n if 0pipn; ¼ i! ðniÞ! i 0 else: The parameter t is in the range [0,1] and there are n þ 1 polynomials defined for each i from 0 to n. The Bezier
ARTICLE IN PRESS S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
EDIT
1
1
2 4 (a)
(1,1)
5
3
6
(0,1) (-1,1)
4
5
3
ADD
1′ 2
6
(1,0)
(-1,0)
(b) (-1,-1)
1
259
MOVE
1′
1
2 3
4
6
(c)
(1,-1) (0,-1)
Fig. 4. Candidate steps.
3
5 4
1′ 2
DELETE
5
offset curve
(d)
Fig. 3. Design and manipulation of a Bezier curve to achieve the desired form for a profile.
Bezier curve
Pi
Pi-1
dP
curve is therefore defined over the interval [0,1] as bðtÞ ¼
n X
bi Bni ðtÞ,
Pi+1
(2)
pi
i¼0
where bi are the control points defining the Bezier polygon. A recursive algorithm defined by de-Casteljau [3,5,12], calculates for a given control polygon the point that lies on the Bezier curve for any value of t, and can be used to evaluate and draw the Bezier curve simply, without using the Bernstein polynomials. The algorithm advances by creating in each step a polygon of degree one less than the one created in the previous step until there is only one point left, which is the point on the curve. The polygon vertices for each step are defined by linear interpolation of two consecutive vertices of the polygon from the previous step with a value of t (the parameter): ðn1Þ bni ðtÞ ¼ ð1 tÞbn1 ðtÞ þ t biþ1 ðtÞ. i
(3)
An interactive drawing tool based on the de-Casteljau algorithm, capable to design and manipulate Bezier curves supports the method proposed in this paper. Since the design process is very often iterative, the designer first lets the computer draw the Bezier curve defined by a given polygon. Next, checks whether the shape is acceptable (or optimal) based on various criteria, and, if necessary, adjusts the location and the number of the polygon vertices. The edit, add, move and delete operations of this drawing tool, presented in Figs. 3(a)–(d), respectively, were used to achieve the desired form for a profile curve. Once the forms of the profile and the trajectory curve are definitively accepted, the coordinates of their control points are advanced to the input of the CNC surface interpolator, constituting part of the geometric information required. 3. Offset tracing for a Bezier curve An accurate machining of the considered surfaces requires accurate offset cutter paths along the trajectory and the profile curves. Since both of them are implemented in terms of Bezier curves our interest is focused on the motion generation along Bezier’s offset. The generation of an accurate motion along Bezier’s offset is treated as a
Pi+2 pi+1 Ti
Fig. 5. Step selection process.
locus-tracing problem. The formulation of the interpolation algorithm demonstrates the versatility and effectiveness of the locus-tracing concept in this practical case of machining. The algorithm guides the tool-center through repeated application of two analytically implemented construction operations, maintaining exact contact (within 1 BLU1) along the entire path. In each iteration, the set of candidate steps is represented by the vector expression dP ¼ ½dX ; dY , dX ; dY 2 ½1; 0; 1, jdX j þ jdY jX1,
ð4Þ
assuming a unit of length equal to the step size. The number of possible steps in each point is 8 (Fig. 4). The last inequality excludes the combination of zero values for both dX, dY, which does not constitute a step. The optimal step is one, which maximizes the advance TidP (Fig. 5) along the local tangent Ti while, at the same time, it satisfies a criterion of proximity to the offset. Implementation of the proximity criterion requires the use of a proximity function which, in the neighborhood of Pi, provides a measure of closeness to the offset. A suitable proximity function is derived from the fixed distance property of the offset p ¼ ðP pi Þ2 d 2 ¼ ðX xi Þ2 þ ðY yi Þ2 d 2 ,
(5a)
where d is the radius of the cutting tool. 1 BLU—basic length unit. For a given CNC machine it represents the smallest distance the machine can resolve.
ARTICLE IN PRESS S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
260
Notice that for P lying on the offset p ¼ 0, while p increases absolutely as the distance of P from the offset increases. Since the choice of step is limited to those prescribed by Eq. (4), the fixed distance property cannot be applied in a rigid manner. Rather, p is used as a proximity measure, from which a differential
START INPUT DATA 1. Bezier's control points 2. offset distance (tool-radius) 3. step size (by default 1 BLU) 4. starting point (current tool position)
Dp ¼ pX dX þ pY dY ¼ 2ðX i xi ÞdX þ 2ðY i yi ÞdY (5b) can be developed, giving the effect of each candidate step on the position error. To satisfy the proximity requirement, dP must point towards the offset locus. In algebraic terms, it must drive the value of p towards 0. Specifically, it should give Dpo0 if p40 and Dp40 if po0 or pDpo0. Thus, if Ti is the local tangent vector, step selection is formulated as a constrained optimization problem: maximize Ti dP subject to Dpo40,
ð6bÞ
This is an integer programming problem in which the variables dX, dY take values from the set [1,0,1] with the added restriction that at least one must be non-zero. Once an optimal step dP is determined from (6), the normality condition is enforced by throwing a normal from the new point Piþ1 ¼ Pi þ dP to the Bezier curve, to locate the next point pi+1. This point is computed by solving the normality condition TðPiþ1 pÞ ¼ 0
(7a)
for p by Newton’s method, using pi to start the iterations. For a parametric representation, the normality condition u0 ðtÞ ðX iþ1 uðtÞÞ þ v0 ðtÞ ðY iþ1 vðtÞÞ ¼ 0
(7b)
is solved for t ¼ ti+1 to determine the new point pi+1 ¼ [u(ti+1), v(ti+1)]. The new t is obtained as the root of Eq. (7b), using Newton’s iterative formula, which in this case takes the form tiþ1 ¼ ti
u00 ðtÞ
STEP SELECTION -Resolve (6b) Update tool position NEWTON'S METHOD - calculate new t (equ.8) -
ð6aÞ
where the sign o4 stands for X when po0 and for o0 when pX0. A more explicit formulation can be obtained by introducing Eqs. (4) and (5b)and an expression of the local tangent vector. For a parametric representation x ¼ uðtÞ, y ¼ vðtÞ, Ti ¼ [u0 ,v0 ] the problem to be solved is maximize u0 dX þ v0 dY subject to ðX i ui ÞdX þ ðY i vi ÞdY o40.
INITIALIZATION 1.for t=0, calculate u,v,u',v',u'',v'' 2.offset p=0 (equ. 5a)
u0 ðtÞ ðX iþ1 uðtÞÞ þ v0 ðtÞ ðY iþ1 vðtÞÞ . ðX iþ1 uðtÞÞ þ v00 ðtÞ ðY iþ1 vðtÞÞ u0 ðtÞ2 v0 ðtÞ2
t >1
N
UPDATE 1. u, v, u', v', u'', v'' 2. offset p (equ.5a)
Y STOP Fig. 6. Flow chart for real-time Bezier’s offset interpolator program.
problem (6b) cannot all be of the same sign. Furthermore, if the coefficients of dX (the first two) are of the same sign, the coefficients of dY must have opposite signs and vice versa. It has been shown in Ref. [13] that in bivariate integer programming problems possessing this structure, the optimal solution can be tabulated and may thus be obtained by a simple inspection of the coefficients. A flow chart of the proposed real-time Bezier’s offset interpolator is shown in Fig. 6. In INTIALIZATION and UPDATE steps, the de-Casteljau algorithm offers a quick solution for computing both, the point bi on the Bezier curve (Eq. (3)) and the first and second derivative at the same time. The first and second derivative can be expressed in terms of the intermediate points bi+1, bi+2 and the point bi, all generated by the deCasteljau algorithm: d n n! b ðtÞ ¼ ðbiþ1 bi Þ, dt ðn 1Þ! d2 n n! ðbiþ2 2biþ1 bi Þ, b ðtÞ ¼ ðn 2Þ! dt2
ð9Þ
where n is the degree of the curve.
(8) The normality condition (Eq. (7b)) relates the coefficients of the unknowns dX, dY in the respective step selection problem (Eq. (6b)) and may be interpreted as a constraint on the signs of these coefficients. Eq. (7b) implies that the coefficients u0 , (Xiui), v0 , (Yivi) in
3.1. Feedrate control Feedrate f can be controlled by regulating the time delay associated with each step. Since successive cutter contact points are computed exactly, the required time delay for
ARTICLE IN PRESS S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
the ith step is
261
offset curves
Ds , f Ds ¼ jpi pi1 j qffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffiffi ¼ ðxi xi1 Þ2 þ ðyi yi1 Þ2 . Dt ¼
profile curve top trajectory curve
ð10Þ Y
After issuing the selected stepping command, the software programs a system timer to measure Dt and generate an interrupt when this delay expires. The CPU utilizes the programmed delay to compute the next step, which is then sent to the motors by the interrupt service routine (ISR). This process works well with both step and servo motors. In the first case, the stepping commands are sent directly to the motors drives, while in the servo case an up–down counter is normally used for each motor to form the accumulated difference between the motor step count and the count of pulses fed back by the respective encoder. This difference, representing the instantaneous motor position error, is converted to an analog signal and fed to the motor drive. 4. Tool path planning A vertical three-axis CNC milling machine is the appropriate system for machining the surfaces. In order to generate the desired shape, the cutter must be moved so as to remain tangent to the surface created by the sliding of the profile curve along the trajectory curve. A tool commonly used for generating free-form surfaces is a spherical end-milling cutter, which has the convenient property that the center of its spherical end remains at a constant distance from the generated surface, while the tool axis maintains a vertical orientation. A convenient tool center path, corresponding to one pass in the machining process, consists of a series of small arcs of prescribed length along the profile’s offset, followed by offset motion along the entire length of the trajectory curve, until the end of the profile curve is reached (Fig. 7). Based on the real-time approach for motion generation along Bezier’s offset (Section 3), the interpolation program
trajectory curve
start
t
tool - path
Z end
X
profile curve
Fig. 7. Illustration of the tool-paths in XZ plane (front view).
X Fig. 8. Illustration of the tool-paths in XY plane (top view).
generates the necessary steps for this motion, using as data input the following:
the the the the the the the the
coordinates of the Bezier’s control points defining profile curve in XZ-plane, coordinates of the Bezier’s control points defining trajectory curve in XY-plane, tool-radius, step size, distance between scallops (t), federate.
The programmed distance between scallops (t) is used to determine when to switch from motion generation along the profile curve to the motion generation along the trajectory curve. It must be noted that the control points of the trajectory curve define that curve only at the top plane. At this level the tool executes the first offset motion along the trajectory curve with offset distance the programmed tool-radius. However, as the tool advances along the profile curve, any movement of the tool along the X-axis, inevitably induces changes in the form of the trajectory curve in the current plane section. It is evident that these trajectories in the following sections are offset curves of the initial trajectory curve but in different Z-levels (Fig. 8). Therefore, to avoid unnecessary complexity, we utilized the simple artifice of updating the offset distance for motion along the trajectory curve each time the interpolator of the profile curve generates a step with movement in the X-axis direction. In this way the program uses the control points of the top trajectory curve and the updated offset distance to generate the desired motion on subsequent trajectory paths. The offset motion along the profile curve is executed normally with the programmed tool-radius. A spherical cutter permits gouge-free machining of nonconvex surfaces if the cutter radius is less than the minimum concave principal radius of curvature on the surface [14]. Obviously, in our case this condition is secured if the cutter radius and the updated offset distance are less than the minimum concave radius of curvature on the profile and the trajectory curves, respectively. By choosing a tool with a sufficiently small radius, the program can accommodate the considered surfaces.
ARTICLE IN PRESS S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
The operation of a CNC machine tool is controlled by a program written in the G-code programming language called part program. A part program contains an ordered sequence of statements, known as blocks, specifying in detail the cutter motions to be executed and the auxiliary operations (e.g., spindle on/off, spindle speed and feedrate) to be realized by the CNC machine in order to machine a specified part. A block is made up of words. Characters and numerical digits are the elements that constitute a word. For example, the statement N10 G01 X200 Y300 Z100 F200 M03 S800 consists of the words ‘‘N10’’, ‘‘G01’’, ‘‘X200’’, ‘‘Y300’’, ‘‘Z100’’, ‘‘F200’’, ‘‘M03’’, ‘‘S800’’, meaning that the statement with sequence number N10, requires movement of the tool from its current position to position (200, 300, 100) linearly (G01) with a feedrate of 200 mm/min and with the spindle rotating clockwise (M03) at 800 rpm. Each of the codes other than G and M has a unique function. The G and M have many functions depending on the following two-digit number. These functions have been largely standardized and are commonly known as ‘‘G and M codes’’. Generally a G-code, named preparatory function code, defines one type of motion or one mode of operation while an M-code, named miscellaneous function code, turns various operations on/off (e.g., coolant flow, spindle, etc.). It must be noted that not all the possible code numbers are allocated, which means that control systems manufacturers can use those remaining for whatever purpose they wish. New CNC programming capabilities are among those purposes. Pythagorean-hodograph curves [15] and real-time surface interpolation [16] are representative examples of such new programming capabilities. In these works, authors, besides the presentation of the new CNC interpolators, propose G-codification for performing the respective interpolation. In the same way, the interpolation algorithm proposed in the present paper may be embedded in a CNC controller [17] under specific G-codification. More particularly, the whole machining task is formulated and introduced in the part program via a statement of the form: G62 P01 0; 5; 12; 19 P02 0; 10; 15; 25 P03 0; 10; 20; 30; 25; 18; 5; 0 P04 0; 5; 2; 3; 8; 14; 4; 0 P05 4 P06 2 P07 100, where G62 selects machining for a surface of crosssectional design and P01, y, P07, parameters specifying the following: P01 and P02—the X and Z coordinates, respectively, of the Bezier’s control points defining the profile curve. P03 and P04—the X and Y coordinates, respectively, of the Bezier’s control points defining the trajectory curve.
P05—the tool-radius (4 mm). P06—the distance between scallops (2 mm). P07—the feedrate (100 mm/min). The programmable distance between scallops is a factor offering the possibility to control the surface quality. As its value decreases the quality of the machining surface increases but the machining time also increases. 6. Test results A representative example for machining a surface of cross-sectional design is illustrated in Figs. 9–11. Figs. 9 and 10 show the selected forms for a profile and a trajectory curve, respectively. Both curves are defined as 0
1
-10
Z [mm]
5. Integration of the algorithm in a CNC controller
4
-20
3 7
-30
-40
2
6 8
5 -50 -10
0
10
20 X [mm]
30
40
50
Fig. 9. Profile curve defined with eight control points.
150
6
8
3 100
12
2
13
7 50 Y [mm]
262
1
0
16
-50 10 -100
5
4 14
-150
9 -300
15
11 -200
-100 X [mm]
0
Fig. 10. Trajectory curve defined with 16 control points.
ARTICLE IN PRESS S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
0
step size = 1mm
150
offset distance = 10mm
-10 Z [mm]
263
100
-20 -30
50 Y [mm]
-40 -50 300 200
X
0
100 100 [m m]
50 0
0 -100
-50 -100
Y
-50
trajectory curve
]
[mm
-100
offset curve
Fig. 11. Generated tool paths for a surface of cross-sectional design.
-150
Bezier curves. The profile curve is defined with eight control points in XZ-plane and the trajectory curve with 16 control points in XY-plane. Fig. 11 shows the interpolation results of the tool paths created by the real-time surface interpolator. The command block used in the part program is shown below:
-300
-250
-200
-150 -100 X [mm]
-50
0
50
Fig. 12. Test offset of the trajectory curve.
1
P02 0; 39:5; 22:5; 21; 45, 41; 31; 47 P03 0; 3; 98; 110; 159; 196, 247; 298; 298; 247; 196, 159; 110; 98; 3; 0 P04 0; 102; 102; 86; 86; 134; 52, 122; 122; 52; 134; 86; 86; 102, 102; 0 P05 4 P06 5 P07 100. The programming parameters are in mm and the BLU is set equal to 0.5 mm. Fig. 12 shows a test offset generated by the locus tracing method for the trajectory curve. The offset shown corresponds to offset distance 10 mm. A step size of 1 mm was specified to see the path clearly. Fig. 13 illustrates the position error (normal distance from the offset), as a function of the step number. Essentially, it demonstrates the automatic error limiting property of the locus tracing method, a consequence of the fact that in each iteration, the selected step vector always points to the other side of the offset, with respect to the current position. The position error is thus bounded by the step size and can be easily controlled.
position error / step size
G62 P01 0; 0; 16; 11:5; 11; 21; 33; 33 0.5
0
-0.5
-1 0
100
200
300 400 step number
500
600
Fig. 13. Normalized position error.
curves, a powerful design tool widely used in computeraided design (CAD) systems. The proposed method comprises tool path planning, real-time algorithm for cutter path interpolation and cutter offsetting. The cutter path generated by the machining strategy described was transformed to NC code for programming a three-axis CNC milling machine that incorporates the appropriate software interpolator. Simulation results have shown the effectiveness of the locus-tracing concept in generating the Bezier’s offset and its capability in automatic error control. References
7. Concluding remarks A manufacturing method for machining a particular set of surfaces, obtained by the technique of cross-sectional design is presented. The generatrix curves of these surfaces (profile and trajectory) are implemented in terms of Bezier
[1] Koren Y. Computer control of manufacturing systems. New York: McGraw-Hill; 1983. [2] Bezier P. Numerical control: mathematics and applications. New York: Wiley; 1972. [3] Casteljau P de F. Shape mathematics and CAD. London: Kogan Page; 1986.
ARTICLE IN PRESS 264
S.L. Omirou, A.C. Nearchou / Robotics and Computer-Integrated Manufacturing 23 (2007) 257–264
[4] Choi BK. Surface modelling for CAD/CAM. Amsterdam: Elsevier Science; 1991. [5] Farin G. Curves and surfaces for computer aided geometric design, 4th ed. Boston: Academic Press; 1997. [6] Papaioannou S, Omirou S. Motion generation as a locus tracing problem. Proceedings of the Patras/Greece third international symposium on advanced electromechanical motion systems, vol. II. 1999. p. 1013–9. [7] Omirou S. A CNC interpolation algorithm for boundary machining. Robot Comput Integr Manuf 2004;20(3):255–64. [8] Omirou S. Space curve interpolation for CNC machines. J Mater Process Technol 2003;141(3):343–50. [9] Papaioannou SG, Omirou SL. 3-dimensional circular interpolation for CNC machines. J Manuf Sci Eng Trans ASME 1996;118(2):274–7. [10] Elber G, Lee IK, Kim MS. Comparing offset curve approximation methods. IEEE Comput Graph Appl 1997;17:62–71.
[11] Pham B. Offset curves and surfaces: a brief survey. Comput Aided Des 1992;24:223–9. [12] Hill Jr FS. Computer graphics. New York: Macmillan Publishing Company; 1990. [13] Papaioannou S, Kiritsis D. Computer aided manufacture of high precision Cams. J Eng Ind 1988;110:352–8. [14] Farouki RT. The approximation of nondegenerate offset surfaces. Comput Aided Geom Des 1986;3:15–43. [15] Farouki RT, Manjunathaiah J, Yuan G. G codes for the specification of Pythagorean-hodograph tool paths and associated feedrate functions on open architecture CNC machines. Int J Mach Tool Manuf 1999;39:123–42. [16] Lin R. Real-time surface interpolator for 3-D parametric surface machining on 3-axis machine tools. Int J Mach Tool Manuf 2000;40:1513–26. [17] Omirou S, Barouni A. Integration of new programming capabilities into a PC-based milling machine controller. Robot Comput Integr Manuf 2005;21(6):518–27.