Näherungskreis an unbekannte Funktion

27/11/2008 - 09:01 von Andreas Killer | Report spam
Hallo!

Ich interpretiere gerade Steuerungsprogramme für CNC-Maschinen,
speziell hier den Part wo der Fràser an einer Spline-Kontur
entlangtfàhrt, was durch lineare Bewegungen kurzer Distanz realisiert
wird.

Ich frage mich gerade nach dem einfachsten/besten Weg wie ich
Teilstrecken dieser Spline in Kreisbögen umwandeln kann.

Einen (dummen) Anfang habe ich bereits getestet um die Machbarkeit zu
prüfen:

Ich lese die X,Y-Koordinaten aus dem CNC-Programm. Wenn ich 3 Punkte
eingelesen habe, dann berechne ich einen Kreis der durch diese 3
Punkte geht und erhalte den Kreismittelpunkt.

Nun prüfe ich bei jedem neuen Punkt ob die Distanz von diesem Punkt
zum Kreismittelpunkt +/- einer Toleranz gleich dem Kreisradius ist.
Wenn ja, dann weiter, wenn nein, dann endet mein Algoryhtmus und es
werden die bisherigen (linearen) Bewegungen durch einen Kreisbogen
ersetzt.

Das geht, ist aber nicht besonders effektiv, denn eigentlich könnte
mein Kreis noch weitergehen:

Wenn ich nun mit dem letzten Punkt (der nicht mehr innerhalb der
Toleranz ist), dem ersten Punkt und dem mittlerestem Punkt meiner
Punktemenge einen neuen Kreis berechne, dann könnten ja alle
bisherigen Punkte +/- der Toleranz gleich weit vom Kreismittelpunkt
entfernt sein.

So ein Algoryhtmus würde wohl gehen, ist aber sehr aufwendig zu
programmieren.

Okay, genug der Kauderwelsches, hier meine Frage:

Welcher Algoryhtmus (Berechnugsmethode/Verfahren) liefert mir den
passenden Kreis an eine Menge Punkte deren Position +/- einer Toleranz
liegen dürfen?

Die Idee: Meine Punkte beschreiben ja eine Kurve, sprich eine
Funktion. Und an eine Funktion kann man Nàherungskreise bestimmen.

Hat jemand eine Idee dazu?

Andreas.
 

Lesen sie die antworten

#1 Peter Niessen
27/11/2008 - 13:34 | Warnen spam
Am Thu, 27 Nov 2008 00:01:10 -0800 (PST) schrieb Andreas Killer:

Hallo!

Ich interpretiere gerade Steuerungsprogramme für CNC-Maschinen,
speziell hier den Part wo der Fràser an einer Spline-Kontur
entlangtfàhrt, was durch lineare Bewegungen kurzer Distanz realisiert
wird.

Ich frage mich gerade nach dem einfachsten/besten Weg wie ich
Teilstrecken dieser Spline in Kreisbögen umwandeln kann.

Einen (dummen) Anfang habe ich bereits getestet um die Machbarkeit zu
prüfen:

Ich lese die X,Y-Koordinaten aus dem CNC-Programm. Wenn ich 3 Punkte
eingelesen habe, dann berechne ich einen Kreis der durch diese 3
Punkte geht und erhalte den Kreismittelpunkt.

Nun prüfe ich bei jedem neuen Punkt ob die Distanz von diesem Punkt
zum Kreismittelpunkt +/- einer Toleranz gleich dem Kreisradius ist.
Wenn ja, dann weiter, wenn nein, dann endet mein Algoryhtmus und es
werden die bisherigen (linearen) Bewegungen durch einen Kreisbogen
ersetzt.

Das geht, ist aber nicht besonders effektiv, denn eigentlich könnte
mein Kreis noch weitergehen:

Wenn ich nun mit dem letzten Punkt (der nicht mehr innerhalb der
Toleranz ist), dem ersten Punkt und dem mittlerestem Punkt meiner
Punktemenge einen neuen Kreis berechne, dann könnten ja alle
bisherigen Punkte +/- der Toleranz gleich weit vom Kreismittelpunkt
entfernt sein.

So ein Algoryhtmus würde wohl gehen, ist aber sehr aufwendig zu
programmieren.

Okay, genug der Kauderwelsches, hier meine Frage:

Welcher Algoryhtmus (Berechnugsmethode/Verfahren) liefert mir den
passenden Kreis an eine Menge Punkte deren Position +/- einer Toleranz
liegen dürfen?

Die Idee: Meine Punkte beschreiben ja eine Kurve, sprich eine
Funktion. Und an eine Funktion kann man Nàherungskreise bestimmen.

Hat jemand eine Idee dazu?



Du könntest Kreise (Bögen) durch die Krümmungsmaxima (zweite Ableitung)
bestimmen und mit Tangenten (und tangentialen Bögen) verbinden, ganz genau
so wie man Ellipsen durch Kreisbögen nàhert. Immerhin ergibt das eine
drastische Datenreduktion. Da die meisten Steuerungen bei Konturauflösungen
im Mikrometerbereich und hohen Bahngeschwindigkeiten Probleme mit der
Rechengeschwindigkeit bekommen, ist es eine Idee wert.
Viel bringen wird das aber nichts, da für die Fràsqualitàt in erster Linie
das dynamische Verhalten der Maschine verantwortlich ist. Sprich die
Maschine muss eh langsamer arbeiten als die
Satzverarbeitungsgeschwindigkeit theoretisch nahelegt.
Es gibt auch eine Steuerung (Fanuc) die Splineparameter direkt verarbeiten
kann, nur wird das von den CAM-Programmen nicht unterstützt.
Mit freundlichen Grüssen:
Peter Niessen

Ähnliche fragen