-
Allgemeiner Stand der Technik
-
Die vorliegende Erfindung betrifft eine Bearbeitungskurven-Erzeugungsvorrichtung und ein Bearbeitungskurven-Erzeugungsverfahren, mit dem ein Werkzeugweg, der das Bereitstellen einer glatten maschinell bearbeiteten Oberfläche während einer maschinellen Bearbeitung mit einer numerisch gesteuerten Werkzeugmaschine ermöglicht, unter Verwendung einer numerischen Steuervorrichtung, die die Werkzeugmaschine steuert, oder einer Informationsverarbeitungsvorrichtung bestimmt wird, wie einem Personalcomputer.
-
Ein Verfahren zum Bestimmen einer Kurve, die eine gegebene Punktsequenz interpoliert, oder einer Kurve, die durch jeden der Punkte verläuft, ist weithin bekannt (Les Piegl, Wayne Tiller, The NURBS Book, Springer-Verlag, und I.J. Schoenberg, Spline functions and the problem of graduation, Proceedings of the National Academy of Science of the U.S.A., 52(1964)). Zur maschinellen Bearbeitung mit einem numerisch gesteuerten Werkzeug wird das Verfahren dazu genutzt, einen Werkzeugweg, der als eine Punktsequenz angegeben ist, in eine Kurve umzuwandeln, um eine glatte, maschinell bearbeitete Oberfläche bereitzustellen und eine Zeit zur maschinellen Bearbeitung zu verkürzen (
JP 2013 - 171 376 A ,
JP 2007 - 293 478 A ,
JP 2006 - 309 645 A ,
JP 2005 - 182 437 A und
JP 2004 - 078 516 A ).
-
Im Allgemeinen variiert die Länge eines Programms zur maschinellen Bearbeitung je nach einem Werkstück, und eine zeitaufwändige maschinelle Bearbeitung bringt eine sehr große Anzahl von Punkten mit sich, die einen Werkzeugweg bereitstellen. Folglich ist das Abschließen einer Kurvenbildung während eines Vorgangs schwierig und ein Verfahren wird angewendet, in dem die Punktsequenz in Abschnitte unterteilt wird, was das Schritt-für-Schritt-Erzeugen der Kurve ermöglicht. Darüber hinaus wird dieses Verfahren zwangsläufig angewendet, wenn eine Kurvenerzeugung und eine maschinelle Bearbeitung parallel durchgeführt werden.
-
Die Unterteilung der Punktsequenz wird normalerweise unter Verwendung eines Verfahrens des Aufnehmens einer vorher bestimmten Anzahl von Punkten durchgeführt, die mit dem vorderen Punkt startet. Wenn die Punktsequenz einen gebogenen Abschnitt beinhaltet, wird der gebogene Abschnitt als ein Unterteilungspunkt der Punktsequenz eingestellt, selbst wenn die Anzahl von Punkten bis zu dem gebogenen Abschnitt kleiner als die vorher bestimmte Anzahl ist. Kurven, die aus Gruppen von Punkten erzeugt werden, die aus der Unterteilung resultieren, werden in der Form von parametrischen Kurven ausgedrückt. Es wird eine Ausdrucksform angewendet, wie eine B-Spline-Kurve oder NURBS-Kurve, die für die Anwendung geeignet ist.
-
Die herkömmliche Bearbeitungskurvenerzeugung konzentriert sich auf ein Verfahren zum Erzeugen von Kurven aus einer Punktsequenz, die aus einer Unterteilung resultiert, die die Form des gesamten Werkzeugwegs, der aus dem Zusammenfügen erzeugter Kurven resultiert, nicht besonders berücksichtigt. Infolgedessen misslingt es auf nachteilige Weise, zufrieden stellende Kurven zu erzeugen, wenn von benachbarten Kurven gewünscht wird, dass sie eine ähnliche Form haben, wie in dem Fall eines Vorwärtswegs und einer Rückwärtswegs bei einem sich hin- und herbewegenden Weg der maschinellen Bearbeitung.
-
Im Allgemeinen können in einem Programm zur maschinellen Bearbeitung, das von einer CAM ausgegeben wird, die Positionen von Punkten, die einen Maschinenweg ausdrücken, in Verbindung mit einem Berechnungsverfahren oder dergleichen geringfügig von einem Sollweg abweichen. Darüber hinaus variiert das Intervall zwischen den Punkten gewöhnlich. In dem sich hin- und herbewegenden Weg entsprechen Punkte, die den Vorwärtsweg bereitstellen, nicht immer Punkten, die den Rückwärtsweg bereitstellen. In dem Punktsequenzunterteilungsverfahren des Aufnehmens einer vorher bestimmten Anzahl von Punkten variiert die räumliche Verteilung der Unterteilungen der Punktsequenz zwischen dem Vorwärtsweg und dem Rückwärtsweg. Die unterschiedlichen räumlichen Verteilungen der Punktsequenz wiederum variieren die Form der erzeugten Kurve, was zu stufenartigen Unterschieden zwischen der Kurve des Vorwärtswegs und der Kurve des Rückwärtswegs führt. Ein ähnliches Problem tritt in dem Fall eines spiralförmigen Werkzeugwegs auf, der um den Umfang eines Werkstücks herum angeordnet ist. Die Ursache des Problems liegt darin, dass das Verfahren des Aufnehmens einer vorher bestimmten Anzahl von Punkten dabei fehlschlägt, die räumliche Verteilung von Punktsequenzen zu steuern. Dies deutet auf Bedarf an einem Unterteilungsverfahren hin, das das Ausrichten der räumlichen Verteilungen aufeinander ermöglicht.
-
Die Druckschrift
DE 10 2006 036 601 A1 offenbart eine Bestimmungseinheit, die die Tangentenvektoren an dem einen und an dem anderen Ende eines Spline-Kurvensegmentes jedes Abschnittes so bestimmt, dass eine Länge jedes Tangentenvektors proportional zu der einer das eine und das andere Ende des einen Spline-Kurvensegmentes verbindenden ersten geraden Linie ist und dass die Tangentenvektoren an dem einen Ende und an dem anderen Ende des einen Spline-Kurvensegmentes derart ausgerichtet sind, dass sie einen ersten Winkel und einen zweiten Winkel jeweils in einem vorbestimmten Verhältnis teilen. Der erste Winkel ist durch die erste gerade Linie und eine Verlängerung einer das eine und das andere Ende eines vorhergehenden Spline-Kurvensegmentes verbindenden zweiten geraden Linie gebildet. Der zweite Winkel ist durch die erste gerade Linie und eine Verlängerung einer das eine und das andere Ende eines nächsten Spline-Kurvensegmentes verbindenden dritten geraden Linie gebildet.
-
Die Druckschrift
DE 601 23 379 T2 offenbart eine numerisch gesteuerte Bearbeitungseinheit für gekrümmte Flächen, die mit drei linearen Achsen und mindestens einer Drehachse ausgerüstet ist und eine Mehrachs-Simultansteuerungs-NC-Maschinebeinhaltet, die von einer NC-Steuerung mit Numeriksteuerungs-NURBS-Interpolationsfunktion numerisch gesteuert wird. Die Einheit weist eine Einrichtung zum Lesen von Daten eines Werkzeugkontrollpunktvektors und Daten eines Werkzeugachsenvektors auf, die in einem Werkstückkoordinatensystem entlang des Werkzeugwegs mit festgelegter Kurvenform von einem Hostcomputer berechnet sind, als Daten eines Schneidorts und zum Umwandeln der CL-Daten in einen Positionsvektor der drei linearen Achsen und einen Drehwinkel für die Drehachse im Maschinenkoordinatensystem, um die Mehrachs-Simultansteuerungs-NC-Maschine entsprechend ihrer Maschinenkonfiguration zu betreiben. Die Einheit weist ferner eine Einrichtung zum Berechnen von Knotenvektoren einer NURBS-Kurve der am besten geeigneten Sehnenlänge aufgrund eines Positionsvektors der drei linearen Achsen und eines Drehwinkels für die Drehachse auf, die im Maschinenkoordinatensystem berechnet sind, eine Einrichtung zum Berechnen einer jeweiligen NURBS-Kurve der drei linearen Achsen und eines Drehwinkels unter Verwendung der Knotenvektoren, eine Einrichtung zum Umwandeln der NURBS-Kurve in NURBS-Interpolations-NC-Daten, eine Einrichtung zum Umwandeln der Vorschubgeschwindigkeit im Werkstückkoordinatensystem in Vorschub pro Minute oder zeitinversen Vorschub im Maschinenkoordinatensystem und eine Einrichtung zum Übertragen der erhaltenen NC-Daten an die NC-Steuerung.
-
Die Druckschrift
DE 600 27 124 T2 offenbart ein Verfahren zur Steuerung der Bewegung eines beweglichen Maschinenelements. Das Verfahren umfasst: Empfangen einer Mehrzahl von Punkten, die einen gewünschten Verfahrweg für das bewegliche Element definieren, wobei die Mehrzahl von Punkten eine Mehrzahl von Wegstücken auf dem gewünschten Verfahrweg definiert; Berechnen der Länge eines ersten Wegstücks in der Mehrzahl von Wegstücken; Ermitteln der relativen Länge des ersten Wegstücks in Bezug auf mindestens ein weiteres Wegstück in der Mehrzahl von Wegstücken; auf der Grundlage der relativen Länge Entscheiden, ob das betreffende Wegstück mithilfe einer Spline-Funktion interpoliert werden soll; wenn das erste Wegstück mithilfe einer Spline-Funktion interpoliert werden soll, Ableiten einer Spline-Interpolation-Gleichung für das erste Wegstück und Verfahren eines beweglichen Elements entsprechend der Spline-Interpolation-Funktion.
-
Kurzdarstellung der Erfindung
-
Folglich besteht ein Gegenstand der vorliegenden Erfindung darin, eine Bearbeitungskurven-Erzeugungsvorrichtung bereitzustellen, um das oben beschriebene Problem des Stands der Technik zu lösen, die Informationen zu einer Kurve, die auf der Basis einer Punktsequenz, die einen Werkzeugweg ausdrückt, erzeugt wurde, speichert und die die Informationen in einem Bereich nutzt, in dem das Bereitstellen einer Kurve, die einer anderen Kurve ähnlich ist, gewünscht wird, um die gewünschte Kurve zu erzeugen.
-
Gemäß der Offenbarung werden eine Bearbeitungskurven-Erzeugungsvorrichtung und ein Bearbeitungskurven-Erzeugungsverfahren gemäß den unabhängigen Ansprüchen bereitgestellt. Entwicklungen sind in den abhängigen Ansprüchen dargestellt.
-
Die Ausführungsformen der vorliegenden Erfindung sind wie oben beschrieben konfiguriert und können folglich eine Bearbeitungskurven-Erzeugungsvorrichtung bereitstellen, die Informationen zu einer Kurve, die auf der Basis einer Punktsequenz, die einen Werkzeugweg ausdrückt, erzeugt wurde, speichert und die die Informationen in einem Bereich nutzt, in dem das Bereitstellen einer Kurve, die einer anderen Kurve ähnlich ist, gewünscht wird, um die gewünschte Kurve zu erzeugen.
-
Figurenliste
-
Die oben beschriebenen und andere Gegenstände und Merkmale der vorliegenden Erfindung werden aus der folgenden Beschreibung von Ausführungsformen unter Bezugnahme auf die angefügten Zeichnungen offensichtlich werden, in denen:
- 1 ein Blockdiagramm ist, das eine Konfiguration einer Bearbeitungskurven-Erzeugungsvorrichtung darstellt;
- 2 ein Diagramm ist, das Punktsequenzdaten darstellt;
- 3 ein Diagramm ist, das ein Verfahren zum Bestimmen von Faltpunkten auf einem Werkzeugweg darstellt;
- 4 ein Diagramm ist, das eine Beziehung zwischen Daten segmentierter Kurven und Teilkurvendaten darstellt;
- 5 ein Ablaufdiagramm ist, das einen Vorgang zur Kurvenerzeugung darstellt;
- 6 ein Ablaufdiagramm ist, das einen Vorgang zum Bestimmen darstellt, ob ein Werkzeugweg ein Rückwärtsweg ist oder nicht;
- 7 ein Ablaufdiagramm ist, das einen Vorgang zum Erzeugen normaler segmentierter Kurven darstellt; und
- 8 ein Ablaufdiagramm ist, das einen Vorgang zum Erzeugen segmentierter Kurven des Rückwärtswegs darstellt.
-
Ausführliche Beschreibung der bevorzugten Ausführungsformen
-
Mehrere Ausführungsformen der vorliegenden Erfindung stellen ein Kurvenbildungsverfahren des Erzeugens einer parametrischen Kurve bereit, indem Teilpunktsequenzen Schritt für Schritt von einem Werkzeugweg, der von einer Werkzeugsequenz bereitgestellt wird, genommen werden, wobei das Verfahren das Speichern von Informationen, die eine erzeugte Kurve charakterisieren, und wenn das Bereitstellen einer Kurve, die der erzeugten Kurve ähnlich ist, gewünscht wird, das Erzeugen einer Kurve unter Verwendung der gespeicherten Informationen beinhaltet.
-
Mehrere Ausdrücke werden definiert. Teilpunktsequenzen werden als Punktsequenzen definiert, die aus einer Unterteilung einer Punktsequenz zur Kurvenerzeugung resultieren, und eine Teilkurve wird als eine Kurve definiert, die aus einer Teilpunktsequenz erzeugt wurde. Ein Abschlusspunkt einer Kurve wird als ein Punkt definiert, an dem der Werkzeugweg gefaltet wird, so dass die Kurve an dem Abschlusspunkt der Kurve vorübergehend endet und eine andere Kurve beginnt. Eine segmentierte Kurve wird als sich von einem Abschlusspunkt zu dem nächsten Abschlusspunkt erstreckend definiert. Ein kurvenförmiger Werkzeugweg ist ein Satz segmentierter Kurven. Die segmentierte Kurve beinhaltet eine oder mehrere Teilkurven. Ein Vorwärtsweg und ein Rückwärtsweg eines sich hin- und herbewegenden Wegs sind jeweils eine segmentierte Kurve.
-
In einem Verfahren gemäß mehreren Ausführungsformen der vorliegenden Erfindung werden Informationen zu einer Kurve, die unter Verwendung segmentierter Kurven als Einheiten erzeugt wurde, als Informationen segmentierter Kurven gespeichert. Die Informationen segmentierter Kurven beinhalten die Anzahl von Teilkurven, die in einer segmentierten Kurve enthalten sind, und Teilkurveninformationen zu jeder Teilkurve. Die Teilkurveninformationen beinhalten die Position eines Abschlusspunkts, die Länge der Teilkurve und die Anzahl von Punkten in einer Teilpunktsequenz, von der die Teilkurve stammt. Eine Unterteilung in Teilpunktsequenzen basiert auf einer Unterteilung durch die Anzahl von Punkten, die leicht abzuwickeln ist. Eine Einheit wird bereitgestellt, die dazu konfiguriert ist, einen Bereich zu bestimmen, in dem die räumliche Verteilung von Teilpunktsequenzen auf einem Weg mit der räumlichen Verteilung von Teilpunktsequenzen auf einem anderen Weg ausgerichtet werden soll. Wenn das Verfahren den Bereich bestimmt, in dem die Verteilung von Teilpunktsequenzen auf einem Weg mit der Verteilung von Teilpunktsequenzen auf einem anderen Weg ausgerichtet werden soll, werden die Teilpunktsequenzen auf der Basis der gespeicherten Informationen anstelle der Unterteilung durch die Anzahl von Punkten abgerufen. Bei einem sich hin- und herbewegenden Bearbeitungsweg ist ein Rückwärtsweg ein Bereich, in dem die Verteilung von Teilpunktsequenzen mit der Verteilung von Teilpunktsequenzen auf einem Vorwärtsweg ausgerichtet werden soll. Wenn der Werkzeugweg als ein Rückwärtsweg bestimmt wird, werden Informationen segmentierter Informationen zu dem Vorwärtsweg dazu verwendet, den Rückwärtsweg mit dem Vorwärtsweg im Hinblick auf die Anzahl von Teilkurven, die in dem Rückwärtsweg enthalten sind, die Länge jeder Teilpunktsequenz und dergleichen auszurichten. So werden die räumlichen Verteilungen von Teilpunktsequenzen, die den Vorwärtsweg und den Rückwärtsweg bereitstellen, aufeinander auf der Basis der gespeicherten Informationen ausgerichtet. Dies führt zu Kurven ohne stufenartige Unterschiede zwischen dem Vorwärtsweg und dem Rückwärtsweg.
-
Der Punkt des Verfahrens zum Erzeugen einer Bearbeitungskurve oder der Werkzeugwegkurve ist, dass ein Bereich, in dem die Form einer Kurve der Form einer anderen Kurve angeglichen werden soll, wie im Fall des Rückwärtswegs in Bezug auf den Vorwärtsweg, und dass für den bestimmten Bereich ein dedizierter Erzeugungsvorgang, der sich von einem normalen Kurvenerzeugungsvorgang unterscheidet, dazu verwendet wird, eine Kurve zu erzeugen, die gespeicherte Kurveninformationen nutzt.
-
Nun wird ein spezifischer Vorgang für eine Technik gemäß mehreren Ausführungsformen der vorliegenden Erfindung beschrieben, wobei ein Fall, in dem der Werkzeugweg einen sich hin- und herbewegenden Bearbeitungsweg beinhaltet, als ein Beispiel genommen wird. 1 ist ein Blockdiagramm. Eine Bearbeitungskurven-Erzeugungsvorrichtung 1 beinhaltet einen NC-Befehlsdekodierungsteil 10, einen Punktsequenzbezugsteil 20, einen Rückwärtswegbestimmungsteil 30, einen Teil des Erzeugens segmentierter Kurven 40, einen Teil des Speicherns von Informationen segmentierter Kurven 50, einen Rückwärtswegerzeugungsteil 60 und einen Kurvenausgabe-teil 70. Die Bearbeitungskurven-Erzeugungsvorrichtung 1 kann unter Verwendung einer numerischen Steuervorrichtung, die eine Werkzeugmaschine steuert, oder einer Informationsverarbeitungsvorrichtung, wie einem Personalcomputer, konfiguriert werden.
-
Der NC-Befehlsdekodierungsteil 10 ist mit einem NC-Befehlsdekodierungsteil identisch, der in einer numerischen Steuervorrichtung montiert ist, die eine Werkzeugmaschine steuert. Der NC-Befehlsdekodierungsteil 10 dekodiert einen NC-Befehl 2 (Programm zur maschinellen Bearbeitung), um Punktsequenzdaten zu einer Punktsequenz abzurufen, die den Werkzeugweg bereitstellt. Die Punktsequenzdaten sind Daten, die die Positionen von Punkten auf dem Werkzeugweg anzeigen, und bei einer fünfachsigen maschinellen Bearbeitung Daten beinhalten, die die Richtung eines Werkzeugs zusätzlich zu den Positionen anzeigen. 2 zeigt die Struktur von Punktsequenzdaten für eine dreiachsige maschinelle Bearbeitung. Daten zu jedem Punkt der Punktsequenzdaten beinhalten die Koordinaten X, Y und Z eines vorderen Endes des Werkzeugs. Die Anzahl von Daten entspricht der Anzahl der Punkte.
-
Der Punktsequenzbezugsteil 20 fordert benötigte Punktsequenzdaten von dem NC-Befehlsdekodierungsteil 10 an und bezieht diese von dem letzteren. Grundsätzlich werden Daten zu einer vorher bestimmten Anzahl N von Punkten bezogen und für einen Rückwärtsweg werden Punktsequenzdaten innerhalb eines Bereichs, der von dem Rückwärtswegkurvenerzeugungsteil 60 angefordert wird, bezogen. Wenn ein beliebiger Punkt in der angeforderten Punktsequenz als ein Faltpunkt auf einem Werkzeugweg bestimmt wird, wird der Bereich von Punktsequenzdaten bis zu dem Faltpunkt bezogen.
-
In einem Programm zur maschinellen Bearbeitung, das von einer CAM ausgegeben wird, können Punkte, die auf lokal gestörte Weise positioniert sind, aufgrund eines Berechnungsproblems ausgegeben werden. Um das Unterscheiden derartiger anomaler Punkte von echten Faltpunkten zu ermöglichen, werden q (Balken) und p (Balken), die aus dem Mitteln von Richtungen von Segmenten resultieren, die Punktsequenzen miteinander verbinden, bestimmt, so dass der Punkt als ein Faltpunkt bestimmt wird, wenn eine Differenz zwischen den gemittelten Richtungen größer gleich einem Grenzwert ist. Die q (Balken) und p (Balken) sind in
3 beschrieben, wobei q (Balken) und p (Balken) die folgenden sind.
-
Der Rückwärtswegbestimmungsteil 30 empfängt Punktsequenzdaten von dem Punktsequenzbezugsteil 20, um zu bestimmen, ob die Punktsequenz ein Rückwärtsweg ist oder nicht. Die Bestimmung verwendet Informationen, die in dem Teil des Speicherns von Informationen segmentierter Kurven 50 gespeichert sind, und wird im Folgenden ausführlich beschrieben.
-
Wenn von der Punktsequenz bestimmt wird, dass sie kein Rückwärtsweg ist, wiederholt der Teil des Erzeugens segmentierter Kurven
40 einen Vorgang des Beziehens einer Teilpunktsequenz von dem Punktsequenzbezugsteil
20, um eine Teilkurve zu erzeugen, wodurch eine segmentierte Kurve mit dem Faltpunkt auf dem Werkzeugweg, der dem Endpunkt der segmentierten Kurve entspricht, erzeugt wird. Die Teilkurve ist eine parametrische Kurve, die durch den Startpunkt und den Endpunkt einer Teilpunktsequenz und durch andere Punkte verläuft. Eine B-Spline-Kurve wird als die parametrische Kurve verwendet; es kann jedoch eine beliebige andere Form einer Kurve, wie eine NURBS-Kurve oder eine Polynomkurve, verwendet werden. Die Teilkurve wird durch Folgendes ausgedrückt:
wobei
- u einen Parameter für eine Kurve bezeichnet und in den Wertebereich von 0 ≤ u ≤ 1 fällt,
- eine Position bezeichnet, die von einem Punkt auf der Kurve belegt wird, wenn der Parameterwert u ist,
- N1,3(u) eine B-Spline-Basisfunktion dritter Ordnung bezeichnet und
- einen Kontrollpunkt für eine B-Spline-Kurve bezeichnet.
-
Eine Kurve, die durch eine Punkteinheit verläuft, dass der Abstand zwischen einer Kurve, die von der Formel (1) ausgedrückt wird, und jedem der Punkte einer Teilpunktsequenz kleiner gleich einer voreingestellten Toleranz ist, d. h. eine Einheit:
wobei
- ε eine Toleranz bezeichnet,
- einen Punkt der Teilpunktsequenz bezeichnet,
- u̅k den Wert eines Parameters für einen Punkt auf der Kurve bezeichnet, der
am inächsten ist, und
- einen Punkt bezeichnet, der erhalten wird, wenn der Wert des Parameters u̅k ist.
-
Die Domäne des Parameters u wird durch einen Satz von Zahlen unterteilt, die Knoten U = (u0, ..., un+4) genannt werden. Folglich drückt die Formel (1) eine Kurve unter Verwendung der Knoten und der Kontrollpunkte als Variablen aus. Das Bestimmen von Werten für die Variablen bestimmt eine Kurve. Mehrere Verfahren zum Bestimmen einer derartigen Kurve, wie durch die Formel (1) ausgedrückt, wurden vorgeschlagen und sind wohl bekannt, wie in Les Piegl, Wayne Tiller, The NURBS Book, Springer-Verlag, und I.J. Schoenberg, Spline functions and the problem of graduation, Proceedings of the National Academy of Science of the U.S.A., 52(1964)), beschrieben. Die Beschreibung der Verfahren wird weggelassen.
-
Der Teil des Speicherns von Informationen segmentierter Kurven 50 speichert Informationen zu einer Kurve, die unter Verwendung segmentierter Kurven als Einheiten erzeugt wurde. 4 zeigt die Struktur von Daten segmentierter Kurven. Die Anzahl von Teilkurven zeigt die Anzahl von Teilkurven an, die in einer segmentierten Kurve enthalten sind, und nimmt einen Wert von 1 oder höher an. Ein Differenzial an einem Endpunkt ist das Differenzial einer parametrischen Kurve an dem Endpunkt. Teilkurvendaten sind eine Speicherung von Informationen zu jeder der Teilkurven, die in der segmentierten Kurve enthalten sind, und haben eine in 4 gezeigte Struktur. Die Positionen von Abschlusspunkten stellen den Startpunkt und den Endpunkt von Teilkurven dar. Die Anzahl von Punkten stellt die Anzahl von Punkten dar, die in einer Teilpunktsequenz enthalten sind, von der die Teilkurven stammen. Der Knoten ist der Wert jedes von Knoten der Teilkurve, die durch eine B-Spline-Kurve ausgedrückt wird, und ist ein Satz numerischer Werte zwischen 0 und 1. Die Länge stellt die Länge einer Faltlinie dar, die aus dem Verbinden der Punkte der Teilpunktsequenz unter Verwendung von Segmenten resultiert. Informationen zu segmentierten Kurven werden gespeichert, um als Informationen zu einem Vorwärtsweg genutzt zu werden, wenn ein Rückwärtsweg später auftritt. Im Allgemeinen ist der Rückwärtsweg mittels eines kurzen Wegs mit dem Vorwärtsweg verbunden, und folglich liegen nicht viele segmentierte Kurven zwischen dem Vorwärtsweg und dem Rückwärtsweg vor. Folglich wird eine Obergrenze für die Anzahl gespeicherter Daten segmentierter Kurven eingestellt, so dass, wenn die Anzahl gespeicherter Daten den Obergrenzenwert erreicht, die Daten nacheinander verworfen werden, wobei mit den ältesten Daten begonnen wird.
-
Ob der Werkzeugweg ein Rückwärtsweg ist oder nicht, wird bestimmt, indem die Punktsequenz, aus der eine segmentierte Kurve erzeugt werden soll, und gespeicherte Daten zu einer segmentierten Kurve verglichen werden. Wenn die im Folgenden beschriebenen Bedingungen (1) bis (3) alle erfüllt werden, wird die zu erzeugende segmentierte Kurve als der Rückwärtsweg bestimmt, für den der Vorwärtsweg eine der gespeicherten segmentierten Kurven ist.
-
Bedingung (1): Eine beliebige der gespeicherten segmentierten Kurven hat an dem Endpunkt davon eine Tangentialrichtung, die zu der Tangentialrichtung des Startpunkts der Punktsequenz entgegengesetzt ist.
-
Das bedeutet, dass der Vorwärtsweg und der Rückwärtsweg in ungefähr entgegengesetzten Richtungen sein müssen.
-
Bedingung (2): Der Endpunkt der segmentierten Kurve ist nahe dem Startpunkt der Punktsequenz.
-
Das bedeutet, dass der Vorwärtsweg und der Rückwärtsweg räumlich nah beieinander sein müssen.
-
Bedingung (3): Die Länge der segmentierten Kurve ist ungefähr identisch mit der Faltlinienlänge der Punktsequenz.
-
Das bedeutet, dass der Vorwärtsweg und der Rückwärtsweg eine ungefähr gleiche Länge haben und dass, wenn die Länge zu einen bestimmten Grad zwischen dem Vorwärtsweg und dem Rückwärtsweg variiert, bessere Ergebnisse erzielt werden können, indem dasselbe Kurvenerzeugungsverfahren wie das für den Vorwärtsweg verwendet wird.
-
Der Rückwärtswegerzeugungsteil
60 erzeugt eine Kurve auf der Basis der Punktsequenz, von der bestimmt wurde, dass sie ein Rückwärtsweg ist. Der Rückwärtsweg beinhaltet die gleiche Anzahl von Teilkurven wie die von Teilkurven in dem Vorwärtsweg. Für den Rückwärtsweg werden Teilpunktsequenzen auf der Basis der Punktsequenzlänge entnommen. Die Teilkurven des Vorwärtswegs werden mit C
1, ...., C
m (C
m ist die hintere Teilkurve) in Reihenfolge bezeichnet. Die Teilkurven des Rückwärtswegs werden mit C'
1, ...., C'
m (C'
m ist die hintere Teilkurve) in Reihenfolge bezeichnet. C'
m-i+1 liegt an einer Position, die C
i gegenüberliegt (i = 1, ..., m). Das Ausmaß des Rückwärtswegs in Bezug auf den Vorwärtsweg kann durch die Formel (3) unter Verwendung der Länge L einer segmentierten Kurve, die ein Kandidat für den Vorwärtsweg ist, und der Punktsequenzlänge L' ausgedrückt werden.
-
Die Teilpunktsequenz, von der C'
m-i+1 stammt, wird genommen, so dass die Punktsequenzlänge I
m-i+1' der Teilpunktsequenz durch die Formel (4) unter Verwendung der Länge l
i von C
i und r ausgedrückt wird.
-
Im Allgemeinen liegt keiner der Punkte, der in der Punktsequenz enthalten ist, an einer Position vor, die Im-i+1' entspricht, und folglich wird ein neuer Punkt an dieser Position als ein Endpunkt der Teilpunktsequenz hinzugefügt. Sobald die Teilpunktsequenz folglich bestimmt wurde, kann derselbe Vorgang zum Erzeugen einer Teilkurve wie der für normale segmentierte Kurven verwendet werden.
-
Ein Vorgang zum Erzeugen einer Kurve wird gemäß einem Ablaufdiagramm in 5 beschrieben.
-
[Schritt SA100] Eine vorher bestimmte Anzahl von Punkten wird einer spezifizierten Punktsequenz entnommen.
-
[Schritt SA101] Es wird bestimmt, ob die genommene Punktsequenz ein Teil eines Rückwärtswegs ist oder nicht. Ein Verfahren zur Bestimmung wird im Folgenden beschrieben.
-
[Schritt SA102] Wenn von der Punktsequenz bestimmt wird, dass sie kein Rückwärtsweg ist, wird eine segmentierte Kurve unter Anwendung eines normalen Verfahrens erzeugt. Das Verfahren wird im Folgenden beschrieben.
-
[Schritt SA103] Wenn von der Punktsequenz bestimmt wird, dass sie ein Rückwärtsweg ist, wird eine segmentierte Kurve unter Anwendung eines Verfahrens für den Rückwärtsweg erzeugt. Das Verfahren wird im Folgenden beschrieben.
-
[Schritt SA104] Informationen zu der erzeugten segmentierten Kurve werden in den Daten segmentierter Kurven gespeichert.
-
[Schritt SA105] Es wird bestimmt, ob ein beliebiger Punkt der spezifizierten Punktsequenz verbleibt, der nicht zum Erzeugen einer Kurve verwendet wurde, oder nicht. Wenn ein beliebiger Punkt der spezifizierten Punktsequenz verbleibt, kehrt der Vorgang zu Schritt SA100 zurück, um mit dem Erzeugen einer Kurve fortzufahren. Wenn alle Punkte zur Kurvenbildung verwendet wurden, fährt der Vorgang mit Schritt SA106 fort.
-
[Schritt SA106] Daten zu der erzeugten Kurve werden ausgegeben, um die Kurvenerzeugung zu beenden. In diesem Fall werden die Kurvendaten ausgegeben, nachdem alle Punkte zur Kurvenbildung verwendet wurden. Ausgaben mit mehr Details können jedoch bereitgestellt werden; beispielsweise können die Daten jedes Mal ausgegeben werden, wenn eine segmentierte Kurve erzeugt wird.
-
Nun wird ein Vorgang für den Schritt SA101 des Bestimmens, ob der Werkzeugweg ein Rückwärtsweg ist oder nicht, gemäß einem Ablaufdiagramm in 6 beschrieben.
-
[Schritt SB100] Gemäß Bedingung (1) wird die Tangentialrichtung des Startpunkts der Teilpunktsequenz bestimmt, und wenn eine beliebige der gespeicherten segmentierten Kurven an dem Endpunkt davon eine Tangentialrichtung hat, die zu der Tangentialrichtung des Startpunkts der Teilpunktsequenz entgegengesetzt ist, wird diese segmentierte Kurve als ein Kandidat bestimmt und der Vorgang fährt mit Schritt SB101 fort. Wenn keine der gespeicherten segmentierten Kurven an dem Endpunkt davon eine Tangentialrichtung hat, die zu der Tangentialrichtung des Startpunkts der Punktsequenz entgegengesetzt ist, fährt der Vorgang mit Schritt SB104 fort. Ein beliebiges verschiedener Verfahren zum Bestimmen der Tangentialrichtung kann verwendet werden. Mehrere Punkte nahe dem Punkt von Interesse können beispielsweise genommen werden, und die Richtungen von Segmenten, die die Punkte miteinander verbinden, können gemittelt werden. Es wird bestimmt, ob die Tangenten zueinander entgegengesetzt sind oder nicht, indem der Winkel θ zwischen den zwei Tangenten mit einem Grenzwert verglichen wird. Die Tangenten werden als zueinander entgegengesetzt bestimmt, wenn der Grenzwert ≤ θ ≤ 180°.
-
[Schritt SB101] Gemäß Bedingung (2) wird der Abstand zwischen dem Startpunkt der Punktsequenz und dem Endpunkt der segmentierten Kurve, von der in Schritt SB100 bestimmt wurde, dass sie ein Kandidat für den Vorwärtsweg ist, bestimmt, und wenn der Abstand kürzer gleich dem Grenzwert ist, wird der Endpunkt der segmentierten Kurve als nahe dem Startpunkt der Punktsequenz bestimmt.
-
[Schritt
SB102] Gemäß Bedingung (3) wird die Länge der Punktsequenz, aus der eine segmentierte Kurve erzeugt werden soll, mit der Länge der segmentierten Kurve, die ein Kandidat für den Vorwärtsweg ist, verglichen. Von der Länge der Punktsequenz wird angenommen, dass sie die Länge einer Faltlinie ist, die die Punkte der Punktsequenz miteinander verbindet. Von dem Endpunkt der Punktsequenz wird angenommen, dass er der nächste Faltpunkt auf dem Werkzeugweg ist. Das oben beschriebene Verfahren zum Bestimmen eines Faltpunkts wird verwendet. Die Länge der segmentierten Kurve, die ein Kandidat für den Vorwärtsweg ist, wird mit L bezeichnet, die Punktsequenzlänge wird mit L' bezeichnet und der Grenzwert wird mit k bezeichnet. Wenn die Formel (5) etabliert wurde, wird dann von der Punktsequenz und der segmentierten Kurve bestimmt, dass sie eine ungefähr gleiche Länge haben.
-
[Schritt SB103] Ein Flag wird gesetzt, das anzeigt, dass der Werkzeugweg ein Rückwärtsweg ist.
-
[Schritt SB104] Ein Flag wird gelöscht, das anzeigt, dass der Werkzeugweg ein Rückwärtsweg ist.
-
Nun wird ein Vorgang für den Schritt SA102 in 5 des Erzeugens einer normalen segmentierten Kurve gemäß einem Ablaufdiagramm in 7 beschrieben.
-
[Schritt SC100] Eine Anfangskurve ist eine Bezierkurve, die durch den Startpunkt und den Endpunkt der Punktsequenz verläuft und für die Differenziale an den Startpunkten und den Endpunkten spezifizierte Werte haben. Der Wert des Differenzials an dem Startpunkt wird unter Verwendung eines Verfahrens, das in Les Piegl, Wayne Tiller, The NURBS Book, Springer-Verlag, beschrieben wird, und unter Verwendung des Startpunkts und der Punkte nahe dem Startpunkt bestimmt. Dies gilt auch für den Endpunkt. Ein anderes Verfahren kann ein Differenzial an dem Startpunkt einer Bezierkurve verwenden, die durch den Endpunkt und drei Punkte nahe dem Startpunkt verläuft. Für den Endpunkt ein Differenzial an dem Endpunkt einer Bezierkurve, die durch den Startpunkt und drei Punkte nahe dem Endpunkt verläuft.
-
[Schritt SC101] Der Abstand zwischen der Kurve und jedem der Punkte der Teilkurve, die durch die Formel (2) angegeben wird, wird bestimmt und der Höchstwert des Abstands wird erhalten.
-
[Schritt SC102] Wenn der Höchstwert kleiner gleich der Toleranz ist, wird die aktuelle Kurve als eine Teilkurve bestimmt und der Vorgang wird beendet. Wenn der Höchstwert größer als die Toleranz ist, fährt der Vorgang mit Schritt SC103 fort.
-
[Schritt SC103] Ein interner Knoten und ein Kontrollpunkt werden der Kurve hinzugefügt, um die Kurve zu modifizieren, und der Vorgang kehrt zu Schritt SC101 zurück. Der Wert des hinzugefügten Knotens wird unter Verwendung eines beliebigen der Verfahren bestimmt, die in Les Piegl, Wayne Tiller, The NURBS Book, Springer-Verlag, beschrieben werden. Die modifizierte Kurve ist eine B-Spline-Kurve, die in der Form der Formel (1) ausgedrückt wird.
-
[Schritt SC104] Informationen zu der erzeugten Teilkurve werden in den Teilkurvendaten gespeichert.
-
[Schritt SC105] Wenn der Endpunkt der letzten erzeugten Teilkurve ein Faltpunkt auf dem Werkzeugweg ist, wird bestimmt, dass der Endpunkt der segmentierten Kurve erreicht wurde, und der Vorgang wird beendet. Wenn der Endpunkt der letzten erzeugten Teilkurve kein Faltpunkt auf dem Werkzeugweg ist, fährt der Vorgang mit Schritt SC106 fort.
-
[Schritt SC106] Eine Sequenz einer vorher bestimmten Anzahl von Punkten wird neu als eine Teilpunktsequenz entnommen und der Vorgang kehrt zum Schritt SC100 des Erzeugens einer Anfangskurve zurück.
-
Schließlich wird ein Vorgang für Schritt SA103 in 5, in dem die segmentierte Kurve des Rückwärtswegs erzeugt wird, gemäß einem Ablaufdiagramm in 8 beschrieben.
-
[Schritt SD100] Der Wert von r in der Formel (3) wird bestimmt. Wenn von dem Werkzeugweg bestimmt wird, dass er ein Rückwärtsweg ist, wurde die Sequenz bis zu dem Endpunkt des Rückwärtswegs gelesen. Folglich kann der Wert von L' bestimmt werden.
-
[Schritt SD101] Eine Teilpunktsequenz wird entnommen, so dass die resultierende Punktsequenzlänge der Länge entspricht, die von der Formel (4) angegeben wird.
-
[Schritt SD102] Knoten werden aus den Teilkurvendaten zu der entsprechenden Teilkurve des Vorwärtswegs bezogen und umgekehrt. Die umgekehrten Knoten werden dazu verwendet, eine B-Spline-Kurve zu erzeugen. Die Umkehrung eines Knotens bedeutet, dass, wenn der ursprüngliche Knoten mit ui bezeichnet wird, ein neuer Knoten, der mit 1 - ui bezeichnet wird, erzeugt wird. Für die Erzeugung normaler segmentierter Kurven ist die Anfangskurve eine Bezierkurve, wohingegen die Kurve des Rückwärtswegs eine B-Spline-Kurve ist, die unter Verwendung von Informationen zu dem Vorwärtsweg erhalten wird.
-
[Schritt SD103] bis [Schritt SD105] Die Verarbeitung in diesen Schritten des Erzeugens einer Teilkurve selbst ist identisch mit der Verarbeitung für die Erzeugung normaler segmentierter Kurven.
-
[Schritt SD106] Die Verarbeitung zum Speichern von Teilkurveninformationen ist ebenfalls mit der Verarbeitung bei der Erzeugung normaler segmentierter Kurven identisch.
-
[Schritt SD107] Die Verarbeitung zum Bestimmen des Endes der Erzeugung segmentierter Kurven ist ebenfalls mit der Verarbeitung bei der Erzeugung normaler segmentierter Kurven identisch.
-
Der Kurvenausgabeteil 70 gibt Daten zu der resultierenden Kurve in einem vorher bestimmten Format aus. Wenn eine Kurvenerzeugungsvorrichtung von der numerischen Steuervorrichtung getrennt ist, wandelt der Kurvenausgabeteil 70 die Kurve in ein Format um, das von der numerischen Steuervorrichtung dekodiert werden kann, beispielsweise ein NURBS-Befehlsformat. Wenn die Kurvenerzeugungsvorrichtung in die numerische Steuervorrichtung eingebaut ist, so dass die Werkzeugmaschine eine maschinelle Bearbeitung durchführen kann, während die Daten in die Kurve umgewandelt werden, wandelt der Kurvenausgabeteil 70 die Daten in ein internes Format um, das von der numerischen Steuervorrichtung leicht verarbeitet werden kann, d. h. ein Format, das von dem NC-Befehlsdekodierungsteil ausgegeben wird, wenn ein Programm zur maschinellen Bearbeitung einen Kurveninterpolationsbefehl beinhaltet.
-
In den Ausführungsformen wird die B-Spline-Kurve als eine parametrische Kurve verwendet. Um die parametrische Kurve in eine andere Kurvenform, wie eine NURBS-Kurve, auszuweiten, kann dasselbe Konzept auf die Kurve bei geänderter Ausdrucksform der Formel 1 angewendet werden.