-
ALLGEMEINER STAND DER TECHNIK
-
Gebiet der Erfindung
-
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.
-
Beschreibung des Standes der Technik
-
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 (
japanische Offenlegungsschrift Nr. 2013-171376 ,
japanische Offenlegungsschrift Nr. 2007-293478 ,
japanische Offenlegungsschrift Nr. 2006-309645 ,
japanische Offenlegungsschrift Nr. 2005-182437 und
japanische Offenlegungsschrift Nr. 2004-078516 ).
-
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-Kuve 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, das 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.
-
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.
-
Eine Bearbeitungskurven-Erzeugungsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung erzeugt eine Bearbeitungskurve eines Werkzeugs, das zum maschinellen Bearbeiten eines Werkstücks verwendet wird, indem ein Vorgang zum Aufnehmen eines Teils einer Punktsequenz, die den Werkzeugweg ausdrückt, als eine Teilpunktsequenz wiederholt und eine Teilkurve erzeugt wird. Die Bearbeitungskurven-Erzeugungsvorrichtung weist eine Kurveninformations-Speichereinheit zum Speichern – für jede von segmentierten Kurven, bei denen es sich um einzelne Kurven-teile handelt, die den Werkzeugweg bereitstellen – von Informationen segmentierter Kurven, die eine Anzahl von Teilkurven, die in der segmentierten Kurve enthalten sind, eine Tangentialrichtung an einem Endpunkt der segmentierten Kurve und Teilkurveninformationen, die mindestens eine einer Teilkurvenlänge jeder der Teilkurven oder einer Anzahl von Punkten der Teilpunktsequenz und Informationen beinhalten, die die Teilkurve mathematisch definieren, umfassen, eine Kurveninformations-Nutzungsbestimmungseinheit zum Bestimmen, ob die gespeicherten Informationen segmentierter Kurven verwendet werden sollen oder nicht, wenn die Teilkurve erzeugt wird, und eine Kurvenerzeugungseinheit unter Nutzung gespeicherter Informationen zum Erzeugen einer Teilkurve, wobei die Informationen segmentierter Kurven genutzt werden. Wenn die Kurveninformations-Nutzungsbestimmungseinheit bestimmt, die gespeicherten Informationen zu nutzen, erzeugt die Kurvenerzeugungseinheit unter Nutzung gespeicherter Informationen eine Teilkurve. Wenn ein Bearbeitungsweg, der von einer Punktsequenz bereitgestellt wird, kurvenförmig ist, kann folglich in einem Bereich, in dem eine Kurve, die ähnlich wie eine andere Kurve geformt ist, erzeugt werden soll, eine Kurve erhalten werden, die die Bedingung erfüllt.
-
Die Kurveninformations-Nutzungsbestimmungseinheit kann eine Einheit zum Bestimmen sein, ob ein aktueller Weg ein Rückwärtsweg eines sich hin- und herbewegenden Bearbeitungswegs ist oder nicht. Die Ausführungsform stellt folglich Kurven mit kleineren stufenartigen Unterschieden zwischen dem Vorwärtsweg und dem Rückwärtsweg des sich hin- und herbewegenden Bearbeitungswegs als das herkömmliche Kurvenbildungsverfahren bereit.
-
Das Aufnehmen der Teilpunktsequenz kann durchgeführt werden, indem entweder ein Verfahren, das auf der Anzahl von Punkten basiert, oder ein Verfahren, das auf einer Länge der Teilpunktsequenz basiert, ausgewählt wird. Folglich kann bei der Kurvenbildung in der Punktsequenz die Zeit, die für die Kurvenerzeugung benötigt wird, verkürzt werden und ähnliche Kurven können erzeugt werden, indem eine Unterteilung auf der Basis der Länge der Punktsequenz nur auf gewünschte Bereiche angewendet wird.
-
Die Auswahl des Verfahrens zum Aufnehmen der Teilpunktsequenz kann auf der Basis dessen durchgeführt werden, ob der Werkzeugweg ein Rückwärtsweg eines sich hin- und herbewegenden Wegs ist oder nicht. Folglich können stufenartige Unterschiede zwischen dem Vorwärtsweg und dem Rückwärtsweg des sich hin- und herbewegenden Bearbeitungswegs unterdrückt werden, wobei Kurven effizient erzeugt werden.
-
Ein Bearbeitungskurven-Erzeugungsverfahren gemäß einer Ausführungsform der vorliegenden Erfindung beinhaltet das Erzeugen einer Bearbeitungskurve eines Werkzeugs, das zum maschinellen Bearbeiten eines Werkstücks verwendet wird, indem ein Vorgang zum Aufnehmen eines Teils einer Punktsequenz, die den Werkzeugweg ausdrückt, als eine Teilpunktsequenz wiederholt und eine Teilkurve erzeugt wird. Das Bearbeitungskurven-Erzeugungsverfahren beinhaltet des Speichern – für jede von segmentierten Kurven, bei denen es sich um einzelne Kurventeile handelt, die den Werkzeugweg bereitstellen – von Informationen segmentierter Kurven, die eine Anzahl von Teilkurven, die in der segmentierten Kurve enthalten sind, eine Tangentialrichtung an einem Endpunkt der segmentierten Kurve und Teilkurveninformationen, die mindestens eine einer Teilkurvenlänge jeder der Teilkurven oder einer Anzahl von Punkten der Teilpunktsequenz und Informationen beinhalten, die die Teilkurve mathematisch definieren, umfassen, und das Bestimmen, ob die gespeicherten Informationen segmentierter Kurven verwendet werden sollen oder nicht, wenn die Teilkurve erzeugt wird, und bei Bestimmen, dass die gespeicherten Informationen segmentierter Kurven verwendet werden soll, das Erzeugen einer Teilkurve, die die Informationen segmentierter Kurven nutzt.
-
Ob die gespeicherten Informationen segmentierter Kurven verwendet werden oder nicht, wenn die Teilkurve erzeugt wird, kann in Abhängigkeit davon bestimmt werden, ob der Werkzeugweg ein Rückwärtsweg eines sich hin- und herbewegenden Bearbeitungswegs ist oder nicht.
-
Das Aufnehmen der Teilpunktsequenz kann durchgeführt werden, indem entweder ein Verfahren, das auf der Anzahl von Punkten basiert, oder ein Verfahren, das auf einer Länge der Teilpunktsequenz basiert, ausgewählt wird. Darüber hinaus kann die Auswahl des Verfahrens zum Aufnehmen der Teilpunktsequenz auf der Basis dessen durchgeführt werden, ob der Werkzeugweg ein Rückwärtsweg eines sich hin- und herbewegenden Wegs ist.
-
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.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
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.
q →, p →
-
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,
C →(u) eine Position bezeichnet, die von einem Punkt auf der Kurve belegt wird, wenn der Parameterwert u ist,
N
1,3(u) eine B-Spline-Basisfunktion dritter Ordnung bezeichnet und
P →
i 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,
Q →
k einen Punkt der Teilpunktsequenz bezeichnet,
u k den Wert eines Parameters für einen Punkt auf der Kurve bezeichnet, der Q →
k am nächsten ist, und
C →(u k) 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 C1, ..., Cm (Cm 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 Ci 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. r = L' / L (3)
-
Die Teilpunktsequenz, von der C'm-i+1 stammt, wird genommen, so dass die Punktsequenzlänge lm-i+1' der Teilpunktsequenz durch die Formel (4) unter Verwendung der Länge li von Ci und r ausgedrückt wird. lm-i+1' = li × r (4)
-
Im Allgemeinen liegt keiner der Punkte, der in der Punktsequenz enthalten ist, an einer Position vor, die lm-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 S8104 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. 1 – k ≤ L / L' ≤ 1 + k (5)
-
[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 Bézierkurve, 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 Bézierkurve verwenden, die durch den Endpunkt und drei Punkte nahe dem Startpunkt verläuft. Für den Endpunkt ein Differenzial an dem Endpunkt einer Bézierkurve, 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 Bézierkurve, 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.
-
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 2013-171376 [0002]
- JP 2007-293478 [0002]
- JP 2006-309645 [0002]
- JP 2005-182437 [0002]
- JP 2004-078516 [0002]
-
Zitierte Nicht-Patentliteratur
-
- 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) [0002]
- 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) [0037]
- Les Piegl, Wayne Tiller, The NURBS Book, Springer-Verlag [0064]
- Les Piegl, Wayne Tiller, The NURBS Book, Springer-Verlag [0067]