-
ALLGEMEINER STAND DER TECHNIK
-
1. Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine numerische Steuerung, die einen Verarbeitungspfad basierend auf einer Abfolge von Befehlspunkten erstellt, die von einem Bearbeitungsprogramm in Bezug auf eine Werkzeugmaschine erfasst werden, wobei die Werkzeugmaschine mehrere Antriebsachsen mit mindestens zwei geradlinigen (linearen) Achsen aufweist, den Pfad interpoliert und die Antriebsachsen an die interpolierte Position fährt und dabei eine Bearbeitung ausführt.
-
2. Beschreibung des Stands der Technik
-
Die
japanische Offenlegungsschrift Nr. 10-049215 offenbart eine Technik zum Approximieren eines Pfads, der als Punktfolge durch einen geradlinigen Pfad vorgegeben wird, und zum Ausführen einer Bearbeitung entlang des geradlinigen Pfads.
-
Die
japanische Offenlegungsschrift Nr. 2013-171376 offenbart eine Technik zum Approximieren eines Pfads, der als Punktabfolge durch die kleinstmögliche Anzahl von Kurven vorgegeben wird, derart, dass eine Abweichung von einem Befehlspunkt innerhalb eines eingestellten Grenzwerts (Toleranz) liegt, und zum Antreiben eines Servomotors entlang dieser Kurven, wodurch eine Bearbeitung ausgeführt wird.
-
Eine Technik zur Approximation einer Folge von mehreren Befehlspunkten, die einen breiten Bereich abdecken, durch eine Gerade oder eine Kurve, deren Abstand von den Befehlspunkten innerhalb eines zulässigen Grenzwerts (Toleranz) liegt, wird Komprimierung einer Befehlspunktfolge genannt. Mit mehreren Befehlspunkten, die durch eine Kurve dargestellt werden, kann die Kurve, die der einen breiten Bereich abdeckenden Befehlspunktfolge entspricht, erstellt werden, wobei eine Verzögerung aufgrund einer unzureichenden Fähigkeit, eine Bearbeitungskurve einer numerischen Steuerung zu erstellen, und aufgrund einer Interpolation der Bearbeitungskurve selbst dann reduziert werden kann, wenn die Intervalle in der Befehlspunktfolge sehr klein sind.
-
Bei den oben beschriebenen, in der
japanischen Offenlegungsschrift Nr. 10-049215 und der
japanischen Offenlegungsschrift Nr. 2013-171 376 offenbarten Techniken haben die Komprimierungsverfahren Richtungsabhängigkeitseigenschaften, das heißt, das Komprimierungsergebnis hängt davon ab, aus welcher Richtung die Punktabfolge komprimiert wird. Aus diesem Grund haben die oben beschriebenen Techniken dahingehend ein Problem, dass wenn der Befehl in der Rückwärtsrichtung gegeben wird, dasselbe Ergebnis nicht gewährleistet werden kann, was einen ungleichmäßigen Pfad bei der Verarbeitung mit einem Wechselpfad verursacht.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Die vorliegende Erfindung befasst sich mit den Problemen der oben beschriebenen Techniken des Stands der Technik mit dem Ziel, eine numerische Steuerung bereitzustellen, die eine Befehlspfad-Komprimierungsfunktion aufweist, mit der bei der Komprimierung einer Folge von Befehlspunkten mit den oben beschriebenen Techniken des Stands der Technik dasselbe Komprimierungsergebnis von den denselben Befehlspunkten erhalten werden kann, während die Folge von Befehlspunkten sequenziell gelesen wird, unabhängig davon, ob die Folge von Befehlspunkten in der Vorwärtsrichtung oder in der Rückwärtsrichtung vorliegt.
-
Die vorliegende Erfindung betrifft eine numerische Steuerung, die eine Werkzeugmaschine steuert. Die Werkzeugmaschine besteht aus mehreren Antriebsachsen mit mindestens zwei geradlinigen Achsen, die eine Bearbeitung an einem auf einem Tisch befestigten Werkstück ausführen. Die numerische Steuerung umfasst eine Befehlsleseeinheit, eine Teilfolgenextraktionseinheit, eine Punktfolgenkomprimierungseinheit, eine Interpolationseinheit und eine Motorantriebseinheit. Die Befehlsleseeinheit liest einen Befehlspfad, der eine Folge von mehreren Befehlspunkten ist, und einen Befehl einer relativen Vorschubgeschwindigkeit des Werkstücks und eines Werkzeugs. Die Teilfolgenextraktionseinheit extrahiert eine Teilfolge von der Folge von Befehlspunkten, um die Folge von Befehlspunkten derart aufzuteilen, dass derselbe Pfad unabhängig davon erstellt werden kann, ob die gelesenen Befehlspunkte von der Befehlsleseeinheit von einer vorgegebenen Richtung oder einer der vorgegebenen Richtung entgegengesetzten Richtung extrahiert werden. Die Punktfolgenkomprimierungseinheit erstellt einen komprimierten Pfad, der durch eine Gerade oder eine Kurve approximiert wird, deren Abstand zu jedem Befehlspunkt in der extrahierten Teilfolge derart innerhalb einer voreingestellten Toleranz liegt, dass der komprimierte Pfad durch dieselbe Gerade oder Kurve unabhängig davon approximiert werden kann, ob der komprimierte Pfad aus der extrahierten Teilfolge in einer vorgegebenen Richtung oder in einer zur vorgegebenen Richtung entgegengesetzten Richtung erstellt wird. Die Interpolationseinheit erhält die Position jeder Achse für jeden Interpolationszyklus derart, dass sich das Werkzeug mit der vorgegebenen relativen Vorschubgeschwindigkeit auf dem durch die Punktfolgenkomprimierungseinheit komprimierten Pfad bewegen kann. Zudem treibt Die Motorantriebseinheit einen Motor einer jeden Achse an, um diese an die durch die Interpolationseinheit für jede Achse erhaltende Position zu bewegen.
-
Die numerische Steuerung kann ferner eine Teilungsreferenzlängen-Einstelleinheit umfassen, die dazu ausgebildet ist, eine Teilungsreferenzlänge einzustellen, die dazu verwendet wird, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten aufzuteilen, wobei die durch die Teilfolgenextraktionseinheit ausgeführte Teilung abhängig davon bestimmt wird, ob eine Länge zwischen Befehlspunkten innerhalb der Teilungsreferenzlänge liegt oder nicht.
-
Die numerische Steuerung kann ferner eine Teilungsreferenzwinkel-Einstelleinheit umfassen, die dazu ausgebildet ist, einen Teilungsreferenzwinkel einzustellen, der dazu verwendet wird, eine Teilfolge von der Folge von Befehlspunkten zu extrahieren, um die Folge von Befehlspunkten aufzuteilen, wobei die durch die Teilfolgenextraktionseinheit ausgeführte Teilung abhängig davon ausgeführt wird, ob ein Winkel, der durch Geraden, die Befehlspunkte verbinden, gebildet wird, innerhalb des Teilungsreferenzwinkels liegt oder nicht.
-
Der durch die Punktfolgekomprimierungseinheit komprimierte Pfad kann ein Pfad sein, der mehrere Punkte in der Teilfolge mit einer Geraden verbindet.
-
Der durch die Punktfolgekomprimierungseinheit komprimierte Pfad kann ein Kurvenpfad sein, der durch mehrere Punkte in der Teilfolge läuft.
-
Die vorliegende Erfindung kann eine numerische Steuerung bereitstellen, die eine Befehlspfad-Komprimierungsfunktion aufweist, mit der bei der Komprimierung einer Folge von Befehlspunkten dasselbe Komprimierungsergebnis erhalten werden kann, während die Folge von Befehlspunkten sequenziell gelesen wird, unabhängig davon, ob die Folge von Befehlspunkten in der Vorwärtsrichtung oder in der Rückwärtsrichtung vorliegt.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Diese und andere Aufgaben und Merkmale der vorliegenden Erfindung werden durch die folgende Beschreibung von Ausführungsbeispielen mit Bezug auf die begleitenden Zeichnungen deutlicher werden, wobei:
-
1 ein Diagramm ist, das eine Folge von Befehlspunkten zeigt, die durch Eingabe einer Folge von Befehlspunkten {P0, P1, ..., Pn} gebildet wird, wobei P0 ein Startpunkt und Pn ein Endpunkt ist;
-
2 ein Diagramm ist, das zeigt, dass ein Vektor von Pm – 1 bis Pm durch vm dargestellt wird und ein Winkel, der durch vm – 1 und vm gebildet wird, durch am dargestellt wird;
-
3 ein Diagramm ist, das zeigt, dass ein Vektor von Qc bis Qd durch Vc, d dargestellt wird;
-
4 ein Diagramm ist, das zeigt, dass ein in 1 gezeigter Pfad {P0, P1, ..., Pn} als Ergebnis einer Komprimierung durch Geraden in einer Anzahl von gleich oder kleiner als n dargestellt wird;
-
5 ein Diagramm ist, das zeigt, dass ein in 1 gezeigter Pfad {P0, P1, ..., Pn} als Ergebnis einer Komprimierung durch eine Kurve, die durch eine Anzahl von Befehlspunkten läuft, dargestellt wird;
-
6 ein Funktionsblockdiagramm ist, das ein Beispiel einer numerischen Steuerung gemäß der vorliegenden Erfindung erklärt;
-
7 ein Ablaufdiagramm ist, das den Ablauf einer durch eine Teilfolgenextraktionseinheit (Ausführungsform 1) in 6 ausgeführten Teilfolgenextraktionsverarbeitung zeigt;
-
8 ein Ablaufdiagramm ist, das den Ablauf einer durch eine Punktfolgenkomprimierungseinheit (Ausführungsform 1) in 6 ausgeführten Punktfolgenkomprimierungsverarbeitung zeigt; und
-
9 ein Ablaufdiagramm ist, das den Ablauf einer durch eine Punktfolgenkomprimierungseinheit (Ausführungsform 2) in 6 ausgeführten Punktfolgenkomprimierung zeigt.
-
AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
<Ausführungsform 1>
-
Es wird ein Beispiel beschrieben, in dem eine Folge von eingegeben Befehlspunkten durch approximierte Geraden dargestellt wird, indem die Folge von Befehlspunkten komprimiert wird. Wie in 1 gezeigt, wird ein Beispiel betrachtet, in dem eine Folge von Befehlspunkten {P0, P1, ..., Pn}, wobei P0 ein Startpunkt und Pn (n ≥ 1) ein Endpunkt ist, als ein NC-Programm vorgegeben wird.
-
Die Folge von Befehlspunkten {P0, P1, ..., Pn} wird durch eine Befehlsleseeinheit von einer vorgegebenen Richtung her extrahiert und durch eine Teilfolgenextraktionseinheit in Teilfolgen aufgeteilt, und die Teilfolgen werden an eine Punktfolgenkomprimierungseinheit weitergeleitet. Die Punktfolgenkomprimierungseinheit approximiert die durch die Teilfolgenextraktionseinheit aufgeteilten Teilfolgen durch Geraden. Die Teilfolgenextraktionseinheit und die Punktfolgenkomprimierungseinheit werden nachfolgend beschrieben.
-
[Teilfolgenextraktionseinheit]
-
Die Teilfolgenextraktionseinheit liest sequenziell die Folge von Befehlspunkten {P0, P1, ..., Pn}, um eine Teilfolge zu extrahieren und leitet die so extrahierten Teilfolge an die Punktfolgenkomprimierungseinheit weiter. Der Ablauf dieses Vorgangs wird nachfolgend beschrieben.
-
In einer Leseschleife der Folge von Befehlspunkten werden die Befehlspunkte sequenziell von P0 aus gelesen (Vorschau) und die Vorschau wird wiederholt, bis sie zufolge von Abstandsbedingungen zwischen Befehlspunkten und einem Winkel gestoppt wird. Wenn die Vorschau gestoppt ist, wird die so gelesene Punktfolge als Teilfolge an die Punktfolgenkomprimierungseinheit weitergeleitet, und falls noch ein Teil der Folge von Befehlspunkten übrig bleibt, wiederholt die Teilfolgenextraktionseinheit die Verarbeitung mit den verbleibenden Befehlspunkten der Folge von Befehlspunkten als Eingabe. Ein in der Leseschleife der Folge von Befehlspunkten gelesener Befehlspunkt soll Pm (0 ≤ m ≤ n) sein.
-
Wenn, wie in 2 dargestellt, ein Vektor von Pm – 1 bis Pm vm ist und ein durch vm – 1 und vm gebildeter Winkel am ist, wird vm wie in der nachfolgend beschriebenen Gleichung (1) dargestellt und am wird wie in der nachfolgend beschriebenen Gleichung (2) dargestellt.
-
-
(A-1) Wenn m = 0:
-
P0 wird gelesen.
-
Vorschau wird mit m = 1 fortgesetzt.
-
(A-2) Wenn m = 2:
-
P1 wird gelesen und v1 wird aus P0 und P1, die bereits gelesen wurden, mittels der nachfolgenden Gleichung (3) berechnet. v1 = P1 – P0 (3)
-
Ist die Länge von v1 gleich oder kleiner als eine Teilungsreferenzlänge vmax, die durch eine Teilungsreferenzlängen-Einstelleinheit voreingestellt wird, dann wird die Vorschau fortgesetzt. Insbesondere wird, wenn die nachfolgende Gleichung (4) erfüllt wird, die Vorschau fortgesetzt, und wenn die Gleichung (4) nicht erfüllt wird, wird die Vorschau gestoppt. |v1| ≤ νmax (4)
-
Wenn die Vorschau gestoppt ist, wird {P0, P1} als Teilfolge extrahiert und an die Punktfolgenkomprimierungseinheit weitergeleitet. Wenn n ungleich 1 ist, wird die Verarbeitung der Teilfolgenextraktionseinheit an der verbleibenden Folge von Befehlspunkten {P1, ...Pn} als {P'0, P'1..., P'n – 1} nochmals ausgeführt.
-
(A-3) Wenn m ≥ 2:
-
Pm wird gelesen und vm wird aus Pm – 1 und Pm, die bereits gelesen wurden, mittels der nachfolgenden Gleichung (5) berechnet. vm = Pm – Pm-1 (5)
-
Weiterhin wird am aus vm – 1 und vm, die bereits gelesen wurden, mittels der nachfolgenden Gleichung (6) berechnet.
-
-
Ist die Länge von vm gleich oder kleiner als vmax und cos(am) ist gleich oder größer als der Cosinus eines Teilungsreferenzwinkels cosmax, dann wird die Vorschau fortgesetzt. Der Teilungsreferenzwinkel wird durch eine Teilungsreferenzwinkel-Einstelleinheit voreingestellt. Insbesondere wird, wenn die nachfolgende Gleichung (7) und die Gleichung (8) erfüllt werden, die Vorschau fortgesetzt, und wenn die Gleichung (7) oder Gleichung (8) nicht erfüllt wird, wird die Vorschau gestoppt. |vm| ≤ νmax (7) cos(am) ≥ cosmax (8)
-
Wird die Vorschau aufgrund der oben beschriebenen Gleichung (7) oder Gleichung (8) gestoppt, dann wird {P0, ..., Pm – 1} als eine Teilfolge extrahiert und an die Punktfolgenkomprimierungseinheit weitergeleitet. Die Verarbeitung der Teilfolgenextraktionseinheit wird vom Start aus an den verbleibenden Befehlspunkten der Folge von Befehlspunkten {Pm – 1, ..., Pn} als Eingabepunktfolge {P'0, ..., P'n – m + 1} ausgeführt.
-
Wenn m = n, dann wird {P0, ..., Pn} als eine Teilfolge extrahiert, und die Verarbeitung der Teilfolgenextraktionseinheit ist abgeschlossen.
-
In diesem Vorgang werden unabhängig davon, ob die Folge von Befehlspunkten {P0, P1, ..., Pn} in dieser Reihenfolge vorgegeben wird oder in der umgekehrten Reihenfolge, das heißt in der Reihenfolge {Pn, Pn – 1, ..., P0} vorgegeben wird, die Bestimmungen der Gleichungen (4), (7) und (8) dieselben sein.
-
In diesem Fall wird eine Teilfolge mittels einer Teilungsreferenzlänge und eines Teilungsreferenzwinkels extrahiert. Es können jedoch auch andere Kriterien verwendet werden, solange die Kriterien nicht von der vorgegebenen Richtung abhängen. Beispielsweise kann der Bereich eines aus drei benachbarten als Scheitelpunkte dienenden Befehlspunkten gebildeten Dreiecks als Kriterium verwendet werden, oder es kann die Krümmung des umschreibenden Kreises des Dreiecks als ein Kriterium verwendet werden.
-
[Punktfolgenkomprimierungseinheit]
-
Eine Teilfolge {Q0, Q1, ..., Qs}, die S + 1 Punkte (s ≥ 1) enthält und von der Teilfolgenextraktionseinheit erhalten wurde, wird komprimiert. In diesem Vorgang bedeutet Komprimierung das Approximieren einer Teilfolge durch eine Anzahl von Kurven oder Geraden, die kleiner als die Anzahl von Punkten in der Teilfolge ist. Diese Punkte in der Teilfolge werden alle von Q0 bis Qs durch die Teilfolgenextraktionseinheit gelesen und müssen somit nicht sequenziell gelesen werden. In diesem Fall soll das Komprimierungsergebnis eine Gerade sein. Das Komprimierungsergebnis wird als Pfad Path(t), der als eine Funktion eines Parameters t dient, an eine Interpolationseinheit weitergeleitet. t ändert sich von 0 zu 1. Wenn ein Pfad, der von einem Punkt Qc zu einem Punkt Qd durch eine Gerade verbindet, unter Verwendung von t dargestellt wird, dann wird der Pfad durch Line[c, d](t) dargestellt, was durch die nachfolgende Gleichung (9) dargestellt wird. Line[c, d](t) = (1 – t)Qc + tQd (9)
-
(B-1) Wenn s = 1:
-
Ein Pfad, der Q0 mit Q1 verbindet, und durch nachfolgende Gleichung (10) dargestellt wird, wird als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet.
-
Path(t) = Line[0, 1](t) (10)
-
(B-2) Wenn s > 1:
-
Wie in 3 dargestellt sollen Qc und Qd Teilpunkte sein. Ein Vektor von Qc nach Qd wird durch Vc, d dargestellt. Der Vektor Vc, d wird durch nachfolgende Gleichung (11) dargestellt. Vc,d = Qd – Qc (11)
-
Ein Einheitsvektor in der Richtung von Vc, d wird durch Ec, d dargestellt. Der Einheitsvektor Ec, d wird durch die nachfolgende Gleichung (12) dargestellt.
-
-
Punkte mit Ausnahme der beiden Enden der Teilfolge sollen Qq (0 < q < s) sein.
-
Ein durch V0, q und V0, s gebildeter Winkel θ wird durch nachfolgende Gleichung 13 berechnet.
-
-
Ein Abstand Lq zwischen einem Pfad Line[0, s](t), der Q0 bis Qs mit einer Geraden und Qq (0 < q < s) verbindet, wird durch nachfolgend beschriebene Gleichung (14) dargestellt. Lq = |V0,q|sinθ (14)
-
Jeder Abstand Lq wird mit einer voreingestellten Toleranz T verglichen und es wird eine Bestimmung dahingehend gemacht, ob ein q, das die Gleichung (15) erfüllt, vorhanden ist. Lq > T (15)
-
Wenn kein die Gleichung (15) erfüllendes q vorhanden ist, wird Path(t) = Line[0, s](t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet.
-
Wenn hingegen ein die oben beschriebene Gleichung (15) erfüllendes q vorhanden ist, wird das q, das den größten Lq ausmacht, extrahiert, und die Teilfolge wird vor und hinter diesem q geteilt. Insbesondere, wenn Lq am größten für q = w ist, dann wird die eingegeben Teilfolge {P0, P1, ..., Ps} in zwei Teilfolgen {P0, ..., Pw} und {Pw, ..., Ps} geteilt. Die Verarbeitung der Punktfolgekomprimierungseinheit wird rekursiv mit allen so als Eingaben geteilten Teilfolgen ausgeführt.
-
Bei diesem Vorgang werden unabhängig davon, ob die eingegebene Teilfolge {Q0, Q1, ..., Qs} in dieser Reihenfolge oder in umgekehrter Reihenfolge, das heißt in der Reihenfolge {Qs, Qs – 1, ..., Q0}, eingegeben wird, die Ergebnisse aus dem eine Gerade erstellenden Verfahren (Gleichungen(9)) und der Toleranzbestimmung (Gleichung (15)) dieselben sein.
-
Durch die oben beschriebenen Einheiten (die Teilfolgenextraktionseinheit und die Punktfolgenkomprimierungseinheit) wird der in 1 dargestellte Pfad {P0, P1, ..., Pn} durch Geraden in einer Anzahl gleich oder kleiner als n dargestellt, wie in 4 gezeigt. Die schwarzen Punkte in 4 stellen die Endpunkte einer durch Komprimierung gebildeten Geraden dar, und die weißen Punkte stellen Befehlspunkte mit Ausnahme der Endpunkte dar. Der endgültige Pfad soll ein geradliniger Pfad sein, der die schwarzen Punkte verbindet, und die weißen Punkte sollen Punkte sein, deren Abstand von dem geradlinigen Pfad innerhalb der Toleranz T liegt. Mit dieser Konfiguration kann die durch Interpolation verursachte Belastung reduziert werden, während der ursprünglich vorgegebene Pfad innerhalb der Toleranz gehalten wird, und eine unnötige Verzögerung aufgrund einer sehr kleinen Ecke kann vermieden werden, wodurch eine Hochgeschwindigkeitsbearbeitung erwartet werden kann.
-
Obenstehend wurde ein Beispiel beschrieben, in dem die Folge von Befehlspunkten in der Reihenfolge {P0, P1, ..., Pn} eingegeben wird. Mit der vorliegenden Technik wird derselbe Pfad wie in 4 selbst dann erhalten, wenn die Folge von Befehlspunkten in der umgekehrten Reihenfolge, das heißt, in der Reihenfolge {Pn, Pn – 1, ...P0}, eingegeben wird. Dies liegt daran, dass die Teilungspunktbestimmungen (Gleichungen (4), (7) und (8)), die durch die Teilfolgenextraktionseinheit ausgeführt werden, und das Geradenerstellungsverfahren (Gleichung (9)) und die Toleranzbestimmung (Gleichung (15)), die durch die Punktfolgenkomprimierungseinheit ausgeführt werden, alle Techniken sind, die von der vorgegebenen Richtung von Befehlspunkten unabhängig sind. Wenn Formähnlichkeit zwischen zwei benachbarten Kurven gefordert wird, wie im Falle einer Auswärtsstrecke und einer Rückstrecke in einem Wechselpfad, wird mit dieser Konfiguration erwartet, dass eine Ungleichmäßigkeit in dem Pfad minimiert wird.
-
<Ausführungsform 2>
-
In der oben beschriebenen Ausführungsform 1 wurde ein Beispiel beschrieben, in dem eine Folge von eingegebenen Befehlspunkten durch approximierte Geraden dargestellt wird, indem die Folge von Befehlspunkten komprimiert wird. Die Ausführungsform 2 wird ein Beispiel beschreiben, in dem eine Folge von eingegebenen Befehlspunkten durch approximierte Kurven dargestellt wird, indem die Folge von Befehlspunkten komprimiert wird.
-
Als Ausführungsform 1 wird ein Beispiel betrachtet, in dem eine Folge von Befehlspunkten {P0, P1, ..., Pn}, wobei P0 ein Startpunkt und Pn (n ≥ 1) ein Endpunkt ist, als ein NC-Programm vorgegeben wird. Die Folge von Befehlspunkten {P0, P1, ..., Pn} wird durch eine Befehlsleseeinheit von einer vorgegebenen Richtung her extrahiert und durch eine Teilfolgenextraktionseinheit in Teilfolgen aufgeteilt, und die Teilfolgen werden an eine Punktfolgenkomprimierungseinheit weitergeleitet. Die Punktfolgenkomprimierungseinheit approximiert jede der durch die Teilfolgenextraktionseinheit aufgeteilten Teilfolgen durch eine Kurve. Die Beschreibung der Teilfolgen Extraktionseinheit ist dieselbe wie in der Ausführungsform 1 und wird deshalb weggelassen. Die Einzelheiten der Punktfolgenkomprimierungseinheit in der Ausführungsform 2 werden nachfolgend beschrieben.
-
[Punktfolgenkomprimierungseinheit]
-
Eine Teilfolge {Q0, Q1, ..., Qs}, die S + 1 Punkte (s ≥ 1) enthält und von der Teilfolgenextraktionseinheit erhalten wurde, wird komprimiert. Diese Punkte in der Teilfolge werden alle von Q0 bis Qs durch die Teilfolgenextraktionseinheit gelesen und müssen somit nicht sequenziell gelesen werden. Obwohl das Komprimierungsergebnis in diesem Fall ein Kurvenpfad einer dreidimensionalen B-Spline-Kurve ist, kann eine andersartige Kurve, wie eine NURBS-Kurve oder eine kreisbogenförmige Kurve verwendet werden. Das Komprimierungsergebnis wird als Pfad Path(t), der als eine Funktion eines Parameters t dient, an eine Interpolationseinheit weitergeleitet. t ändert sich von 0 zu 1.
-
In der Teilfolge {Q0, Q1, ..., Qs} ist ein Punkt Q0 ein Startpunkt und ein Punkt Qs ist ein Endpunkt. Ein Kurvenpfad einer B-Spline-Kurve, die durch i Punkte Qe1, ..., Qei läuft, soll B-Spline[0, e1, e2, ..., eis](t) sein. An diesem Punkt gilt 1 ≤ i ≤ s – 1. Der Kurvenpfad wird durch die nachfolgende Gleichung (16) beschrieben.
-
-
Nj, 3(t) ist eine Basisfunktion der B-Spline-Kurve und Rj ist ein Kontrollpunkt der B-Spline-Kurve. Diese B-Spline-Kurve wird derart erstellt, dass die Tangentenrichtungsvektoren am Startpunkt Q0 beziehungsweise am Endpunkt Qs die nachfolgend beschriebenen Gleichungen (17) und (18) erfüllen. d / dtBSpline[0, e1, e2, ..., ei, s](0) = 3(Q1 – Q0) (17) d / dtBSpline[0, e1, e2, ..., ei, s](1) = 3(Qs – Qs-1) (18)
-
Die so erstellte B-Spline-Kurve wird durch die nachstehend beschriebene Gleichung (19) dargestellt und wird selbst dann derselbe Kurvenpfad sein, wenn der Startpunkt Q0, der Endpunkt Qs und die durchlaufenden Punkte Qe1, ..., Qei in umgekehrter Reihenfolge eingegeben werden. BSpline[0, e1, e2, ..., ei, s](t) = BSpline[s, ei, ei-1, ..., e1, 0](1 – t) (19)
-
Das Verfahren zur Erstellung einer wie oben beschriebenen B-Spline-Kurve ist eine bekannte Technik, und auf dessen Beschreibung wird daher verzichtet.
-
(C-1) Wenn s = 1:
-
Ein Pfad der von Q0 bis Q1 mit einer B-Spline-Kurve, die durch die nachfolgend beschriebene Gleichung (20) dargestellt wird, verbindet, wird als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet. Path(t) = BSpline[0, 1](t) (20)
-
(C-2) Wenn s > 1:
-
Ein Pfad, der Q0 bis Qs mit einer B-Spline-Kurve, die durch Gleichung (21) dargestellt wird, verbindet, wird als Ausgangskurve erstellt. Insbesondere wird die B-Spline-Kurve in der Annahme erstellt, dass die oben beschriebenen durchlaufenden Punkte Qe1, ...Qei nicht vorhanden sind. Path(t) = BSpline[0, s](t) (21)
-
Der Abstand zwischen allen Punkten, mit Ausnahme von Q0 und Qs (1 ≤ e ≤ s – 1), in der Teilfolge {Q0, Q1, ..., Qs} und dem Path(t) soll Le sein. Das heißt, der Abstand Le wird durch die nachfolgend beschriebene Gleichung (22) dargestellt. Le = Dist(Path(t), Qe) (22)
-
Dist ist eine Funktion, die den Abstand zwischen einer Kurve und einem Punkt angibt und wird durch ein analytisches oder approximierendes Verfahren berechnet. Die Einzelheiten von Dist sind eine bekannte Technik, und auf deren Beschreibung wird daher verzichtet. Jeder Abstand Le wird mit einer voreingestellten Toleranz mittels nachfolgend beschriebener Gleichung (23) verglichen, und es wird eine Bestimmung dahingehend gemacht, ob Le jeweils die Toleranz T überschreitet oder nicht. Le > T (23)
-
Wenn kein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird Path(t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet.
-
Wenn hingegen ein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird das e, das den größten Le ergibt, extrahiert und auf emax gesetzt. Ein Punkt Qemax, der jedem wie oben beschriebenen emax entspricht, wird zu den durchlaufenden Punkten hinzugefügt und eine B-Spline-Kurve wird erneut erstellt. Das heißt, die neu erstellte B-Spline-Kurve wird durch die nachfolgend beschriebene Gleichung (24) dargestellt. Path(t) = BSpline[0, emax, s](t) (24)
-
Durch Verwendung der oben beschriebenen Gleichung (22) für diesen neuen Path(t), um Le erneut zu berechnen, wird die oben beschriebene Gleichung (23) bestimmt. Wenn kein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird Path(t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet. Wenn ein e vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, dann wird das e, das den größten Le ergibt, extrahiert und auf emax2 gesetzt. Ein Punkt Qemax2 wird zu den Durchlaufpunkten hinzugefügt, und eine B-Spline-Kurve wird erneut erstellt. Das heißt, die neu erstellte B-Spline-Kurve wird durch die nachfolgend beschriebene Gleichung (25) dargestellt. Path(t) = BSpline[0, emax, emax2, s](t) (25)
-
Der oben beschriebene Ablauf wird wiederholt, um Durchlaufpunkte zuzufügen, bis kein e mehr vorhanden ist, das die oben beschriebene Gleichung (23) erfüllt, bevor Path(t) als Komprimierungsergebnis an die Interpolationseinheit weitergeleitet wird. Bei diesem Vorgang werden unabhängig davon, ob die eingegebene Teilfolge {Q0, Q1, ..., Qs} in dieser Reihenfolge oder in umgekehrter Reihenfolge, das heißt in der Reihenfolge {Qs, Qs – 1, ..., Q0}, eingegeben wird, die Ergebnisse aus dem B-Spline-Erstellungsverfahren (Gleichungen (16, 17 und (18)) und der Toleranzbestimmung (Gleichung (23)) dieselben sein.
-
Die Tangentenrichtungsvektoren am Startpunkt Q0 und Endpunkt Qs in der B-Spline-Kurve werden in diesem Fall auf 3(Q1 – Q0) beziehungsweise 3(Qs – Qs – 1) gesetzt. Jedoch können ein Punkt Q – 1 unmittelbar vor Q0 und ein Punkt Qs + 1 unmittelbar nach Qs gelesen werden, wobei die Tangentenrichtungsvektoren auf 3(Q1 – Q – 1)/2 und 3(Qs + 1 – Qs – 1)/2 gesetzt werden. Weiterhin können die Richtung einer Linie, die einen Kreis, der durch Q – 1, Q0 und Q1 läuft, bei Q0 berührt und die Richtung einer Linie, die einen Kreis, der durch Qs – 1, Qs und Qs + 1 läuft, bei Qs berührt, auf die Tangentenrichtungsvektoren eingestellt werden.
-
[Komprimierungsergebnis]
-
Durch die oben beschriebenen Einheiten wird der in 1 gezeigte Pfad P0, P1, ...Pn durch eine durch eine Anzahl von Befehlspunkten laufende Kurve dargestellt, wie in 5 gezeigt. Die schwarzen Punkte in 5 stellen Befehlspunkte dar, durch die der Pfad läuft, und die weißen Punkte stellen alle von diesen Befehlspunkten unterschiedlichen Befehlspunkte dar.
-
Der endgültige Pfad soll ein geglätteter Kurvenpfad sein, der die schwarzen Punkte verbindet, und die weißen Punkte sollen Punkte sein, deren Abstand vom Kurvenpfad innerhalb der Toleranz T liegt. Wie in der Ausführungsform 1 wird derselbe Pfad wie in 5 selbst dann erhalten, wenn die Folge von Befehlspunkten in der umgekehrten Reihenfolge eingegeben wird, das heißt in der Reihenfolge {Pn, Pn – 1, ..., P0}.
-
Mit dieser Konfiguration kann in der Ausführungsform 2 sowie in der Ausführungsform 1 die durch Interpolation verursachte Belastung reduziert werden, während der ursprünglich vorgegebene Pfad innerhalb der Toleranz gehalten wird, und wenn Formähnlichkeit zwischen zwei benachbarten Kurven gefordert wird, wie im Falle einer Auswärtsstrecke und einer Rückstrecke in einem Wechselpfad, dann wird erwartet, dass eine Ungleichmäßigkeit in dem Pfad minimiert wird. Da Befehlspunkte in eine dreidimensionale B-Spline-Kurve komprimiert werden, können weiterhin in der Ausführungsform 2 Befehlspunkte, die einen breiten Bereich abdecken, durch eine geringe Anzahl von durchgehenden zweiten Differentialkurven dargestellt werden, wodurch eine glatte Bearbeitungsfläche erzielt werden kann.
-
(Funktionsblockdiagramm)
-
6 ist ein Funktionsblockdiagramm, das ein Beispiel einer numerischen Steuerung gemäß der vorliegenden Erfindung erklärt.
-
Im Allgemeinen analysiert eine Befehlsleseeinheit 10 in einer numerischen Steuerung ein Bearbeitungsprogramm und wandelt das Bearbeitungsprogramm in ein ausführbares Format um. Eine Interpolationseinheit 14 führt basierend auf dem ausführbaren Format eine Interpolationsverarbeitung aus, gibt einen Bewegungsbefehl für jede Achse aus und steuert den Antrieb der Servoeinrichtung jeder Achse (einen X-Achsen-Servo 15X, einen Y-Achsen-Servo 15Y und einen Z-Achsen-Servo 15Z) basierend auf dem Bewegungsbefehl für jede Achse.
-
Diese Befehlsleseeinheit 10 umfasst eine Teilfolgenextraktionseinheit 11 und eine Punktfolgenextraktionseinheit 12. Die Teilfolgenextraktionseinheit 11 teilt die sequenziell gelesene Folge von Befehlspunkten derart, dass dasselbe Ergebnis unabhängig von der vorgegebenen Richtung dadurch erzielt werden kann, dass Teilungspunkte gemäß der Form der Folge von Befehlspunkten bestimmt werden, und gibt das Ergebnis an die Punktfolgenkomprimierungseinheit 12 weiter. Die Punktfolgenkomprimierungseinheit 12 approximiert den durch die eingegebene Teilfolge gebildeten Pfad durch eine Kurve oder eine Gerade mittels des von der Richtung unabhängigen Verfahrens, um die Belastung auf die Interpolationseinheit 14 zu reduzieren, und gibt den so approximierten Pfad an die Interpolationseinheit 14 aus. Die Punktfolgenkomprimierungseinheit 12 bezieht sich auf eine voreingestellte Toleranz 13.
-
(Ablaufdiagramm)
-
Der Ablauf der durch die in 6 (Ausführungsform 1) dargestellten Teilfolgenextraktionseinheit 11 ausgeführten Teilfolgenextraktionsverarbeitung wird mit Bezug auf ein Ablaufdiagramm in 7 beschrieben. Der Ablauf wird nachfolgend entsprechend jedem Schritt in dem Ablaufdiagramm beschrieben.
-
[Schritt sa01] m wird auf den Ausgangswert (= 0) gesetzt.
-
[Schritt sa02] Daten des Befehlspunkts Pm werden gelesen.
-
[Schritt sa03] Klassifizierung gemäß dem Wert von m wird durchgeführt. Wenn m = 0, geht die Verarbeitung weiter zu Schritt sa04. Wenn m = 1, geht die Verarbeitung weiter zu Schritt sa12. Wenn m ≥ 2, geht die Verarbeitung weiter zu Schritt sa05.
-
[Schritt sa04] Der Wert, der durch Addieren von 1 zu m erhalten wird, wird auf m gesetzt und die Verarbeitung kehrt zurück zu Schritt sa02.
-
[Schritt sa05] vm und am werden berechnet.
-
[Schritt sa06] Eine Bestimmung wird dahingehend getroffen, ob der Absolutwert von vm gleich oder kleiner als vmax ist. Wenn der Absolutwert von vm gleich oder kleiner als vmax (JA) ist, geht die Verarbeitung weiter zu Schritt sa07. Wenn der Absolutwert von vm nicht gleich oder kleiner als vmax ist (NEIN), geht die Verarbeitung weiter zu Schritt sa10.
-
[Schritt sa07] Eine Bestimmung wird dahingehend getroffen, ob cos(am) gleich oder größer als cosmax ist. Wenn cos(am) gleich oder größer als cosmax (JA) ist, geht die Verarbeitung weiter zu Schritt sa08. Wenn cos(am) nicht gleich oder größer als cosmax (NEIN) ist, geht die Verarbeitung weiter zu Schritt sa10.
-
[Schritt sa08] Eine Bestimmung wird dahingehend getroffen, ob m gleich n ist oder nicht. Wenn m gleich n ist (JA), geht die Verarbeitung weiter zu Schritt sa09. Wenn m nicht gleich n ist (NEIN), geht die Verarbeitung zurück zu Schritt sa04.
-
[Schritt sa09] Eine Folge von Befehlspunkten {P0, ..., Pn} wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet und die Teilfolgenextraktionsverarbeitung wird abgeschlossen.
-
[Schritt sa10] Eine Teilfolge {P0, ..., Pm – 1} wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet.
-
[Schritt sa11] Eine Teilfolge {Pm – 1, ..., Pn} wird als eine Eingabe an die Teilfolgenextraktionseinheit 11 gesetzt. Insbesondere kehrt die Verarbeitung zu Schritt sa01 zurück und die Teilfolgenextraktionsverarbeitung wird nochmals ausgeführt.
-
[Schritt sa12] Eine Bestimmung wird dahingehend getroffen, ob m gleich n ist. Wenn m gleich n ist (JA), geht die Verarbeitung weiter zu Schritt sa13. Wenn m nicht gleich n ist (NEIN), geht die Verarbeitung zurück zu Schritt sa014.
-
[Schritt sa13] {P0, P1 wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet und diese Teilfolgenextraktionsverarbeitung wird abgeschlossen.
-
[Schritt sa14] vm wird berechnet.
-
[Schritt sa15] Eine Bestimmung wird dahingehend getroffen, ob der Absolutwert von vm gleich oder kleiner als vmax ist. Wenn der Absolutwert von vm gleich oder kleiner als vmax (JA) ist, geht die Verarbeitung weiter zu Schritt sa16. Wenn der Absolutwert von vm nicht gleich oder kleiner als vmax (NEIN) ist, geht die Verarbeitung weiter zu Schritt sa17.
-
[Schritt sa16] 1 wird zu m addiert, um m neu einzustellen (das heißt, m = m + 1).
-
[Schritt sa17] {P0, P1} wird an die Punktfolgenkomprimierungseinheit 12 weitergeleitet.
-
[Schritt sa18] Die Folge von Befehlspunkten {P0, ..., Pn} wird als eine Eingabe an die Teilfolgenextraktionseinheit 11 gesetzt. Insbesondere kehrt die Verarbeitung zurück zu Schritt sa01, und die Teilfolgenextraktionsverarbeitung wird nochmals durchgeführt.
-
Der Ablauf der durch die in 6 (Ausführungsform 1) dargestellten Punktfolgenkomprimierungseinheit 12 ausgeführten Punktfolgenkomprimierungsverarbeitung wird mit Bezug auf ein Ablaufdiagramm in 8 beschrieben. Der Ablauf wird nachfolgend entsprechend jedem Schritt in dem Ablaufdiagramm beschrieben.
-
[Schritt sb01] Path(t) wird als Liniensegment gesetzt, das P0 und Ps verbindet.
-
[Schritt sb02] Le wird mit Bezug auf die Punkte Qe, mit Ausnahme von Q0 und Qs, berechnet.
-
[Schritt sb03] Eine Bestimmung wird dahingehend gemacht, ob ein e, das Le > T erfüllt, vorhanden ist. Wenn ein e, das Le > T erfüllt, vorhanden ist (JA), geht die Verarbeitung weiter zu Schritt sb04. Wenn kein e, das Le > T erfüllt, vorhanden ist (NEIN), geht die Verarbeitung weiter zu Schritt sb06.
-
[Schritt sb04] Die eingegebene Punktfolge wird vor und nach dem Punkt geteilt, an dem Le am größten ist.
-
[Schritt sb05] Die Punktfolgenkomprimierungsverarbeitung wird nochmals mit jedem der geteilten Punktfolgen als eine Eingabe durchgeführt und die Verarbeitung kehrt zu Schritt sb01 zurück.
-
[Schritt sb06] Path(t) wird an die Interpolationseinheit 14 weitergeleitet und diese Punktfolgenkomprimierungsverarbeitung wird abgeschlossen.
-
Der Ablauf der durch die in 6 (Ausführungsform 2) dargestellten Punktfolgenkomprimierungseinheit 12 ausgeführten Punktfolgenkomprimierungsverarbeitung wird mit Bezug auf ein Ablaufdiagramm in 9 beschrieben. Der Ablauf wird nachfolgend entsprechend jedem Schritt in dem Ablaufdiagramm beschrieben.
-
[Schritt sc01] Es soll kein Durchgangspunkt vorhanden sein.
-
[Schritt sc02] Path(t) wird als B-Spline-Kurve gesetzt, die Durchgangspunkte durchläuft.
-
[Schritt sc03] Le wird mit Bezug auf die Punkte Qe, mit Ausnahme von Q0 und Qs, berechnet.
-
[Schritt sc04] Eine Bestimmung wird dahingehend gemacht, ob ein e, das Le > T erfüllt, vorhanden ist oder nicht. Wenn ein e, das Le > T erfüllt, vorhanden ist (JA), geht die Verarbeitung weiter zu Schritt sb05. Wenn kein e, das Le > T erfüllt, vorhanden ist (NEIN), geht die Verarbeitung weiter zu Schritt sb06.
-
[Schritt sc05] Alle Punkte, an denen Le am größten ist, werden zu den Durchgangspunkten hinzugefügt und die Verarbeitung geht weiter zu Schritt sc02.
-
[Schritt sc06] Path(t) wird an die Interpolationseinheit 14 weitergeleitet und diese Punktfolgenkomprimierungsverarbeitung wird abgeschlossen.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- JP 10-049215 [0002, 0005]
- JP 2013-171376 [0003, 0005]