This application claims priority under 35 U.S.C. §119 and/or §365 to Japanese Application No. 2012-033897 filed Feb. 20, 2012, the entire contents of which are incorporated herein by reference.
1. Field of the Invention
The present invention relates to a numerical controller that performs machining by creating a curve for machining (machining curve) based on a command point sequence obtained from a machining program for a machine tool having a plurality of drive axes including at least two linear axes, interpolating the machining curve, and driving the drive axes to the interpolated positions on the machining curve.
2. Description of the Related Art
Conventionally, with a numerical controller that controls a machine tool, a method of creating a curve or a straight line from a supplied point sequence and interpolating the curve or the straight line is known.
<1> Curve Creation
1-1. A spline curve when a starting point condition at a starting point and an ending point condition at an ending point of a command point sequence are specified
Generally, when a point sequence P0, P1, P2, . . . , Pn, a first-derivative vector P0′ as a starting point condition at a starting point of the point sequence, and a first-derivative vector Pn′ as an ending point condition of an ending point of the point sequence are given as shown in
Expression (1) below holds for first-derivative vectors (P0′, P1′, P2′, . . . , Pn′)T at the respective points, where “T” denotes transposition. However, hereinafter, the sign will be omitted whenever self-evident. t1, t2, . . . , tn denote differences in values of parameters (cubic function parameters t) of a created cubic function between the respective points P0, P1, P2, . . . , Pn and is generally expressed as distances (curve lengths) between the respective points P0, P1, P2, . . . , Pn of the created cubic function. However, a cubic function cannot be determined unless P0′, P1′, P2′, . . . , Pn′ are determined, and the distances (curve lengths) between the respective points P0, P1 P2, . . . , Pn of a curve representing a cubic function cannot be determined unless the cubic function is determined. Therefore, the distances (curve lengths) between the respective points P0, P1, P2, . . . Pn are often approximated by linear distances between the respective points P0, P1, P2, . . . , Pn. For example, a linear distance between P0 and P1 is denoted by t1, a linear distance between P1 and P2 is denoted by t2, . . . , and a linear distance between Pn-1 and Pn is denoted by tn. Moreover, a first-derivative vector and a second-derivative vector respectively refer to values at each point (values of parameter t at each point) of a first-order differentiation and a second-order differentiation of a cubic function by the parameter t.
In this case, P0, P1, P2, . . . , Pn and P0′, P1′, P2′, . . . , Pn′ are vectors having elements corresponding to at least two linear axes. Depending on machine construction, the vectors may have elements of third, fourth, . . . linear axes or elements of rotational axes in addition to the two linear axes.
Therefore, since P0′, Pn′, P0, P1, P2, . . . , Pn are given by Expression (1) above and t1, t2, . . . , tn can be derived from P0, P1, P2, . . . , Pn, P′=(P0′, P1′, P2′, . . . , Pn′)T can be determined. In other words, if Expression (1) is represented by Expression (2) below, then P′ can be determined as represented by Expression (3).
M*P′=B (2)
P′=M−1*B (3)
Once P′ can be determined, a function of a cubic curve between the respective points can be derived from P0, P1, P2, . . . , Pn. In other words, a function fi(t) (i=0, 1, 2, . . . , n-1; 0≦t≦ti+1) of a cubic curve between Pi and Pi+1 which is expressed as represented by Expression (4) below can be derived from Pi, Pi+1, Pi′, Pi+1′. Therefore, from command point sequence positions (P0, P1, P2, . . . , Pn), a starting point condition (in this case, P0′), and an ending point condition (in this case, Pn′), a function representing a cubic curve between the respective points such that first-derivative vectors and second-derivative vectors at each point are continuous can be derived. Afi, Bfi, Cfi, Dfi are coefficients of the function fi(t). The coefficients and the function fi(t) are vectors having elements corresponding to the number of axes in a similar manner to P0, P1, P2, . . . , Pn.
fi(t)=Afi*t3+Bfi*t2+Cfi*t+Dfi (4)
fi(t) may be determined as follows. When fi(t) is expressed as represented by Expression (4) above, fi′(t) may be expressed as represented by Expression (5) below. Therefore, Expression (6) holds, and by solving Expression (6) to derive Afi, Bfi, Cfi, and Dfi, the function fi(t) can be determined.
fi′(t)=3*Afi*t2+2*Bfi*t+Cfi (5)
fi(0)=Dfi=Pi
fi(ti+1)=Afi*ti+13+Bfi*ti+12+Cfi*ti+1+Dfi=Pi+1
fi′(0)=Cfi=Pi′
fi′(ti+1)=3*Afi*ti+12+2*Bfi*ti+1+Cfi=Pi+1′ (6)
A group of cubic curves determined in this manner is referred to as a spline curve. Since first-derivative vectors and second-derivative vectors at each point of a spline curve are continuous, a smooth machining shape and a smooth operation with continuous acceleration of each drive axis are obtained.
However, this method requires calculations be performed by reading in all command point sequence positions (P0, P1, P2, . . . , Pn). As the number of points constituting the command point sequence increases, the scale of matrix calculation becomes enormous and necessitates a large memory region and a long computation time.
Moreover, while a condition that P0′ and Pn′ are specified has been adopted above, it is known that an expression approximately similar to Expression (1) above may be derived by adopting the following conditions. As described above, a condition at P0 is referred to as a starting point condition and a condition at Pn is referred to as an ending point condition.
Therefore, even when conditions such as given above are adopted, a function fi(t) (i=0, 1, 2, . . . , n−1; 0≦t≦ti+1) of a cubic curve between Pi and Pi+1 can be determined in an approximately similar manner.
1-2. Creating a curve of a cubic function that sequentially connects points constituting a command point sequence
A method disclosed in Japanese Patent Application Laid-open No. 2-113305 (corresponding to U.S. Pat. No. 5,140,236) is a method of sequentially determining cubic expressions between points by deriving a first-derivative vector from a predetermined number of points including a starting point, deriving a cubic expression between the starting point and a next point based on coordinate values of predetermined points including the starting point, an end-point condition of the starting point, and the first-derivative vector, determining a spline curve between the starting point and a point subsequent to the starting point, and adding a new next point in place of the starting point. According to this method, a cubic spline curve is created without having to read in all points constituting a command point sequence. Although this method is advantageous in that a practically acceptable spline curve can be obtained by sequentially reading in points that constitute a command point sequence without increasing error from the theoretical spline curve described in “<1> Curve creation, 1-1” above, the method is problematic in that
(a) since a cubic spline curve is sequentially created between points while reading in points that constitute a command point sequence, if intervals between the points are small, a capacity of a numerical controller for creating and interpolating a cubic spline curve becomes insufficient and the numerical controller decelerates movements of axes, and
(b) if positions of the command point sequence are varied due to error with respect to a target curve, the created curve ends up being similarly varied.
<2> Thinning Out
Japanese Patent Application Laid-open No. 10-49215 discloses a method of performing straight-line approximation on a command point sequence and thinning-out points that correspond to approximated points. This method is problematic in that, since the command point sequence is approximated by a straight line, the approximated point sequence does not have a smooth shape.
<3> Correcting Command Point Positions
Japanese Patent Application Laid-open No. 10-240328 discloses a method of correcting positions of command points within a range of a permissible value so that the command points line up in a smooth manner. With this method, when a point sequence having small intervals between command points is commanded, processing capacity may become insufficient and deceleration may occur. Since the method of correcting command point positions involves creating an curve for approximation from several consecutive points (for example, five points) and correcting command point positions toward the curve, when positions of a command point sequence that is an approximated curve creation object have similar errors with respect to a target curve such as shown in FIG. 3, a correction that approximates the target curve cannot be performed due to the effect of the errors. In FIG. 3, tips of arrows depicting respective created curves indicate corrected positions of a command point sequence.
In consideration thereof, it is an object of the present invention to provide a numerical controller with a machining curve creating function which is capable of creating a single cubic curve (segment curve) corresponding to the maximum number of command points, connecting a plurality of such cubic curves (segment curves) to create a curve for machining (machining curve), interpolating the machining curve, and performing machining with a machine tool by driving a plurality of drive axes (including at least two linear drive axes) of the machine tool to the interpolated positions of the machining curve.
The present invention relates to a numerical controller with a machining curve creating function which is capable of creating a single cubic curve (segment curve) corresponding to the maximum number of command points, connecting a plurality of such cubic curves (segment curves) to create a machining curve that is a curve for machining, interpolating the machining curve, and performing machining by driving the drive axes to the interpolated positions on the machining curve, wherein respective cubic curves (segment curves) are connected to each other so that second-derivative vectors of cubic functions that represent the respective cubic curves (segment curves) are “continuous”, a machining curve is created as a group of cubic curves (spline curves) created in this manner, and creation of such a machining curve is performed without reading in all points constituting a command point sequence (refer to
The numerical controller with a machining curve creating function according to the present invention performs machining by creating a machining curve that is a curve for machining based on a command point sequence obtained from a machining program for a machine tool having a plurality of drive axes including at least two linear axes, interpolating the machining curve, and driving the drive axes to the interpolated positions on the machining curve. In addition, the numerical controller comprises: a segment curve creating unit which divides the command point sequence into a plurality of segments, and creates a segment curve that is a curve corresponding to a segment command point sequence of each of the segments, so that a distance of the segment curve from the segment command point sequence is within a permissible value set in advance and a maximum number of command points are included between a segment starting point that is a starting point of the segment command point sequence and a segment ending point that is an ending point of the segment command point sequence; and a machining curve creating unit which creates the machining curve by repetitively executing the process of the segment curve creating unit from a starting point to an ending point of the command point sequence. Subsequently, the machining curve is interpolated and the drive axes are driven so as to move to the interpolated positions on the machining curve.
With respect to a segment command point sequence which is the command point sequence in a segment that starts at the starting point of the command point sequence, the segment curve creating unit is capable of : determining a segment starting point vector and a segment ending point vector, based on the starting point, a starting point condition that is a condition for the starting point, a segment ending point that is an ending point of the segment command point sequence, and a command point sequence constituted by a predetermined number of points after the segment ending point, as first-derivative vectors of the machining curve at the starting point and the segment ending point; creating the segment curve from the starting point, the segment starting point vector, the segment ending point, and the segment ending point vector; creating a first segment curve so that a distance of the first segment curve from the segment command point sequence is within a permissible value set in advance and a maximum number of command points are included between the starting point and the segment ending point; after creating the first segment curve, with respect to a segment command point sequence in a segment subsequent to the command ending point of the command point sequence, setting a segment ending point preceding the segment as a new segment starting point, setting a segment ending point vector preceding the segment as a new segment starting point vector, and setting an ending point of the segment command point sequence as a new segment ending point; determining a new segment ending point vector as a first-derivative vector of the machining curve at the segment ending point based on the new segment starting point, the new segment starting point vector, the new segment ending point, and a command point sequence constituted by a predetermined number of points after the new segment ending point; creating the segment curve from the new segment starting point, the new segment starting point vector, the new segment ending point, and the new segment ending point vector; and creating the segment curve so that a distance of the machining curve from the segment command point sequence is within a permissible value set in advance and a maximum number of command points are included between the segment starting point and the segment ending point.
According to the starting point condition, a tangential direction at a starting point of an arc connecting the starting point, a second point, and a third point of the command point sequence may be set as a first-derivative vector of the machining curve, or a tangential direction at a starting point of a quadratic curve connecting the starting point, the second point, and the third point of the command point sequence may be set as a first-derivative vector of the machining curve, or a tangential direction at a starting point of a straight line connecting the starting point and the second point of the command point sequence may be set as a first-derivative vector of the machining curve.
According to the starting point condition, a second-derivative vector of the machining curve at a starting point of the command point sequence may be set to zero.
Including the maximum number of command points between the segment starting point and the segment ending point can be realized by identifying, while increasing or reducing the number of skips ns, a maximum ns such that all of the following hold:
The command point sequence may be a point sequence of command points commanded by a machining program or a point sequence produced by performing smoothing on a point sequence of command points commanded by the machining program.
According to the present invention, a numerical controller with a machining curve creating function can be provided which is capable of creating a single cubic curve (segment curve) corresponding to the maximum number of command points, connecting a plurality of such cubic curves (segment curves) to create a curve for machining (machining curve), interpolating the machining curve, and performing machining with a machine tool by driving a plurality of drive axes (including at least two linear drive axes) of the machine tool to the interpolated positions of the machining curve.
These and other objects and features of the present invention will become apparent when the following description of preferred embodiments of the present invention is considered in connection with the drawings, in which:
In the present invention, a single cubic curve (segment curve) is created which corresponds to a point sequence including the maximum number of command points. A plurality of such cubic curves is connected to create a curve for machining (a machining curve), the machining curve is interpolated, and machining is performed by driving drive axes of a machine tool to the interpolated positions on the machining curve. The plurality of cubic curves are connected so that second-derivative vectors of cubic functions that represent the respective cubic curves are continuous among the cubic curves. In this case, continuous means practically continuous and not theoretically continuous. The machining curve is created as a group of cubic curves (spline curve) created in this manner. Creation of such a machining curve is sequentially performed without reading in all points constituting a command point sequence (
Accordingly, the following aims can be achieved.
Hereinafter, a first embodiment of a numerical controller with a machining curve creating function according to the present invention will be described.
<Outline>
Processes performed by a segment curve creating unit that is a critical part of the present invention will now be outlined. More specifically, in a case where a given point Ps(k) of a command point sequence P0, P1, P2, . . . , Pn having P0 as a starting point and Pn as an ending point and a first-derivative vector Ps(k)′ at the point Ps(k) have already been determined, a method of creating a cubic function for a segment curve that is a cubic curve having Ps(k) as a starting point will be outlined. Subscripts in the command point sequence P0, P1, P2, . . . , Pn represent numbers of command points.
k denotes the number of a segment curve to be created. k is incremented per segment curve by one so that k=0 for a first segment curve starting at P0, k=1 for a next segment curve, and so on. s(k) denotes the number of a command point of a segment starting point that is a starting point of a (k+1)th segment curve. e(k) denotes the number of a command point of a segment ending point that is an ending point of the (k+1)th segment curve. In other words, the (k+1) th segment curve is a cubic curve having a command point Ps(k) as a segment starting point and a command point Pe(k) as a segment ending point.
Ps(k) denotes a position of the segment starting point, Ps(k)+ns denotes a position of the segment ending point, Ps(k)′ denotes a segment starting point vector (a first-derivative vector of a segment curve at the segment starting point), and Ps(k)+ns′ denotes a segment ending point vector (a first-derivative vector of a segment curve at the segment ending point). Hereinafter, Px (x=0, 1, . . . , n; x=s(k), s(k)+ns, and so on) denotes points as well as positions thereof.
Determine a first-derivative vector Ps(k)+ns+3′ at Ps(k)+ns+3. For example, create an arc or a quadratic curve (parabola) that passes through the three points Ps(k)+ns+1, Ps(k)+ns+2, and Ps(k)+ns+3 and adopt a tangential direction at the point Ps(k)+ns+3 on the arc or the quadratic curve as Ps(k)+ns+3′, or adopt a tangential direction of a straight line passing through the two points Ps(k)+ns+2 and Ps(k)+ns+3 as Ps(k)+ns+3′.
Moreover, while the first-derivative vector Ps(k)+ns+3′ at Ps(k)+ns+3 is used in this case, as described earlier in “<1> Curve creation, 1-1”, other conditions (second-derivative vector Ps(k)+ns+3″=0) can be adopted (to be described in the second embodiment).
where t1 to t4 are as defined in Expression (8-2) below.
Moreover, the entire inverse matrix on the right-hand side of Expression (8-1) above need not be determined. By determining the second row of the inverse matrix on the right-hand side of Expression (8-1), Ps(k)+ns′ can be determined.
The four coefficients Agk, Bgk, Cgk, and Dgk can be derived from four conditions Ps(k), Ps(k)+ns, Ps(k)′, and Ps(k)+ns′ in a similar manner to that described with reference to Expressions (5) and (6) above. In other words, when gk (t) is expressed as represented by Expression (9) above, gk′ (t) may be expressed as represented by Expression (10) below. Therefore, Expression (11) holds, and by determining Agk, Bgk, Cgk, and Dgk by solving Expression (11), the function gk(t) can be determined.
gk′(t)=3*Agk*t2+2*Bgk*t+Cgk (10)
gk(0)=Dgk=Ps(k)
gk(tk)=Agk*tk3+Bgk*tk2+Cgk*tk+Dgk=Ps(k)+ns
i gk′(0)=Cgk=Ps(k)′
gk′(tk)=3*Agk*tk2+2*Bgk*tk+Cgk=Ps(k)+ns′ (11)
As an additional note, this fk(t) is not the same as fi(t) described in “<1> Curve creation, 1-1”.
Afk=Agk, Bfk=Bgk, Cfk=Cgk, Dfk=Dgkfk(t)=Afk*t3+Bfk*t2+Cfk*t+Dfk (14)
In this case, as described in [8] or [9], by determining the cubic function fk(t) by identifying a maximum ns that allows all of Expression (13) to hold, while setting the initial number of skips nsi to the first ns and varying ns to ns=ns+1 or ns=sn−1 (or increasing or decreasing ns), a segment curve is created so that the distance of the segment curve from a segment command point sequence is within a permissible value set in advance and the maximum number of command points are included between a segment starting point that is a starting point of the segment command point sequence and a segment ending point that is an ending point of the segment command point sequence.
Moreover, while an appropriate ns is determined in this case by setting nsi to the first ns and varying ns to ns=ns+1 or ns=ns−1, a segment curve can also be determined by identifying an appropriate ns while significantly varying ns using a bisection method instead of ns=ns+1 or ns=ns−1. For example, ns=2*ns may be used instead of ns=ns+1 and ns=INT (ns/2) may be used instead of ns=ns−1, where INT denotes integer number. Alternatively, an appropriate ns may be determined by sequentially varying ns from 1 while setting nsi=1 and ns=ns+1. There are various other methods of determining an appropriate ns. Since such methods are conventional art, a detailed description will not be given herein.
Moreover, while a segment curve is assumed to be a cubic curve expressed by a cubic polynomial as represented by Expressions (9) and (14) above, the techniques according to the present invention can also be applied to a lower-order quadratic curve or to curves of the fourth or higher orders. In addition, the present invention is also applicable to other curves such as a NURBS curve or a Bezier curve.
<Machining Program>
Details of processes performed on the command point sequence P0, P1, P2, . . . , Pn will be described with reference to the flowcharts shown in
<Machining Curve Creation>
A process performed by the machining curve creating unit will be described in detail with reference to the flow chart shown in
Moreover, as already described in “<1> Curve creation, 1-1”, P0″=0 can also be adopted as the starting point condition (to be described in the second embodiment).
A process performed by the segment curve creating unit will be described in detail with reference to the flow chart shown in
A process for creating a function gk(t) which is called and activated by the process performed by the segment curve creating unit will now be described in detail with reference to a flow chart shown in
Moreover, since nc=3, cases where Ps(k)+ns, . . . , Ps(k)+ns+3 are not prepared beyond the ending point are the two cases respectively represented by Expressions (15-1) and (15-2) below and by Expressions (16-1) and (16-2) below. However, even if nc>3, a calculation of a case where Ps(k)+ns, . . . , Ps(k)+ns+nc are not prepared beyond the ending point can be performed in a similar manner.
<When s(k)+ns+1=n (when Ps(k)+ns+1 is an ending point Pn and a command point sequence beyond the ending point Pn is not prepared)>
(
where t1 and t2 are as defined in Expression (15-2) below.
<When s(k)+ns+2=n (when Ps(k)+ns+2 is an ending point Pn and a command point sequence beyond the ending point Pn is not prepared) >
(
where t1, t2, and t3 are as defined in Expression (16-2) below.
A process for end discrimination which is called and activated by the process performed by the machining curve creating unit will now be described in detail with reference to a flow chart shown in
Due to these processes, with the segment curve creating unit which creates a segment curve that is a curve corresponding to a segment command point sequence of each segment of a command point sequence, a segment curve can be created so that the distance of the segment curve from the segment command point sequence is within a permissible value set in advance and the maximum number of command points are included between a segment starting point that is a starting point of the segment command point sequence and a segment ending point that is an ending point of the segment command point sequence, and with the machining curve creating unit, the process of the segment curve creating unit can be repetitively executed from a starting point to an ending point of the command point sequence to create a machining curve.
While a machining curve and a segment curve have been created using X, Y, and Z axes as drive axes of a machine tool, a machining curve and a segment curve can also be created with respect to drive axes including a rotational axis in a multiaxial machine capable of controlling tool directions with the rotational axis. Furthermore, a machining curve and a segment curve can also be created in tool directions commanded by vectors such as (I, J, K) by handling such tool directions in a similar manner to drive axes. In other words, in a similar manner to representing a point sequence or a curve on the (X, Y, Z) coordinate system, processes similar to those of the present embodiment may be performed by representing a tool direction on an (I, J, K) coordinate system, interpolating a machining curve created on the (I, J, K) coordinate system and adopting an interpolated position as a tool direction on the (I, J, K) coordinate system, transforming the interpolated tool direction into a position of a rotational axis that controls the tool direction, and driving the rotational axis.
Next, a second embodiment of a numerical controller with a machining curve creating function according to the present invention will be described.
As the second embodiment, an example will be described in which second-derivative vector P0″=0 at a starting point in a similar manner to that described in “<1> Curve creation, 1-1” is adopted as a starting point condition as described in <Machining curve creation> in the first embodiment. Moreover, in the second embodiment, another condition (second-derivative vector Ps(k)+ns+3″=0) such as that described in “<1> Curve creation, 1-1” is adopted as a condition at Ps(k)+ns+3 instead of the first-derivative vector Ps(k)+ns+3 described in <Outline> [3] of the first embodiment. While a first-derivative vector Ps(k)+ns+3′ such as that described in the first embodiment may also be used, a second-derivative vector Ps(k)+ns+3″=0 is adoted as a condition at Ps(k)+ns+3 in the second embodiment in order to show that various starting point conditions and ending point conditions can be combined as described in “<1> Curve creation, 1-1”.
In this case, Expressions (7), (8-1), and (8-2) in the first embodiment in the creation of a first segment curve become Expressions (17), (18-1), and (18-2) below. Expression (17) differs from Expression (7) above in first and last rows of a left-hand matrix and in first and last elements of a right-hand vector. Expression (18-1) differs from Expression (8-1) above in a similar manner. k=0 and s(0)=0. Ps(0)′ and Ps(0)+ns′ can be determined from Expressions (18-1) and (18-2), and a function g0(t) can be derived from Ps(0)′, Ps(0)+ns′, Ps(0), and Ps(0)+ns using Expressions (9), (10), and (11). This is a function that represents a first segment curve.
where t1 to t4 are as defined in Expression (18-2) below.
Expressions (7), (8-1), and (8-2) in the first embodiment in segment curve creation after creation of the first segment curve become Expressions (19), (20-1), and (20-2) below. Expression (19) differs from Expression (7) in a last row of the left-hand matrix and a last element of the right-hand vector. Expression (20-1) differs from Expression (8-1) in a similar manner. Ps(k)+ns′ can be determined from Expressions (20-1) and (20-2), and a function gk(t) can be derived from Ps(k)′, Ps(k), and Ps(k)+ns already determined upon the previous segment curve creation using Expressions (9), (10), and (11). This is a function that represents a segment curve after creating the first segment curve.
where t1 to t4 are as defined in Expression (20-2) below.
Since other processes are similar to those in the first embodiment, a description thereof will be omitted.
Next, a third embodiment of a numerical controller with a machining curve creating function according to the present invention will be described.
While a point sequence of command points that are commanded by a machining program has been adopted as a command point sequence in the first and second embodiments, a point sequence produced by performing smoothing on a point sequence of command points that are commanded by a machining program is adopted as the command point sequence in the present third embodiment. Techniques for smoothing are conventional art and the present embodiment combines such smoothing techniques with the present invention.
For example, a simple smoothing method is as follows. With respect to an original point sequence P1, . . . , Pn−1 extracted from a command point sequence commanded by a machining program by excluding a starting point P0 and an ending point Pn thereof, smoothing which averages Pi and two preceding and subsequent points thereof (Pi−1 and Pi+1) is performed as represented by Expression (21) below to create a new command point sequence P0, P1, . . . , Pn−1, Pn.
Alternatively, another simple smoothing method is as described below. With respect to an original point sequence P0, P1, . . . , Pm−1, Pm commanded by a machining program, smoothing which creates a midpoint with the exception of a starting point P0 and an ending point Pm thereof is performed as represented by Expression (22) below to create a new command point sequence P0, P1, . . . , Pn−1, Pn. In this case, since the number of points increases by one compared to the original point sequence P0, P1, . . . , Pm−1, Pm, n=m+1 is set. In “new command point sequence” shown in a lower half of
Besides these simple smoothing methods, the present invention can be combined with various smoothing methods known as conventional art.
<Block Diagram>
Next, a first embodiment of the numerical controller according to the present invention will be described with reference to
The numerical controller performs machining by creating a machining curve that is a curve for machining based on a command point sequence obtained from a machining program for a machine tool having a plurality of drive axes including at least two linear axes, interpolating the machining curve, and driving the drive axes to the interpolated positions on the machining curve. In the numerical controller, a command reading/analyzing unit 2 reads and analyzes commands from the machining program to create interpolation data, an interpolating unit 8 performs interpolation based on the interpolation data and according to a command speed to determine positions to which the respective axes are to be moved, and servos of the respective axes are driven to these positions.
In the present invention, the command reading/analyzing unit 2 reads commands of a machining program and activates a machining curve creating unit 4. The machining curve creating unit 4 activates a segment curve creating unit 6, creates a single segment curve as a machining curve, and sets the segment curve to interpolation data. The segment curve (a part of the machining curve) set to the interpolation data is interpolated by the interpolating unit 8, and the respective drive axes (X, Y, and Z axes servos 10, 12, and 14) are driven to the interpolated positions . The creation of such segment curves, the setting of the segment curves to interpolation data, and the interpolation process thereof are repetitively and consecutively executed. Since techniques used by the interpolating unit 8 to interpolate a machining curve are conventional art, no particular description thereof will be given.
Next, advantageous effects of the present invention will be described. The present invention produces the following advantageous effects.
Number | Date | Country | Kind |
---|---|---|---|
2012-033897 | Feb 2012 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
4959597 | Kawamura | Sep 1990 | A |
5028855 | Distler | Jul 1991 | A |
5043644 | Sasaki | Aug 1991 | A |
5140236 | Kawamura | Aug 1992 | A |
5214591 | Sasaki | May 1993 | A |
5563484 | Otsuki | Oct 1996 | A |
6922606 | Yutkowitz | Jul 2005 | B1 |
20020084763 | Shibukawa | Jul 2002 | A1 |
20070250206 | Otsuki | Oct 2007 | A1 |
20140046476 | Walker | Feb 2014 | A1 |
Number | Date | Country |
---|---|---|
101493687 | Jul 2009 | CN |
60038577 | Apr 2009 | DE |
0384925 | Sep 1990 | EP |
H01-217607 | Aug 1989 | JP |
2-113305 | Apr 1990 | JP |
H04333105 | Nov 1992 | JP |
10-049215 | Feb 1998 | JP |
10-240328 | Sep 1998 | JP |
2007293478 | Nov 2007 | JP |
Entry |
---|
Weck and Brecher, “Werkzeugmaschinen 4, Automatisierung von Maschinen und Anlagen,” Issue 6, Chapter 7.1, Spline-Interpolation, pp. 307-312, Springer-Verlag, Berlin, Heidelberg 2006. |
Number | Date | Country | |
---|---|---|---|
20130218323 A1 | Aug 2013 | US |