1 Introduction

Screw rotor flowmeter is a new type flowmeter introduced at the end of 1990s. It has the following advantages: good dynamic balance, low vibration and noise, small size, large measuring capacity, no load on the rotor surface, no wear in the process of rotation, and the life is longer. Screw rotor flowmeter consists of a pair of meshing screw rotors [1]. The screw rotor is the most crucial component of the flowmeter, whereby the geometry and the machining precision of the rotor can greatly affect flowmeter performance [2]. The screw rotor is actually a special helical surface gear with a complex end profile, and its end profile is composed of several curves. Since the transition points of two adjacent curves are discontinuous, feedrate fluctuation and acceleration oscillation are inevitable. The fluctuations will leave undesired marks on the finished surface, which lead to poor surface quality. In order to improve the machining contour accuracy, the tool path junctions should be smoothed to get higher order continuity. The tool path smoothing methods can be divided into the global smoothing and the local corner smoothing methods. The global smoothing method has good geometric continuity since they utilize one entire spline to approximate the discrete lines. The advantage of global smoothing method is that they can guarantee smoothness along the entire tool path. However, the global smoothing method is mathematically complex to adjust feedrate due to variable curvature, and it is time-consuming. These drawbacks are not suitable for real-time industrial applications [3]. Difference from the global smoothing method, the local smoothing method, which is also known as the corner smoothing method, inserts a smooth curve locally between adjacent lines and controls the maximum approximation error between the inserted curve and the original lines. Since the local smoothing method can control the toolpath smoothing error analytically, it is high efficient, making it widely used in recent years. One of the crucial aspects of corner smoothing is the design of the corner curve so that it can be traveled at high speed and then the total cornering cycle time could be minimized. The simplest alternative path is a circular arc [4]. In the ideal situation, the curvatures should match at the junction; otherwise, an abrupt acceleration may occur. Several alternative parametric curves have been developed in the literature. The Bezier, B-spline, NURBS, or Pythagorean-hodograph curves are inserted into transition corners between linear toolpath segments, in order to achieve different order of motion continuity under predefined tolerance limits. Zhu et al. proposed a B-spline transition method, and the transition curve was composed of two symmetrical Bezier curves [5]. Fan et al. utilized two quartic Bezier curves to obtain an optimal continuous toolpath where the curvature extreme can be calculated [6]. Hu et al. developed a C3 continuous local corner smoothing algorithm based on Pythagorean-hodograph (PH) splines [7]. Previous studies basically focused on the transition between straight lines, but the section curve of screw motor is composed of involute, cycloid, and arc segment. In this paper, a smooth curve transition algorithm with C3 continuity between adjacent non-line segments is proposed.

Once the adjacent non-line segments are blended with corner splines, it becomes a mixture of non-line segments continuously connected with blending splines. The next problem is to plan the speed profile along the toolpath. Before planning the speed profile, the length of inserted curve is required to calculate first [8], and velocity constraint, acceleration constraint, and jerk constraint are usually considered so that the kinematic compatibility constraints between velocity, acceleration, and jerk are not violated. Researchers have proposed different feedrate planning algorithms [9]. The S-curve feedrate profile has been widely studied [10]. These papers mainly discussed the curves that can have enough travel distance to perform the desired smooth motion. But if a toolpath curve lacks the travel length to accelerate to the desired feedrate and subsequently decelerate to the specified end feedrate, then the S-curve acceleration/deceleration (abbreviated as acc/dec) algorithm must be modified. The paper proposes a solution to the curves that cannot reach the complete acc/dec conditions while considering the kinematic compatibility conditions between adjacent segments.

The remainder of this paper is organized as follows: Sect. 2 provides the section curve composition of screw motor and 3D parametric modeling. Section 3 proposes local toolpath smoothing of section curves. In Sect. 4, based on feedrate planning, motion simulation experiments of inserted NURBS curve are carried out. Section 5 provides machining experiments and accuracy measurement experiments of screw rotor to validate the proposed algorithm. Finally, the conclusions are presented in Sect. 6.

2 Section curve composition of screw rotor and modeling of 3D parametric model

2.1 Section curve composition of screw rotor

According to meshing analysis, as shown in Fig. 1, the end section of screw rotor consists of arc segment AB, involute segment BC, cycloid segment CD, and arc segment DE. The AB segment is the arc of the addendum circle radius, and the DE segment is the arc of the dedendum circle radius.

