-
Die Erfindung betrifft ein Verfahren zur Glättung von Polygonzügen in NC-Programmen. Ein solches Verfahren erlaubt es, unerwünscht starke Richtungswechsel in NC-Programmen, die vorwiegend aus Linearsätzen bestehen, zu glätten.
-
NC-Programme, die mittels eines NC-Programmiersystems generiert werden, bestehen häufig aus einer Folge von Punkten. Verbindet man diese Punkte durch Linearsegmente entstehen Polygonzüge. Bei der Abarbeitung eines solchen NC-Programms in einer Werkzeugmaschine entstehen mitunter unerwünscht starke Richtungswechsel zwischen den Linearsegmenten. Diese werden unter anderem durch numerische Ungenauigkeiten bei der Bahngenerierung im NC-Programmiersystem hervorgerufen. Starke Richtungswechsel führen aber zu einem unnötigem Zeitverlust, da für ihre Erzeugung die Vorschubgeschwindigkeit verringert werden muss, um keine dynamischen Grenzwerte der Maschinenachsen zu überschreiten. Außerdem werden dabei störende Unregelmäßigkeiten auf der Werkstückoberflache erzeugt.
-
Daher kann es sinnvoll sein, solche Polygonzüge vor der Weiterverarbeitung in einer numerischen Steuerung zu glätten.
-
So beschreibt die
DE 4303090 A1 ein Verfahren zur Erzeugung von Führungsgrößen für Lageregelkreise in numerisch gesteuerten Maschinen, bei dem aus Folgen von Bahnsollwerten durch Filterung und Wichtung Lagesollwerte erzeugt werden, die dem Lageregelkreis als Führungsgröße zugeführt werden. Durch die Filterung und Wichtung werden starke Richtungswechsel, die in den Bahnsollwerten enthalten sind, gedämpft.
-
Nachteilig an einem Verfahren dieser Art ist es, dass die Wirksamkeit der Dämpfung von der Vorschubgeschwindigkeit der Werkzeugmaschine abhängig ist. So ist bei hoher Vorschubgeschwindigkeit eine starke Dämpfung zu erwarten, während langsamer Vorschub zu schwächerer Dämpfung führt.
-
In der
DE 4430003 A1 wird ein Verfahren vorgeschlagen, bei dem Datensätze, bestehend aus einen Polygonzug beschreibenden Punkten, bereits geglättet werden, bevor sie der Werkzeugmaschinensteuerung übergeben werden. Zur Glättung des Polygonzuges werden mehrere aufeinanderfolgende Punkte durch Polynome höherer Ordnung miteinander verbunden, d.h. die Punkte werden nicht mehr durch Linearsegmente verbunden, sondern durch Kurvenzüge angenähert. Ein Nachteil dieses Verfahrens ist, dass die Approximation durch Polynome sehr rechenintensiv ist, ein weiterer, dass gerade bei unregelmäßigen Polygonzügen an den Verbindungsstellen zweier Kurvenzüge dennoch unerwünscht starke Richtungswechsel auftreten können.
-
Die
EP 1 389 749 A2 beschreibt ein Verfahren zum Glätten von Polygonzügen, bei dem zuerst Hilfspunkte vor und nach einem zu verschiebenden Punkt eingeführt werden, auf deren Basis dann eine Näherungskurve berechnet wird. Anschließend werden die zu verschiebenden Punkte des Polygonzuges zur Näherungskurve verschoben.
-
Insbesondere die Berechnung der Näherungskurve erfordert aber eine hohe Rechenleistung.
-
Es ist daher Aufgabe der Erfindung, ein verbessertes Verfahren zum Glätten von Polygonzügen anzugeben.
-
Diese Aufgabe wird gelöst durch ein Verfahren nach Anspruch 1. Vorteilhafte Details des Verfahrens ergeben sich aus den von Anspruch 1 abhängigen Ansprüchen.
-
Es wird nun ein Verfahren vorgeschlagen, bei dem Datensätze, die Koordinaten von Punkten enthalten, die einen ursprünglichen Polygonzug beschreiben, an eine geometrische Filtereinheit übertragen werden, in der die Koordinaten der Punkte so verschoben werden, dass der resultierende Polygonzug gegenüber dem ursprünglichen Polygonzug geglättet ist. Anschließend werden die Koordinaten der Punkte des resultierenden Polygonzugs an eine numerische Steuerung übertragen.
-
Besonders vorteilhaft ist es, wenn als Kriterium für die Verschiebung eines Punktes der Verlauf des Polygonzuges sowohl vor, als auch nach dem zu filternden Punkt herangezogen wird. Das Verfahren zeigt die besten Ergebnisse, wenn Punkte, die im Verlauf des Polygonzuges näher am zu filternden Punkt liegen, stärker gewichtet werden als weiter entfernte Punkte.
-
Weitere Vorteile sowie Einzelheiten der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung eines bevorzugten Verfahrens zur Glättung von Polygonzügen anhand der Figuren. Dabei zeigt
- 1 eine Anordnung zum Erstellen und Verarbeiten von Polygonzügen,
- 2 ein Beispiel für einen Polygonzug vor und nach der Glättung in der geometrischen Filtereinheit,
- 3 eine Darstellung eines bevorzugten Glättungsalgorithmus,
- 4 ein Beispiel einer Gewichtungsfunktion und
- 5 ein Blockdiagramm mit den Verfahrensschritten.
-
Wie in 1 dargestellt, werden Datensätze, die von einem NC-Programmiersystem 10 erzeugt werden, in eine geometrische Filtereinheit 20 übertragen. Dort werden Datensätze, die Koordinaten von Punkten enthalten, die einen Polygonzug darstellen, geglättet und zu einer numerischen Steuerung 30 weitergeleitet. Alle anderen Kurvenformen, wie sie z.B. durch Kegelschnitte oder aber durch Polynome höherer Ordnung erzeugt werden können, bleiben von der geometrischen Filtereinheit 20 unbeeinflusst und werden direkt an die numerische Steuerung 30 geschickt. Die numerische Steuerung 30 verwendet die ankommenden Datensätze zur Ansteuerung der Antriebe einer Werkzeugmaschine 40, um ein Werkstück in der gewünschten Art und Weise zu bearbeiten.
-
2 zeigt beispielhaft einen ursprünglichen Polygonzug 50, dessen Verlauf durch die Punkte P1 - P5 bestimmt ist, sowie einen resultierenden Polygonzug 51, definiert durch die Punkte P1* - P5*, der gegenüber dem ursprünglichen Polygonzug 50 geglättet ist. Zur Vereinfachung wurde eine zweidimensionale Darstellung gewählt, es sei an dieser Stelle darauf hingewiesen, dass das Verfahren selbstverständlich auch im dreidimensionalen Raum anwendbar ist. Der resultierende Polygonzug 51 ist durch einen deutlich glätteren Verlauf gekennzeichnet und führt dadurch bei der Bearbeitung des Werkstücks in der Werkzeugmaschine zu einer glätteren Kontur als der ursprüngliche Polygonzug 50. Darüber hinaus ergibt sich eine höhere Bearbeitungsgeschwindigkeit, da die notwendigen Richtungswechsel für die Bearbeitung des Werkstücks weniger stark ausgeprägt sind und somit keine starken Absenkungen der Vorschubgeschwindigkeit der Werkzeugmaschine notwendig sind.
-
Die Anzahl der Punkte P1* - P5*, aus denen der resultierende Polygonzug 51 besteht, entspricht dabei im Wesentlichen der Anzahl der Punkte P1 - P5 , aus denen der ursprüngliche Polygonzug 50 besteht.
-
Anhand der 3 und 4 soll nun ein bevorzugtes Verfahren zur Glättung von Polygonzügen beschrieben werden. 3 zeigt einen Ausschnitt eines ursprünglichen Polygonzugs 60, dessen Verlauf durch die Punkte P2 - P2 bestimmt ist. Als zu filternder Punkt wird im folgenden P0 angenommen.
-
Zuerst wird eine Filterlänge F definiert, die festlegt, in welchem Bereich der ursprüngliche Polygonzug 60 vor und nach dem zu filternden Punkt P0 zur Filterung herangezogen wird. Insgesamt wird also ein Bereich von 2*F für die Filterung des Punktes P0 betrachtet. Die Filterlänge F wird dabei stets als Länge des Polygonzugs vom zu filternden Punkt P0 entlang der Linearsegmente zwischen den Punkten P2 - P2 gemessen. Welcher Wert für die Filterlänge F gewählt wird, hängt von verschiedenen Faktoren ab, wie z.B. den zugelassenen Maßtoleranzen oder der geforderten Oberflächengüte. In der Praxis hat sich ein Wert von einem Millimeter für die Filterlänge F (F = 1 mm) in vielen Fällen als praktikabel erwiesen.
-
Es werden nun, beginnend bei Punkt P0 , j Paare von Hilfspunkten [HP-1 ; HP+1], [HP-2 ; HP+2 ], ..., [HP-j ; HP+j ] erzeugt, die die Filterlänge F entlang des Polygonzugs vor und nach dem Punkt P0 jeweils in j gleiche Teile der Länge s unterteilen. In 3 wurde zur Vereinfachung der Darstellung der Wert j = 3 für die Anzahl der Paare von Hilfspunkten gewählt, in der Praxis hat sich j = 5 für viele Anwendungen als besonders günstig herausgestellt. Je nach Anwendung kann für j aber auch ein anderer Wert eingesetzt werden.
-
Dem zu filternden Punkt P0 sowie den Paaren von Hilfspunkten [HP-1 ; HP+1 ], [HP-2 ; HP+2 ], ..., [HP-1 ; HP+j ] werden nun mittels einer Gewichtungsfunktion w Gewichtungsfaktoren wn zugewiesen. 4 zeigt einen typischen Verlauf einer Gewichtungsfunktion w. Sie bildet zusammen mit der horizontalen Koordinatenachse ein gleichschenkliges Dreieck, dessen Schenkel die horizontale Koordinatenachse in beiden Richtungen im Abstand der Filterlänge F schneiden. Durch diesen Verlauf ist sichergestellt, dass Hilfspunkte, die näher am zu filternden Punkt P0 liegen, stärker gewichtet werden als Hilfspunkte, die weiter entfernt liegen. Außerdem fallen bei dieser speziellen Gewichtungsfunktion bei der Berechnung der Koordinaten des resultierenden Punktes P0* die beiden äußeren Hilfspunkte HP-j und HP+j weg, da die dazugehörigen Gewichtungsfaktoren w-j, und w+j gleich ‚0‘ sind. Die Skalierung der Gewichtungsfunktion in der vertikalen Koordinatenachse ist beliebig. Vorteilhafterweise wird der Schnittpunkt der Gewichtungsfunktion w mit der vertikalen Koordinatenachse auf ‚1‘ normiert. Da dieser Schnittpunkt gleichzeitig dem Wert des Gewichtungsfaktors w0 für den zu filternden Punkt P0 entspricht, kann dadurch auf eine Gewichtung des zu filternden Punktes P0 verzichtet werden.
-
Zur Berechnung der Koordinaten des resultierenden Punktes
P0* werden die Koordinaten der Hilfspunkte [
HP-1 ; HP
+1], [
HP-2 ; HP
+2], ..., [
HP-j ;
HP+j ] und die ursprünglichen Koordinaten des Punktes
P0 mittels der Gewichtungsfaktoren
wn gewichtet, die gewichteten Koordinaten aufsummiert und normiert nach der Vorschrift:
-
Auf diese Weise werden außer dem ersten und dem letzten Punkt alle Punkte des ursprünglichen Polygonzugs 60 gefiltert. Da der erste und der letzte Punkt eines Polygonzugs stets unveränderliche Positionen auf der Außenkontur des Werkstücks markieren, bleiben deren Koordinaten von der geometrischen Filterung ausgeschlossen
-
Aus Gründen der Übersichtlichkeit werden in der weiteren Beschreibung Punkte, die ursprüngliche Polygonzüge 50, 60 definieren, mit PI bezeichnet und Punkte, die den Verlauf von resultierenden Polygonzügen 51 bestimmen, mit PI*.
-
In 5 sind die einzelnen Verfahrensschritte noch einmal in einem Blockdiagramm zusammengefasst. Im Schritt 100 werden die Datensätze, die einen Polygonzug 50, 60 definieren, an die geometrische Filtereinheit 20 übertragen. Daraufhin wird im Schritt 110 eine Filterlänge F bestimmt. Die Glättung des ursprünglichen Polygonzugs 50, 60 durch Verschiebung der Punkte PI findet in Schritt 120 statt. Er ist in drei Schritte untergliedert: in Schritt 121 werden Paare von Hilfspunkten [HP-1 ; HP+1 ], [HP-2 ; HP+2 ], ..., [HP-j ; HP+j ] vor und nach dem zu filternden Punkt P0 generiert, Schritt 122 dient zur Ermittlung von Gewichtungsfaktoren wn und in Schritt 123 werden schließlich die Koordinaten des resultierenden Punktes P0* berechnet. In Schritt 130 werden die Koordinaten der Punkte PI* des resultierenden Polygonzugs 51 zur weiteren Verarbeitung an eine numerische Steuerung 30 geschickt.
-
Es sei an dieser Stelle darauf hingewiesen, dass 5 nur beispielhaft zu sehen ist und im Rahmen der Erfindung die einzelnen Verfahrensschritte variieren können. So ist die Bestimmung der Filterlänge F in Schritt 110 als optional zu betrachten. Sie kann beispielsweise entfallen, wenn die Filterlänge F fest in der geometrischen Filtereinheit 20 vorgegeben ist oder automatisch durch Berechnung erzeugt wird. Des weiteren kann in Schritt 120 auch ein alternatives Verfahren zur Verschiebung der Punkte PI eingesetzt werden.
-
Da zur Durchführung des erfindungsgemäßen Verfahrens sowohl Punkte PI vor dem zu filternden Punkt P0 als auch Punkte PI nach dem zu filternden Punkt P0 betrachtet werden, sind in der geometrischen Filtereinheit 20 Mittel zum Abspeichern von Datensätzen vorgesehen. Als ein Datensatz sind hierbei die Koordinaten eines Punktes PI des Polygonzugs 50, 60 zu verstehen. Die Mittel zum Abspeichern von Datensätzen können beispielsweise aus einem Ringspeicher bestehen. Dieser wird zu Beginn des Verfahrens mit Koordinaten von Punkten PI des ursprünglichen Polygonzugs 50, 60 gefüllt. Sobald die Koordinaten eines Punktes PI im Ringspeicher, der sich vor dem aktuell zu filternden Punkt P0 befindet, für die Glättung nicht mehr relevant sind, werden sie verworfen und der Ringspeicher durch Koordinaten eines Punktes PI , der sich nach dem aktuell zu filternden Punkt P0 befindet, wieder gefüllt. Nicht mehr relevant ist ein Punkt, wenn zwischen ihm und dem zu filternden Punkt P0 noch ein Punkt PI existiert, der mindestens die Filterlänge F vom zu filternden Punkt P0 entfernt ist.
-
Für den Fall, dass der Abstand zwischen dem zu filternden Punkt P0 und dem ersten oder letzten Punkt des Ringspeichers weniger als eine Filterlänge F beträgt, werden nur so viele Paare von Hilfspunkten [HP-1 ; HP+1], [HP-2 ; HP+2 ], ..., [HP-j ; HP+j ] erzeugt, wie nach der obigen Vorschrift generierbar sind.
-
Da es selbstverständlich innerhalb eines Polygonzugs 50, 60 Punkte PI geben kann, deren räumliche Position nicht verändert werden darf, weil sie wichtig für die Außenkontur des zu produzierenden Werkstücks sind, ist es vorteilhaft, wenn die Anwendung des Verfahrens zur Glättung für jeden Punkt des Polygonzuges 50, 60 wählbar ist, d.h. gezielt aktiviert oder deaktiviert werden kann. Das kann beispielsweise durch entsprechende Kommandos im NC-Programm geschehen.
-
Außerdem ist es sinnvoll, dass ein Grenzwert für die maximale Verschiebung der Punkte PI des ursprünglichen Polygonzugs 50, 60 existiert, der verwendet wird, wenn der resultierende Punkt P0*, verschoben durch die obige Vorschrift, weiter als der Grenzwert vom ursprünglichen Punkt P0 entfernt ist. Dadurch wird gewährleistet, dass der resultierende Polygonzug 51 und somit die Außenkontur des Werkstücks nicht zu weit von der im NC-Programmiersystem 10 ermittelten Form abweicht. Der Grenzwert kann dabei fest in der geometnschen Filtereinheit 20 vorgegeben oder auch über das NC-Programm einstellbar sein.
-
Abschließend muss auch beachtet werden, dass die Glättung eines Polygonzugs 50, 60 den Anstieg langer Geraden nicht verändern soll, da zum einen die Passgenauigkeit der Kontur des Werkstücks davon abhängt und zum anderen, besonders beim Ausfräsen von Flächen, unregelmäßige Oberflächenstrukturen erzeugt werden können. Eine einfache Methode, den Anstieg von Geraden, die länger als die doppelte Filterbreite F sind, zu erhalten ist, nach dem Startpunkt und vor dem Endpunkt der Geraden im Abstand der Filterbreite F je einen künstlichen Konturpunkt zu setzen. Diese künstlichen Konturpunkte bleiben nach dem oben beschriebenen Verfahren unverändert. Da sie auf der Kontur des ursprünglichen Polygonzugs 50, 60 liegen, bedeutet das, dass auch der Anstieg des Linearsegmentes zwischen diesen beiden künstlichen Konturpunkten nicht verändert wird. Die Anzahl der Punkte PI* des resultierenden Polygonzugs 51 gegenüber der Anzahl der Punkte PI des ursprünglichen Polygonzugs 50, 60 erhöht sich dadurch nicht wesentlich.
-
Selbstverständlich können auch andere Verfahren zur Glättung des ursprünglichen Polygonzugs 50, 60 eingesetzt werden.
-
Das erfindungsgemäße Verfahren kann als unabhängige Software ausgeführt sein, die auf einem beliebigen Rechner abläuft, es kann aber auch als Programmmodul im NC-Programmiersystem 10 oder in der numerischen Steuerung 30 ausgeführt werden.