Fig. 1
figure 1

Screw rotor end section diagram

Among them, x and y are the involute coordinates, \({r}_{b}\) is the base circle radius, and \(\theta\) is the involute unfolding angle.

According to gear meshing theory, cycloid CD equation is as follows [11]:

$$\left\{\begin{array}{l}\left(x-{2r}_p\cos t\right)^2+\left(y-{2r}_p\sin t\right)^2=r_a^2\\\left[x-\left({2r}_p\cos t-r_p\cos\left(2t-0.25\pi\right.\right)\right]^2\\\left.+\left(y-\left({2r}_p\sin t-r_p\sin\left(2t-0.25\pi\right)\right.\right.\right]^2=h^2\end{array}\right.$$

\(h=\sqrt{{r}_{a}^{2}+{r}_{p}^{2}-{2r}_{a}{r}_{p}\mathrm{cos}\beta }\), ra is the radius of the addendum circle, rp is the radius of the root circle, and \(\beta\) is the meshing angle of meshing point.

2.2 Modeling of 3D parametric model

Firstly, the section curves of screw rotor are generated in Pro/E, which is a 3D modeling tool. According to Sect. 2.1, the section curve of screw rotor is composed of three curves: involute, cycloid, and arc segment. After the section curve is generated, the end section of the rotor is generated by means of mirror, intersection, and cutting, as shown in Fig. 2. Then, the end section is taken as the scanning section, the rotor axis as the original trajectory curve, and the helix on the pitch circle as the X-trajectory curve for the variable section solid scanning, and a single tooth of screw rotor is obtained, as shown in Fig. 3. Finally, the screw rotor parametric model is obtained by using the generated tooth as circumference array and adding hole feature, as shown in Fig. 4. We marked the critical parameters of the screw rotor in Fig. 4. Moreover, because the screw rotor model is a parametric model, that is, a new 3D screw rotor model can be generated in Pro/E software by changing the basic parameters of screw rotor.

Fig. 2
figure 2

End profile scanning section

Fig. 3
figure 3

Single tooth generation

Fig. 4
figure 4

Parametric model of screw rotor

3 Local toolpath smoothing for screw motor section curves

In order to achieve feedrate, acceleration, and jerk continuity at the junction points, C3 continuity of the toolpath at the junction points needs to be satisfied first. To smooth local corners of the adjacent toolpath, first, the NURBS curve is constructed, with the defined cornering tolerance by the user.

The inserted NURBS curve between two adjacent segments is defined by the basis function Ni,p(u),control point Pi[Pxi,Pyi,Pzi] (i = 0,1,…,N), and the degree p with the following form:

$$\begin{array}{cc}C\left(u\right)=\frac{{\displaystyle\sum_{i=0}^n}N_{i,p}\left(u\right)w_iP_i}{{\displaystyle\sum_{i=0}^n}N_{i,p}\left(u\right)w_i}&0\leq\mathrm u\leq1\end{array}$$
(1)

where {wi} is the corresponding weight of {Pi}, (n + 1) is the number of control points, and the basic functions Ni,p(u) are functions of the geometric parameter u and knot vector \(U={\left[{u}_{0},{u}_{1},\cdots ,{u}_{N+P+1}\right]}^{T}\), which can be deduced recursively as follows:

$$\left\{\begin{array}{l}\begin{array}{cc}N_i\left(u\right)=\left\{\begin{array}{c}\begin{array}{cc}1&{\mathrm{ifu}}_{\mathrm i}\leq\mathrm u\leq{\mathrm u}_{\mathrm i+1}\end{array}\\\begin{array}{cc}0&\mathrm{otherwise}\end{array}\end{array}\right.&\mathrm u\in\left[0,1\right]\end{array}\\N_{i,p}\left(u\right)=\frac{u-u_i}{u_{i+p-1}-u_i}N_{i,p-1}\left(u\right)+\frac{u_{i+p}-u}{u_{i+p}-u_{i+1}}N_{i+p-1}\left(u\right)\end{array}\right.$$
(2)

For the NURBS curve used in the paper, the degree of the spline curve is chosen as 3 and the number of control points is chosen as 7, in order to achieve third order continuity of the geometric derivative at junctions of the inserted NURBS curve and original residual trajectory curves. The non-uniform knot vector is defined as \(U={\left[\mathrm{0,0},\mathrm{0,0},\mathrm{0.5,1},\mathrm{1,1},1\right]}^{T}\) to ensure symmetry across the corner.

3.1 Transition NURBS curve between involute and cycloid segments

P0 is defined as junction point of the inserted NURBS curve and cycloid segment, P6 is defined as junction point of the inserted NURBS curve and involute segment, and P3 is the junction point of involute and cycloid segments, as shown in Fig. 5. To maintain the C3 continuity and symmetry at the junction between the involute (or cycloid) segment and the inserted NURBS segment, the first three control points P0, P1, and P2 and the last three control points P4, P5, and P6 should be located on the two adjacent curves respectively [12].

Fig. 5
figure 5

Corner smoothing between the involute and cycloid segments

The inserted NURBS curve is constructed symmetrically; thus, the maximum corner error between the NURBS and the two adjacent curves occurs at the middle point of the NURBS curve (the point B (u = 0.5)), and its value is the distance from B (u = 0.5) to P3; it can be expressed as follows:

$${e}_{\mathrm{max}1}=\Vert {P}_{3}-B\left(0.5\right)\Vert$$
(3)

Suppose \(\Vert {P}_{0}{P}_{1}\Vert =\Vert {P}_{5}{P}_{6}\Vert {=c}_{1}\), \(\Vert {P}_{1}{P}_{2}\Vert =\Vert {P}_{2}{P}_{3}\Vert =\Vert {P}_{3}{P}_{4}\Vert =\Vert {P}_{4}{P}_{5}\Vert {=d}_{1}\), ts is the unit vector from the point P0 to the point P3, and te is the unit vector from the point P3 to the point P6. Based on these conditions, the analytic solution of the control points is defined as

$$\left\{\begin{array}{l}P_0=P_3-\left(c_1+{2d}_1\right)t_s\\P_1=P_3-{2d}_1t_s\\P_2=P_3-d_1t_s\\P_4=P_3+d_1t_e\\P_5=P_3+{2d}_1t_e\\P_6=P_3+\left(c_1+{2d}_1\right)t_e\end{array}\right.$$
(4)

Suppose the ratio of c1 to d1 is defined as x, when we choose the value of x, we should consider the acceleration and deceleration planning and seek the minimum cornering cycle time under the limitation of maximum machining load of the machine tool. In practical application, due to the real-time requirements, the selection of x value mainly depends on the corner angle [9]. In this paper, we choose x = 0.5 by comprehensively considering multiple factors. Two aspects should be considered when selecting the length value of d1: corner error and kinematic constraints of machine tool. If the value of d1 is too small, the acceleration and deceleration of the corner may exceed the maximum acceleration limit of machine tool; if the value of d1 is too large, the corner error may exceed the used-defined error tolerance to be discussed in the following sections. So we should consider comprehensively when selecting the length value of d1. Assume that the corner angle between the segments P2 and P3 and P3 and P4 is \({\alpha }_{1}\) (\({\alpha }_{1}\) is defined as the angle between the tangent lines of the spline curves P2 and P3 and P4 and P3 at the intersection point P3); the maximum error emax1 can be expressed as [13]

$${e}_{\mathrm{max}1}=\frac{1}{2}{\mathrm{d}}_{1}\mathrm{cos}\left({0.5\alpha }_{1}\right)$$
(5)

On the other hand, the maximum error emax1 should be less than the used-defined error tolerance \(\varepsilon\); the value of d1 can be expressed as

$${e}_{\mathrm{max}1}=\frac{1}{2}{d}_{1}\mathrm{cos}\left({0.5\alpha }_{1}\right)\le \varepsilon \Rightarrow {d}_{1}\le \frac{2\varepsilon }{\mathrm{cos}\left({05\alpha }_{1}\right)}$$
(6)

The NURBS control points calculated by Eqs. (4) and (6) can guarantee that the first, second, and third derivations at the junction of the involute (or cycloid) segment and NURBS segment are continuous, and the maximum error is within the preset tolerance limit \(\varepsilon\).

3.2 Transition NURBS curve between cycloid and arc segments

In the same way, Q0 is defined as junction point of the inserted NURBS curve and cycloid segment, Q6 is defined as junction point of the inserted NURBS curve and arc segment, and Q3 is the junction point of cycloid and arc segments, as shown in Fig. 6. To maintain the C3 continuity and symmetry at the junction between the cycloid (or arc) segment and the inserted NURBS segment, the first three control points Q0, Q1, and Q2 and the last three control points Q4, Q5, and Q6 should be located on the two adjacent curves respectively.

Fig. 6
figure 6

Corner smoothing between the cycloid and arc segments

The detailed algorithm of the control point position is the same as that in Sect. 3.1.

3.3 Transition error analysis

The transition errors at the two corners are presented in Table 1. The predefined toolpath error tolerance is set to 0.08 mm. It can be seen from Table 1 that the transition errors are all constrained well within the predefined tolerance.

Table 1 Transition errors at the two corners

4 Acceleration/deceleration planning and simulation experiments of inserted transition NURBS curves

After smoothing the trajectory of two adjacent curves, the feedrate needs to be planned. A seven phase S-curve acceleration/deceleration profile is adopted in this paper. The complete S-curve profile can usually be divided into seven phases (I, II, III, IV, V, VI, VII), as illustrated in Fig. 7. Phases I, II, and III are defined as the accelerate phase, phase IV is defined as the constant phase, and phases V, VI, and VII are defined as the deceleration phase.

Fig. 7
figure 7

The complete S-curve acceleration/deceleration profile

The transition NURBS curve length should be accurately calculated before feedrate planning.

The NURBS curve length from point to point is expressed as

$$\begin{array}{c}L={\int }_{{u}_{1}}^{{u}_{2}}\Vert {C}^{^{\prime}}\left(u\right)\Vert ={\int }_{{u}_{1}}^{{u}_{2}}\sqrt{{\left[{x}^{^{\prime}}\left(u\right)\right]}^{2}+{\left[{y}^{^{\prime}}\left(u\right)\right]}^{2}+{\left[{z}^{^{\prime}}\left(\mathrm{u}\right)\right]}^{2}du}\\ ={\int }_{{u}_{1}}^{{u}_{2}}f\left(u\right)du\end{array}$$
(7)

At present, there is no feasible analytical solution to calculate the length of NURBS curve. However, using Simpson’s rule with an adaptive bisection technique, the NURBS curve length can be calculated numerically within a specific tolerance [14]. Suppose \(h=\frac{{u}_{2}-{u}_{1}}{l}\), \({u}_{k}={u}_{1}+kh,k=\mathrm{0,1},\cdots ,2m\).

We can deduce

$$L=\frac h3(f\left(u_1\right)+4\sum_{k=0}^{m-1}f\left(u_{2k+1}\right)+2\sum_{k=1}^{m-1}f\left(u_{2k}\right)+f\left(u_{2k}\right))$$
(8)

We can calculate that the length of transition curve L1 between involute and cycloid segments is 1.504 mm and the length of transition curve L2 between cycloid and arc segments is 2.098 mm.

4.1 Feedrate planning based on axial kinematic constraints

In order to avoid violating acceleration limits at the critical points with maximum curvature, the maximum feedrate Vmax at the critical points will be decided as follows:

$${V}_{\mathrm{max}}=\mathrm{min}\left(\sqrt{\frac{{\mathrm{A}}_{\mathrm{max}}}{{K}_{\mathrm{max}1}},}\sqrt{\frac{{\mathrm{A}}_{\mathrm{max}}}{{K}_{\mathrm{max}2}}},\sqrt[3]{\frac{{J}_{\mathrm{max}}}{{K}_{\mathrm{max}1}^{2}}},\sqrt[3]{\frac{{J}_{\mathrm{max}}}{{K}_{\mathrm{max}2}^{2}}},F\right)$$
(9)

where \({K}_{\mathrm{max}1}\), \({K}_{\mathrm{max}2}\), Amax, Jmax, and F are the curvature at the middle point of the first corner, the curvature at the middle point of the second corner, the given maximum acceleration, the given maximum jerk, and the programmed feedrate F. The maximum curvature is exactly in the midpoint of the transition curve.

The curvature at the middle point of the first corner can be expressed as

$${K}_{\mathrm{max}1}=\frac{\Vert \dot{P}\left(0.5\right)\times \ddot{P}\left(0.5\right)\Vert }{{\Vert \dot{P}\left(0.5\right)\Vert }^{3}}$$

where \(\dot{P}\left(u\right)\) and \(\ddot{P}\left(\mathrm{u}\right)\) are the 1st- and 2nd-order derivatives of P(u) with respect to u, respectively.

In the same way, the curvature at the middle point of the second corner can be expressed as

$${K}_{\mathrm{max}2}=\frac{\Vert \dot{Q}\left(0.5\right)\times \ddot{Q}\left(0.5\right)\Vert }{{\Vert \dot{Q}\left(0.5\right)\Vert }^{3}}$$

where \(\dot{Q}\left(u\right)\) and \(\ddot{Q}\left(\mathrm{u}\right)\) are the 1st- and 2nd-order derivatives of Q(u) with respect to u, respectively.

The proposed S-curve feedrate planning algorithm is implemented by MATLAB software on a personal computer with a 64-bit operating system. The simulation parameters are set as follows: interpolation period T = 1 ms, the allowable maximum acceleration Amax = 8 m/s2, and the allowable maximum jerk Jmax = 40 m/s3. In this paper, the maximum feedrate Vmax can be solved by Eq. (9): Vmax = 3.2 m/s.

4.2 Motion simulation of transition NURBS curve between involute and cycloid segments

Since the length L1 of the transition NURBS curve between involute and cycloid segment is 1.504 mm, if the complete S-curve acceleration and deceleration conditions can be satisfied \(L\ge {2JT}_{1}^{3}+{3JT}_{1}^{2}{T}_{2}+{JT}_{1}{T}_{2}^{2}\)

$${T}_{1}=\frac{{A}_{\mathrm{max}}}{{J}_{\mathrm{max}}}=\frac{8}{40}=0.2\left(s\right)$$
$${T}_{2}=\frac{{V}_{\mathrm{max}}}{{A}_{\mathrm{max}}}-{T}_{1}=\frac{3.2}{8}-0.2=0.2\left(s\right)$$
$$\begin{array}{c}L\ge {2JT}_{1}^{3}+{3JT}_{1}^{2}{T}_{2}+{JT}_{1}{T}_{2}^{2}\\ =2\times 40\times {0.2}^{3}+3\times 40\times {0.2}^{2}\times 0.2+40\times 0.2\times {0.2}^{2}\\ =1.92\left(mm\right)\end{array}$$

Because L1 = 1.504 mm < 1.92 mm, L1 cannot satisfy the complete S-curve acc/dec conditions. At this time, constant feedrate time is T4 = 0.

In this situation, variable acc/dec time is as follows:

$${T}_{1}={T}_{3}={T}_{5}={T}_{7}=\frac{{A}_{\mathrm{max}}}{{J}_{\mathrm{max}}}=\frac{8}{40}=0.2\left(s\right)$$

Constant acc/dec time T2 can be obtained from the formula of S-curve acc/dec control algorithm [15]:

$$\begin{array}{c}{T}_{2}=\frac{-{3JT}_{1}^{2}+\sqrt{{\left({3JT}_{1}^{2}\right)}^{2}+{4JT}_{1}\left({L}_{1}-{2JT}_{1}^{3}\right)}}{{2JT}_{1}}\\ =\frac{-4.8+\sqrt{{4.8}^{2}+32\left(1.5036-0.64\right)}}{16}=0.145\left(s\right)\end{array}$$

The feedrate, acceleration, and jerk curves of the transition curve L1 are shown in Fig. 8, Fig. 9, and Fig. 10.

Fig. 8
figure 8

The feedrate curve of the transition curve L1

Fig. 9
figure 9

The acceleration curve of the transition curve L1

Fig. 10
figure 10

The jerk curve of the transition curve L1

4.3 Motion simulation of transition NURBS curve between cycloid and arc segments

The length L2 of the transition NURBS curve between cycloid and arc segments is 2.098 mm. Because L2 = 2.098 mm > 1.92 mm, L2 can satisfy the complete S-curve acc/dec conditions.

In this situation, variable acc/dec time:

$${T}_{1}={T}_{3}={T}_{5}={T}_{7}=\frac{{A}_{\mathrm{max}}}{{J}_{\mathrm{max}}}=\frac{8}{40}=0.2\left(s\right)$$

Constant acc/dec time:

$${T}_{2}={T}_{6}=\frac{{V}_{\mathrm{max}}}{{A}_{\mathrm{max}}}-{T}_{1}=\frac{3.2}{8}=0.2=0.2\left(s\right)$$

Constant feedrate time:

$$\begin{array}{c}{T}_{4}=\frac{L-\left({2JT}_{1}^{3}+{3JT}_{1}^{2}{T}_{2}+{JT}_{1}{T}_{2}^{2}\right)}{{V}_{\mathrm{max}}}\\ =\frac{2.098-\left(2\times 40\times {\left(0.2\right)}^{3}+3\times 40\times {\left(0.2\right)}^{3}+40\times {\left(0.2\right)}^{3}\right)}{3.2}\\ =0.56\left(s\right)\end{array}$$

The feedrate, acceleration, and jerk curves of the transition curve L2 are shown in Fig. 11, Fig. 12, and Fig. 13.

Fig. 11
figure 11

The feedrate curve of the transition curve L2

Fig. 12
figure 12

The acceleration curve of the transition curve L2

Fig. 13
figure 13

The jerk curve of the transition curve L2

5 Machining experiments of screw rotor and accuracy measurement

Screw rotor machining experiments are carried out on four-axis CNC machine tool in the paper. The milling mechanism is shown in Fig. 14. End profile curve of the rotor is formed by interpolation motion of Y-axis and Z-axis. X-axis and A-axis interpolation motions drive the rotor to produce helical motion.

Fig. 14
figure 14

Milling mechanism of screw rotor

5.1 Machining experiments of screw rotor

In the paper, RIFA-RFMV80 vertical machining center (as shown in Fig. 15) was selected to carry out NC milling of screw rotor. The design parameters of screw rotor selected in the paper are shown in Table 2.

Fig. 15
figure 15

RFMV80 vertical machining center

Table 2 Helical surface parameters of screw rotor

The milling technology parameters selected in the machining process are shown in Table 3.

Table 3 Milling technology parameters of screw rotor

Figure 16 shows the machining process of screw rotor with spherical milling cutter on the four-axis machining center.

Fig. 16
figure 16

Screw motor machining process

5.2 Machining accuracy measurement of screw rotor

The instrument configuration of the measuring system for the screw rotor profile, as shown in Fig. 17, is composed of a mechanical unit and measurement unit. The mechanical unit, a 4-axis motion system, is composed of an X-axis, Y-axis, Z-axis, and rotational A-axis. The measured screw rotor is fixed on Fig. 17A-axis; the probe is installed on the Z-axis.

Fig. 17
figure 17

4-axis measuring system

RENISHAW OMP40 probe system is used to measure the surface of screw motor, and the measurement software used is PowerINSPECT of Delcam company. Eighty-four measuring points of four measuring curves close to the two transition curves on the rotor surface are measured, and 21 measuring points are selected on each curve, as shown in Fig. 18.

Fig. 18
figure 18

Location diagram of 84 measured points

After the measurement, the error between the actual measured surface and the design surface is shown in Fig. 19. From Fig. 19, the actual minimum measurement error of the measured curves L1 and L2 at the first corner is 0.038 mm, and the actual minimum measurement error of the measured curves L3 and L4 at the second corner is 0.045 mm, both of which are higher than the calculation estimation error of end section of the screw rotor in Table 1. This is because the actual measurement error includes many aspects, such as measurement error, machining error, positioning error, and so on. Of course, it also includes the calculation estimation error. The calculation estimation error of end section of the screw rotor is close to the actual measured value, which can be used as a reference for machining error modeling of screw rotor. The actual maximum measurement error is 0.065 mm; the error is within the allowable tolerance range of 0.08 mm.

Fig. 19
figure 19

Error comparison of measured points

6 Conclusion

High-order corner smoothing algorithms are important to guarantee the high-speed and high-precision machining of screw rotor. This paper proposes a continuous NURBS curve between two different curves on the end profile of screw rotor by considering local transition scheme and corresponding feedrate scheduling scheme comprehensively. In the stage of toolpath smoothing, not only the control points of the inserted NURBS curve can be calculated but also the maximal deviation error is also guaranteed. In the stage of feedrate planning, an efficient algorithm of jerk-continuous feedrate scheduling is proposed. The simulation results prove that the proposed local corner smoothing method can generate smooth trajectory with geometric constraints. Experiments on four-axis machine tool verify the efficiency of the proposed algorithm. To evaluate machining accuracy of screw rotor, the surface error is measured on the 4-axis measuring system. The results show the maximum measurement error is within the allowable tolerance range. Moreover, the method adopted in the paper can also be used to deal with some other curve transition problems.