DE102013002516A1 - Numerical controller with machining curve creating function - Google Patents

Numerical controller with machining curve creating function Download PDF

Info

Publication number
DE102013002516A1
DE102013002516A1 DE102013002516A DE102013002516A DE102013002516A1 DE 102013002516 A1 DE102013002516 A1 DE 102013002516A1 DE 102013002516 A DE102013002516 A DE 102013002516A DE 102013002516 A DE102013002516 A DE 102013002516A DE 102013002516 A1 DE102013002516 A1 DE 102013002516A1
Authority
DE
Germany
Prior art keywords
segment
point
curve
command
machining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE102013002516A
Other languages
English (en)
Other versions
DE102013002516B4 (de
Inventor
Toshiaki Otsuki
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fanuc Corp
Original Assignee
Fanuc Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fanuc Corp filed Critical Fanuc Corp
Publication of DE102013002516A1 publication Critical patent/DE102013002516A1/de
Application granted granted Critical
Publication of DE102013002516B4 publication Critical patent/DE102013002516B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/41Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34096Approximate, replace curve, surface with circle, linear segments, least error
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34138Cubic interpolation

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Numerical Control (AREA)

Abstract

Eine numerische Steuerung wird bereitgestellt, die eine Bearbeitungskurvenerzeugungsfunktion aufweist. Eine Befehlspunktfolge wird in eine Mehrzahl von Segmenten unterteilt und eine Segmentkurve entsprechend einer jeden Segmentbefehlspunktfolge wird erzeugt. Die Segmentkurve wird erzeugt, so dass ein Abstand der Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und die maximale Anzahl von Befehlspunkten zwischen einem Startpunkt und einem Endpunkt der Segmentbefehlspunktfolge eingeschlossen ist. Dieser Prozess der Segmentkurvenerzeugung wird vom Startpunkt zum Endpunkt der Befehlspunktfolge wiederholt ausgeführt, um eine Bearbeitungskurve zu erzeugen. Darauf folgend wird die Bearbeitungskurve interpoliert und die Antriebsachsen einer Werkzeugmaschine werden zu den interpolierten Positionen auf der Bearbeitungskurve bewegt.

Description

  • Hintergrund der Erfindung
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine numerische Steuerung, die ein Bearbeiten ausführt durch Erzeugen einer Kurve zum Bearbeiten (Bearbeitungskurve) basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve.
  • 2. Beschreibung des Standes der Technik
  • Für eine numerische Steuerung, die eine Werkzeugmaschine steuert, ist ein herkömmliches Verfahren des Erzeugens einer Kurve oder einer geraden Linie aus einer bereitgestellten Punktfolge und des Interpolierens der Kurve oder der geraden Linie bekannt.
  • <1> Kurvenerzeugung
    • 1-1. Eine Spline-Kurve, wenn eine Startpunktbedingung in einem Startpunkt und einer Endpunktbedingung in einem Endpunkt einer Befehlspunktfolge spezifiziert sind.
  • Wenn eine Punktfolge P0, P1, P2, ..., Pn, ein Erst-Ableitungsvektor [first-derivative vector] P0' als eine Startpunktbedingung an einem Startpunkt der Punktfolge und ein Erst-Ableitungsvektor Pn' als Endpunktbedingung eines Endpunkts der Punktfolge gegeben sind, wie in 1 gezeigt, wird eine kubische Funktion, die eine kubische Kurve darstellt, welche die entsprechenden Punkte verbindet, so dass die Erst-Ableitungsvektoren und Zweit-Ableitungsvektoren in jedem Punkt stetig sind, allgemein wie folgt erhalten.
  • Ausdruck (1) unten gilt für Erst-Ableitungsvektoren (P0', P1', P2', ..., Pn')T in den entsprechenden Punkten, wobei „T” eine Transponierung bezeichnet. Im Folgenden wird dieses Zeichen in Fällen, in denen dies selbstverständlich ist, jedoch weggelassen. t1, t2, ..., tn bezeichnen Unterschiede in Parameterwerten (kubische Funktionsparameter t) einer erzeugten kubischen Funktion zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn und werden allgemein als Abstand (Kurvenlängen) zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn der erzeugten kubischen Funktion ausgedrückt. Jedoch kann eine kubische Funktion nicht bestimmt werden, sofern nicht P0', P1', P2', ..., Pn' bestimmt sind, und die Abstände (Kurvenlängen) zwischen den Punkten P0, P1, P2, ..., Pn einer eine kubische Funktion darstellenden Kurve können nicht bestimmt werden, sofern nicht die kubische Funktion bestimmt ist. Daher werden die Abstände (Kurvenlängen) zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn oft mittels linearer Abstände zwischen den entsprechenden Punkten P0, P1, P2, ..., Pn angenähert. Beispielsweise wird ein linearer Abstand zwischen P0 und P1 mit t1 bezeichnet, ein linearer Abstand zwischen P1 und P2 wird mit t2 bezeichnet und ein linearer Abstand zwischen Pn-1 und Pn wird mit tn bezeichnet. Weiterhin beziehen sich ein Erst-Ableitungsvektor bzw. ein Zweit-Ableitungsvektor jeweils auf Werte in jedem Punkt (Werte des Parameters t in jedem Punkt) einer ersten Ableitung und einer zweiten Ableitung einer kubischen Funktion nach dem Parameter t.
  • In diesem Fall sind P0, P1, P2, ..., Pn und P0', P1', P2', ..., Pn' Vektoren, die Elemente entsprechend wenigstens zweier linearer Achsen aufweisen. In Abhängigkeit der Maschinenkonstruktion können die Vektoren Elemente einer dritten, vierten, ... linearen Achse oder Elemente von Rotationsachsen zusätzlich zu den zwei Linearachsen aufweisen.
  • Figure 00020001
  • Da P0', Pn', P0, P1, P2, ..., Pn durch Ausdruck (1) oben gegeben sind und t1, t2, ..., tn aus P0, P1, P2, ..., Pn hergeleitet werden können, kann daher P' = (P0', P1', P2', Pn')T bestimmt werden. Mit anderen Worten, wenn Ausdruck (1) durch Ausdruck (2) unten dargestellt ist, kann P' bestimmt werden, wie dargestellt durch Ausdruck (3). M·P' = B (2) P' = M1·B (3)
  • Sobald P' bestimmt werden kann, kann eine Funktion einer kubischen Kurve zwischen den entsprechenden Punkten aus P0, P1, P2, ..., Pn hergeleitet werden. Mit anderen Worten, eine Funktion fi(t) (i = 0, 1, 2, ..., n – 1; 0 ≤ t ≤ ti+1) einer kubischen Kurve zwischen Pi und Pi+1, die wie dargestellt durch Ausdruck (4) unten ausgedrückt wird, kann aus Pi, Pi+1, Pi', Pi+1' hergeleitet werden. Demnach kann aus Befehlspunktfolgepositionen (P0, P1, P2, ..., Pn), einer Startpunktbedingung (in diesem Fall P0') und einer Endpunktbedingung (in diesem Fall Pn') eine Funktion hergeleitet werden, die eine kubische Kurve zwischen den entsprechenden Punkten darstellt, sodass Erst-Ableitungsvektoren und Zweit-Ableitungsvektoren in jedem Punkt stetig sind. Afi, Bfi, Cfi, Dfi sind Koeffizienten der Funktion fi(t). Die Koeffizienten und die Funktion fi(t) sind Vektoren, die in einer gleichartigen Weise wie P0, P1, P2, ..., Pn Elemente entsprechend der Anzahl von Achsen aufweisen. fi(t) = Afi·t3 + Bfi·t2 + Cfi·t + Dfi (4)
  • fi(t) kann wie folgt bestimmt werden. Wenn fi(t) wie dargestellt durch Ausdruck (4) oben ausgedrückt wird, kann fi'(t) wie dargestellt durch Ausdruck (5) unten ausgedrückt werden. Daher gilt Ausdruck (6) und durch Lösen von Ausdruck (6) um Afi, Bfi, Cfi und Dfi herzuleiten, kann die Funktion fi(t) bestimmt werden. fi'(t) = 3·Afi·t2 + 2·Bfi·t + Cfi (5) fi(0) = Dfi = Pi fi(ti+1) = Afi·ti+1 3 + Bfi·ti+1 2 + Cfi·ti+1 + Dfi = Pi+1 fi'(0) = Cfi = Pi fi'(ti+1) = 3·Afi·ti+1 2 + 2·Bfi·ti+1 + Cfi = Pi+1' (6)
  • Eine Gruppe von auf diese Weise bestimmten kubischen Kurven wird als seine Spline-Kurve bezeichnet. Da Erst-Ableitungsvektoren und Zweit-Ableitungsvektoren in jedem Punkt einer Spline-Kurve stetig sind, wird eine gleichmäßige Bearbeitungsform und ein gleichmäßiger Betrieb mit einer stetigen Beschleunigung einer jeden Antriebsachse erhalten.
  • Jedoch erfordert dieses Verfahren, dass die Berechnungen durch Einlesen aller Befehlspunktfolgepositionen (P0, P1, P2, ..., Pn) durchgeführt werden. Wenn sich die Anzahl der die Befehlspunktfolge bildenden Punkte erhöht, wird das Ausmaß an Matrixberechnungen enorm und erfordert einen großen Speicherplatz und eine lange Berechnungszeit.
  • Während vorstehend von einer Bedingung ausgegangen wurde, dass P0' und Pn' spezifiziert sind, ist es darüber hinaus bekannt, dass ein zu Ausdruck (1) oben näherungsweise gleicher Ausdruck durch Annahme der folgenden Bedingungen hergeleitet werden kann. Wie vorstehend beschrieben, wird eine Bedingung bei P0 als Startpunktbedingung bezeichnet und eine Bedingung bei Pn als Endpunktbedingung bezeichnet.
    • • Zweit-Ableitungsvektoren in P0 und Pn sind 0. Das heißt, P0'' = 0 und Pn'' = 0.
    • • P0' ist spezifiziert und Pn'' = 0.
    • • Es sei P0'' = 0 und Pn' ist spezifiziert.
  • Sogar wenn Bedingungen wie oben gegeben angenommen werden, kann demnach eine Funktion fi(t) (i = 0, 1, 2, ..., n – 1; 0 ≤ t ≤ ti+1) einer kubischen Kurve zwischen Pi und Pi+1 auf eine annähernd gleichartige Weise bestimmt werden.
    • 1-2. Erzeugen einer Kurve einer kubischen Funktion, die sequentiell Punkte verbindet, welche eine Befehlspunktfolge bilden.
  • Ein in der offengelegten japanischen Patentanmeldung Nr. 2-113305 (entspricht US-Patent Nr. 5,140,236 ) offenbartes Verfahren, ist ein Verfahren des sequentiellen Bestimmens kubischer Ausdrücke zwischen Punkten durch Herleiten eines Erst-Ableitungsvektors aus einer vorbestimmten Anzahl von Punkten einschließlich eines Startpunktes, Herleitens einer kubischen Funktion zwischen dem Startpunkt und einem nächsten Punkt basierend auf Koordinatenwerten von vorbestimmten Punkten einschließlich des Startpunkts, einer Endpunktbedingung des Startpunkts und dem Erst-Ableitungsvektor, Bestimmens einer Spline-Kurve zwischen dem Startpunkt und einem auf den Startpunkt folgenden Punkt und Hinzufügens eines neuen nächsten Punktes anstelle des Startpunkts. Gemäß diesem Verfahren wird eine kubische Spline-Kurve erzeugt, ohne dass alle eine Befehlspunktfolge bildenden Punkte eingelesen werden müssen. Obwohl dieses Verfahren vorteilhaft ist, in dem Sinne, dass eine praktisch akzeptable Spline-Kurve durch sequentielles Einlesen von Punkten, die eine Befehlspunktfolge bilden, erhalten werden kann ohne zunehmenden Fehler zur theoretischen Spline-Kurve, wie vorstehend in „<1> Kurvenerzeugung, 1-1” beschrieben, ist das Verfahren dahingehend problematisch, dass:
    • (a), weil eine kubische Spline-Kurve sequentiell zwischen Punkten erzeugt wird, während Punkte eingelesen werden, die eine Befehlspunktfolge bilden, eine Kapazität einer numerischen Steuerung für das Erzeugen und Interpolieren einer kubischen Spline-Kurve unzureichend wird und die numerische Steuerung die Achsenbewegungen verlangsamt, wenn Intervalle zwischen den Punkten klein sind, und
    • (b) wenn Positionen der Befehlspunktfolge aufgrund eines Fehlers hinsichtlich einer Zielkurve abweichen, die erzeugte Kurve gleichermaßen abweicht.
  • <2> Ausdünnen
  • Die offengelegte japanische Patentanmeldung Nr. 10-49215 offenbart ein Verfahren zum Ausführen einer Geraden-Linien-Näherung einer Befehlspunktfolge und des Ausdünnens von Punkten, die angenäherten Punkten entsprechen. Dieses Verfahren ist dahingehend problematisch, dass die angenäherte Punktfolge keine gleichmäßige Form hat, da die Befehlspunktfolge mit einer geraden Linie angenähert wird.
  • <2> Korrigieren von Befehlspunktpositionen
  • Die offengelegte japanische Patentanmeldung 10-240328 offenbart ein Verfahren des Korrigierens von Positionen von Befehlspunkten innerhalb eines Bereichs eines erlaubten Wertes, sodass sich die Befehlspunkte in einer gleichmäßigen Weise aneinander reihen. Bei diesem Verfahren kann die Bearbeitungskapazität nicht ausreichend sein und eine Verlangsamung kann auftreten, wenn eine Punktfolge vorgegeben ist, die geringe Intervalle zwischen den Befehlspunkten aufweist. Da das Verfahren des Korrigierens von Befehlspunktpositionen ein Erzeugen einer Kurve zum Annähern aus mehreren aufeinander folgenden Punkten (z. B. fünf Punkten) und ein Korrigieren von Befehlspunktpositionen in Richtung der Kurve einschließt, kann, wenn Positionen einer Befehlspunktfolge, welche ein Objekt einer angenäherten Kurvenerzeugung ist, gleichartige Fehler hinsichtlich einer Zielkurve, wie bspw. in 3 gezeigt, aufweisen, eine Korrektur, welche die Zielkurve annähert, aufgrund der Auswirkungen der Fehler nicht ausgeführt werden. In 3 deuten Pfeilspitzen, welche entsprechend erzeugten Kurven abbilden, korrigierte Positionen einer Befehlspunktfolge an.
  • Zusammenfassung der Erfindung
  • In Anbetracht dessen ist es eine Aufgabe der vorliegenden Erfindung, eine numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion bereitzustellen, die in der Lage ist, eine einzelne kubische Kurve (Segmentkurve) zu erzeugen, welche einer maximalen Anzahl von Befehlspunkten entspricht, eine Mehrzahl derartiger kubischer Kurven (Segmentkurven) zu verbinden, um eine Kurve für das Bearbeiten zu erzeugen (Bearbeitungskurve), die Bearbeitungskurve zu interpolieren und ein Bearbeiten mit einer Werkzeugmaschine durch Bewegen einer Mehrzahl von Antriebsachsen der Werkzeugmaschine (umfassend zumindest zwei lineare Antriebsachsen) zu den interpolierten Positionen der Bearbeitungskurve auszuführen.
  • Die vorliegende Erfindung betrifft eine numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion, die in der Lage ist, eine einzelne kubische Kurve (Segmentkurve) zu erzeugen, welche einer maximalen Anzahl von Befehlspunkten entspricht, eine Mehrzahl derartiger kubischer Kurven (Segmentkurven) zu verbinden, um eine Bearbeitungskurve zu erzeugen, welche eine Kurve für das Bearbeiten ist, die Bearbeitungskurve zu interpolieren und ein Bearbeiten mit einer Werkzeugmaschine durch Bewegen der Antriebsachsen zu den interpolierten Positionen der Bearbeitungskurve auszuführen, wobei entsprechende kubische Kurven (Segmentkurven) miteinander verbunden werden, so dass Zweit-Ableitungsvektoren von kubischen Funktionen, welche die entsprechenden kubischen Kurven darstellen (Segmentkurven), „stetig” sind, eine Bearbeitungskurve wird als Gruppe von auf diese Weise erzeugten kubischen Kurven (Spline-Kurven) erzeugt und das Erzeugen einer solchen Bearbeitungskurve wird ohne das Einlesen sämtlicher eine Befehlspunktfolge bildenden Punkte ausgeführt (s. 4). Der Begriff „stetig” bedeutet wie hier verwendet praktisch stetig und nicht theoretisch stetig.
  • Die numerische Steuerung mit einer Bearbeitungskurvenerzeugungseinheit gemäß der vorliegenden Erfindung führt ein Bearbeiten aus, durch Erzeugen einer Bearbeitungskurve, welches eine Kurve zum Bearbeiten ist, basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve. Die numerische Steuerung umfasst weiterhin: eine Segmentkurvenerzeugungseinheit, welche die Befehlspunktfolge in eine Mehrzahl von Segmenten unterteilt und eine Segmentkurve erzeugt, welches eine Kurve entsprechend einer Segmentbefehlspunktfolge eines jeden der Segmente ist, sodass ein Abstand der Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Werts liegt und eine maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, welcher ein Startpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, welches ein Endpunkt der Segmentbefehlspunktfolge ist; und eine Bearbeitungskurvenerzeugungseinheit, die durch wiederholtes Ausführen des Prozesses der Segmentkurvenerzeugungseinheit von einem Startpunkt zu einem Endpunkt der Befehlspunktfolge die Bearbeitungskurve erzeugt. Danach wird die Bearbeitungskurve interpoliert und die Antriebsachsen werden angetrieben, um sich zu den interpolierten Positionen auf der Bearbeitungskurve zu bewegen.
  • Hinsichtlich einer Segmentbefehlspunktfolge, welche die Befehlspunktfolge in einem Segment ist, das am Startpunkt der Befehlspunktfolge beginnt, ist die Segmentkurvenerzeugungseinheit in der Lage: einen Segmentstartpunktvektor und einen Segmentendpunktvektor als Erst-Ableitungsvektoren der Bearbeitungskurve am Startpunkt und am Segmentendpunkt zu bestimmen, basierend auf dem Startpunkt, einer Startpunktbedingung, welches eine Bedingung für den Startpunkt ist, einem Segmentendpunkt, welches ein Endpunkt der Segmentbefehlspunktfolge ist, und einer Befehlspunktfolge, die von einer vorbestimmten Anzahl von Punkten nach dem Segmentendpunkt gebildet wird; die Segmentkurve aus dem Startpunkt, dem Segmentstartpunktvektor, dem Segmentendpunkt und dem Segmentpunktvektor zu erzeugen; eine erste Segmentkurve zu erzeugen, so dass ein Abstand der ersten Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und eine maximale Anzahl von Befehlspunkten zwischen dem Startpunkt und dem Segmentendpunkt eingeschlossen ist; nach dem Erzeugen der ersten Segmentkurve hinsichtlich einer Segmentbefehlspunktfolge in einem auf den Befehlsendpunkt der Befehlspunktfolge folgenden Segment einen Segmentendpunkt festzulegen, der dem Segment als neuer Segmentstartpunkt vorangeht, einen Segmentendpunktvektor festzulegen, der dem Segment als ein neuer Segmentstartpunktvektor vorangeht, und einen Endpunkt der Segmentbefehlspunktfolge als einen neuen Segmentendpunkt festzulegen; einen neuen Segmentendpunktvektor als einen Erst-Ableitungsvektor der Bearbeitungskurve am Segmentendpunkt zu bestimmen, basierend auf dem neuen Segmentstartpunkt, dem neuen Segmentstartpunktvektor, dem neuen Segmentendpunkt und einer Befehlspunktfolge, die aus einer vorbestimmten Anzahl von Punkten nach dem neuen Segmentendpunkt gebildet wird; die Segmentkurve aus dem neuen Segmentstartpunkt, dem neuen Segmentstartpunktvektor, den neuen Segmentendpunkt und den neuen Segmentendpunktvektor zu erzeugen; und die Segmentkurve zu erzeugen, so dass ein Abstand der Bearbeitungskurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und eine maximale Anzahl von Befehlspunkten zwischen dem Segmentstartpunkt und dem Segmentendpunkt eingeschlossen ist.
  • Gemäß der Startpunktbedingung kann eine tangentiale Richtung an einem Startpunkt eines Bogens, der den Startpunkt, einen zweiten Punkt und einen dritten Punkt der Befehlspunktfolge verbindet, als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt sein, oder eine tangentiale Richtung an einem Startpunkt einer quadratischen Kurve, die den Startpunkt, den zweiten Punkt und den dritten Punkt der Befehlspunktfolge verbindet, kann als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt sein, oder eine tangentiale Richtung an einem Startpunkt einer geraden Linie, die den Startpunkt und dem zweiten Punkt der Befehlspunktfolge verbindet, kann als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt sein.
  • Gemäß der Startpunktbedingung kann ein Zweit-Ableitungsvektor der Bearbeitungskurve in einem Startpunkt der Befehlspunktfolge zu null gesetzt sein.
  • Das Einschließen der maximalen Anzahl von Befehlspunkten zwischen dem Segmentstartpunkt und dem Segmentendpunkt kann durch Ermitteln, während des Erhöhens oder Reduzierens der Anzahl von Sprüngen ns, eines maximalen ns erreicht werden, sodass sämtliche der folgenden gelten: |Q1 – Ps(k)+1| ≤ Tol |Q2 – Ps(k)+2| ≤ Tol ... |Qns-1 – Ps(k)+ns-1| ≤ Tol
  • Die Befehlspunktfolge kann eine Punktfolge aus von einem Bearbeitungsprogramm vorgegebenen Befehlspunkten sein, oder eine Punktfolge, die durch Ausführen eines Glättens einer Punktfolge aus von einem Bearbeitungsprogramm vorgegebenen Befehlspunkten erzeugt wird.
  • Gemäß der vorliegenden Erfindung kann eine numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion bereitgestellt werden, die in der Lage ist, eine einzelne kubische Kurve (Segmentkurve) zu erzeugen, welche einer maximalen Anzahl von Befehlspunkten entspricht, eine Mehrzahl derartiger kubischer Kurven (Segmentkurven) zu verbinden, um eine Kurve für das Bearbeiten zu erzeugen (Bearbeitungskurve), die Bearbeitungskurve zu interpolieren und ein Bearbeiten mit einer Werkzeugmaschine durch Bewegen einer Mehrzahl von Antriebsachsen der Werkzeugmaschine (umfassend zumindest zwei lineare Antriebsachsen) zu den interpolierten Positionen der Bearbeitungskurve auszuführen.
  • Kurzbeschreibung der Zeichnungen
  • Diese und weitere Aufgaben und Merkmale der vorliegenden Erfindung werden bei Berücksichtigung der folgenden Beschreibung der bevorzugten Ausführungsformen der vorliegenden Erfindung im Zusammenhang mit den Zeichnungen verdeutlicht, wobei:
  • 1 ein Diagramm ist, das Beispiele einer Befehlspunktfolge und Kurvenerzeugung gemäß herkömmlichem Stand der Technik darstellt;
  • 2 ein Diagramm ist, das darstellt, dass gemäß herkömmlichem Stand der Technik eine Abweichung aufgrund eines Fehlers der Befehlspunktfolgepositionen hinsichtlich einer Zielkurve in einer Abweichung einer erzeugten Kurve resultiert;
  • 3 ein Diagramm ist, das darstellt, dass gemäß herkömmlichem Stand der Technik ein Fehler in den Befehlspunktfolgeposition hinsichtlich einer Zielkurve eine Korrektur verhindert, welche die Zielkurve annähert;
  • 4 ein Diagramm ist, das ein Verfahren des Erzeugens einer Bearbeitungskurve gemäß der vorliegenden Erfindung darstellt;
  • 5 ein Diagramm ist, das ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve darstellt, welche eine kubische Kurve ist;
  • 6 ein Diagramm ist, das ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve darstellt, welche eine kubische Kurve ist;
  • 7 ein Diagramm ist, das ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve darstellt, welche eine kubische Kurve ist;
  • 8 ein Diagramm ist, welches ein Befehlsbeispiel eines Bearbeitungsprogramms darstellt;
  • 9 ein Ablaufdiagramm ist, das einen von einer Bearbeitungskurvenerzeugungseinheit ausgeführten Prozess darstellt;
  • 10 ein Ablaufdiagramm ist, das einen von einer Segmentkurvenerzeugungseinheit ausgeführten Prozess darstellt;
  • 11 ein Ablaufdiagramm ist, das einen Prozess zum Erzeugen einer Funktion gk(t) darstellt;
  • 12 ein Ablaufdiagramm ist, das einen Prozess der Endendiskriminierung darstellt;
  • 13 ein Diagramm ist, das einen Fall darstellt, bei dem Ps(k)+ns+1 ein Endpunkt Pn ist und eine Befehlspunktfolge jenseits des Endpunkts Pn nicht erstellt ist;
  • 14 ein Diagramm ist, das einen Fall darstellt, bei dem Ps(k)+ns+2 ein Endpunkt Pn ist und eine Befehlspunktfolge jenseits des Endpunktes Pn nicht erstellt ist;
  • 15 ein Diagramm ist, das einen Prozess zum Erzeugen einer Funktion gk(t) unmittelbar vor einem Endpunkt Pn darstellt;
  • 16 ein Diagramm ist, das ein Verfahren des Glättens darstellt; und
  • 17 ein Blockdiagramm einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung ist.
  • Beschreibung der bevorzugten Ausführungsform
  • Bei der vorliegenden Erfindung wird eine einzelne kubische Kurve (Segmentkurve) erzeugt, die einer Punktfolge entspricht, die die maximale Anzahl von Befehlspunkten umfasst. Eine Mehrzahl solcher kubischen Kurven wird verbunden, um eine Kurve zum Bearbeiten zu erzeugen (eine Bearbeitungskurve), die Bearbeitungskurve wird interpoliert und die Bearbeitung wird durch Bewegen der Antriebsachsen einer Werkzeugmaschine zu den interpolierten Positionen auf der Bearbeitungskurve ausgeführt. Die Mehrzahl von kubischen Kurven wird verbunden, so dass Zweit-Ableitungsvektoren von kubischen Funktionen, welche die entsprechenden kubischen Kurven darstellen, stetig zwischen den kubischen Kurven sind. In diesem Fall bedeutet „stetig” praktisch stetig und nicht theoretisch stetig. Die Bearbeitungskurve wird als eine Gruppe von auf diese Weise erzeugten kubischen Kurven erzeugt (Spline-Kurve). Das Erzeugen einer solchen Bearbeitungskurve wird sequentiell ausgeführt, ohne sämtliche eine Befehlspunktfolge bildenden Punkte einzulesen (4).
  • Demnach können die folgenden Ziele erreicht werden.
    • (1) Vermeiden des Auftretens von Verlangsamungen aufgrund einer unzureichenden Kapazität einer numerischen Steuerung zum Erzeugen und Interpolieren einer Bearbeitungskurve, sogar wenn Intervalle zwischen den Befehlspunkten klein sind, durch Erzeugen einer kubischen Kurve (Segmentkurve), die der maximalen Anzahl von Befehlspunkten entspricht.
    • (2) Erzeugen einer Bearbeitungskurve, die eine Zielkurve genauer annähert, sogar wenn eine Befehlspunktfolge eine Abweichung aufgrund eines Fehlers hinsichtlich der Zielkurve aufweist.
    • (3) Versehen der Bearbeitungskurve mit stetigen Erst-Ableitungsvektoren und praktisch stetigen Zweit-Ableitungsvektoren an einem jedem die Befehlspunktfolge bildenden Punkt. Darüber hinaus Eingrenzen eines Fehlers der Bearbeitungskurve zu der Befehlspunktfolge innerhalb eines erlaubten Wertes. Entsprechend wird eine gleichmäßige Bearbeitungsform erhalten, deren Fehler zu der Befehlspunktfolge innerhalb eines erlaubten Wertes liegt, und ein gleichmäßiger Bearbeitungsbetrieb mit gleichmäßiger Beschleunigung einer jeden Antriebsachse.
    • (4) Ermöglichen, dass eine Bearbeitungskurve ohne das Erforderlichmachen eines großen Speichers oder einer langen Berechnungszeit erzeugt werden kann, durch Erzeugen der Bearbeitungskurve ohne Einlesen sämtlicher Punkte, welche die Befehlspunktfolge bilden.
  • 4 zeigt eine Folge von Befehlspunkten (abgebildet als schwarze Punkte: •), welche einen Fehler hinsichtlich einer vorgegebenen Zielkurve (abgebildet als gestrichelte Linie) aufweisen, und eine Segmentkurve (durchgezogene Pfeillinie), welches eine kubische Kurve in einem gegebenen Segment der Befehlspunktfolge ist, die mit den Techniken gemäß der vorliegenden Erfindung erzeugt wird. Eine Funktion, die eine kubische Kurve (Segmentkurve) darstellt, ist eine kubische Funktion, und eine Kurve zum Bearbeiten (Bearbeitungskurve) ist eine Kurve, welche Segmentkurven miteinander verbindet. Weiterhin zeigt 4, dass ein Fehler zwischen der Befehlspunktfolge und der Bearbeitungskurve innerhalb eines erlaubten Wertes liegt.
  • Im Folgenden wird eine erste Ausführungsform einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung beschrieben.
  • <Abriss>
  • Prozesse, die von einer Segmentkurvenerzeugungseinheit ausgeführt werden, welche ein kritischer Teil der vorliegenden Erfindung ist, werden nun skizziert. Genauer gesagt, in einem Fall, in dem ein gegebener Punkt Ps(k) einer Befehlspunktfolge P0, P1, P2, ..., Pn, welche P0 als Startpunkt und Pn als Endpunkt aufweist, und ein Erst-Ableitungsvektor Ps(k)' am Punkt Ps(k) schon bestimmt wurden, wird ein Verfahren des Erzeugens einer kubischen Funktion für eine Segmentkurve skizziert, welche eine kubische Kurve ist, die Ps(k) als Startpunkt aufweist. Indexausdrücke in der Befehlspunktfolge P0, P1, P2, ..., Pn stellen Nummern von Befehlspunkten dar.
  • k bezeichnet die Nummer einer zu erzeugenden Segmentkurve. k wird pro Segmentkurve um 1 erhöht, so dass k = 0 bei einer ersten Segmentkurve beginnend bei P0, k = 1 für eine nächste Segmentkurve und so weiter. s(k) bezeichnet die Nummer eines Befehlspunktes eines Segmentstartpunkts, welches ein Startpunkt einer (k + 1)-ten Segmentkurve ist. e(k) bezeichnet die Nummer eines Befehlspunktes eines Segmentendpunkts, welcher ein Endpunkt der (k + 1)-ten Segmentkurve ist. Mit anderen Worten, die (k + 1)-te Segmentkurve ist eine kubische Kurve, die einen Befehlspunkt Ps(k) als Segmentstartpunkt und einen Befehlspunkt Pe(k) als Segmentendpunkt aufweist.
    • [1] Es sei ns (Anzahl von Sprüngen) die Bezeichnung für die Anzahl von zu überspringenden Befehlspunkten nach Ps(k) + 1. Es wird angenommen, dass ein Anfangswert nsi (anfängliche Anzahl von Sprüngen) vorgegeben wurde. In diesem Fall bedeutet das Überspringen eines Befehlspunktes, dass der Befehlspunkt nicht bei der Segmentkurvenerzeugung verwendet wird.
    • [2] Es sei nc eine Bezeichnung für eine vorbestimmte Anzahl von Punkten, welche die Anzahl von Punkten spezifiziert, die zum kubischen-Kurvenerzeugen aus einer Punktfolge nachfolgend zu Ps(k)+ns verwendet werden. Basierend auf einer Punktfolge bestehend aus Ps(k), Ps(k)+ns, ..., Ps(k)+ns+nc und auf Ps(k)' wird ein Erst-Ableitungsvektor Ps(k)+ns' bei Ps(k)+ns bestimmt, so dass Zweit-Ableitungsvektoren von vorangehenden und nachfolgenden kubischen Funktionen bei Ps(k)+ns praktisch stetig sind. Jedoch wird in diesem Fall der Vereinfachung halber nc = 3 festgelegt. Allgemein gilt, je größer der Wert von nc, desto besser ist die Stetigkeit von Zweit-Ableitungsvektoren von vorangehenden und nachfolgenden kubischen Funktionen am Segmentendpunkt und am Segmentstartpunkt.
  • Ps(k) bezeichnet eine Position des Segmentstartpunkts, Ps(k)+ns bezeichnet eine Position des Segmentendpunkts, Ps(k)' bezeichnet einen Segmentstartpunktvektor (einen Erst-Ableitungsvektor einer Segmentkurve am Segmentstartpunkt) und Ps(k)+ns' bezeichnet einen Segmentendpunktvektor (einen Erst-Ableitungsvektor einer Segmentkurve am Segmentendpunkt). Im Folgenden bezeichnet Px (x = 0, 1, ..., n; x = s(k), s(k)+ns, usw.) Punkte sowie Positionen von diesen.
    • [3] Darstellen einer Punktfolge Ps(k), Ps(k)+ns, ..., Ps(k)+ns+3 und Ps(k)', wie in 5 gezeigt. In 5 (und gleichermaßen in 6 und 7, wie nachfolgend beschrieben) sind Ps(k), Ps(k)+ns, ..., Ps(k)+ns+3 durch große schwarze Punkte (•) dargestellt und Ps(k)+1, ..., Ps(k)+ns-1, die übersprungen werden (nicht verwendet werden bei dem Bestimmen von Ps(k)+ns'), sind durch umrandete Punkte dargestellt (o).
  • Bestimmen eines Erst-Ableitungsvektors Ps(k)+ns+3' bei Ps(k)+ns+3. Beispielsweise Erzeugen eines Bogens oder einer quadratischen Kurve (Parabel), die durch die drei Punkte Ps(k)+ns+1, Ps(k)+ns+2 und Ps(k)+ns+3 verläuft, und Verwenden einer tangentialen Richtung am Punkt Ps(k)+ns+3 auf dem Bogen oder der quadratischen Kurve als Ps(k)+ns+3' oder Verwenden einer tangentialen Richtung einer geraden Linie, die durch die beiden Punkte Ps(k)+ns+2 und Ps(k)+ns+3 Verläuft, als Ps(k)+ns+3'.
  • Während in diesem Fall der Erst-Ableitungsvektor Ps(k)+ns+3' bei Ps(k)+ns+3 verwendet wird, können darüber hinaus, wie vorstehend in „<1> Kurvenerzeugung, 1-1” beschrieben, andere Bedingungen (Zweit-Ableitungsvektor Ps(k)+ns+3'' = 0) verwendet werden (in der zweiten Ausführungsform beschrieben).
    • [4] Erzeugen des Ausdrucks (7) unten durch Anwenden des vorstehenden Ausdrucks (1) auf Ps(k), Ps(k)+ns, Ps(k)+ns+1, Ps(k)+ns+2, Ps(k)+ns+3, Ps(k)', Ps(k)+ns', Ps(k)+ns+1', Ps(k)+ns+2' und Ps(k)+ns+3'. Dabei kann Ps(k)+ns' mit Ausdruck (8-1) unten bestimmt werden, der dem Ausdruck (3) oben entspricht.
      Figure 00140001
      Figure 00150001
      wobei t1 bis t4 durch den Ausdruck (8-2) unten definiert sind.
  • Figure 00150002
  • Darüber hinaus muss die gesamte inverse Matrix auf der rechten Seite von Ausdruck (8-1) oben nicht bestimmt werden. Durch Bestimmen der zweiten Reihe der inversen Matrix auf der rechten Seite von Ausdruck (8-1) kann Ps(k)+ns' bestimmt werden.
    • [5] In einer gleichartigen Weise wie bei den Ausdrücken (4), (5) und (6) oben, Bestimmen einer Funktion gk(t) (0 ≤ t ≤ tk) basierend auf Ps(k), Ps(k)+ns, Ps(k)' und Ps(k)+ns', die eine kubische Kurve zwischen Ps(k) und Ps(k)+ns darstellt, wie dargestellt durch Ausdruck (9) unten. Agk, Bgk, Cgk und Dgk stellen Vektoren von Antriebsachsen dar und sind Koeffizienten einer Funktion, welche die kubische Kurve darstellt. tk bezeichnet einen Abstand zwischen Ps(k) und Ps(k)+ns und entspricht t1 in Ausdruck (8-2) oben. gk(t) = Agk·t3 + Bgk·t2 + Cgk·t + Dgk (9)
  • Die vier Koeffizienten Agk, Bgk, Cgk und Dgk können aus vier Bedingungen Ps(k), Ps(k)+ns, Ps(k)' und Ps(k)+ns' in einer gleichartigen Weise hergeleitet werden, wie bezugnehmend auf Ausdrücke (5) und (6) oben beschrieben. Mit anderen Worten, wenn gk(t) wie dargestellt durch Ausdruck (9) oben ausgedrückt wird, kann gk'(t) wie dargestellt durch Ausdruck (10) unten ausgedrückt werden. Daher gilt Ausdruck (11) und durch Bestimmen von Agk, Bgk, Cgk und Dgk durch Lösen des Ausdrucks (11) kann die Funktion gk(t) bestimmt werden. gk'(t) = 3·Agk·t2 + 2·Bgk·t + Cgk (10) gk(0) = Dgk = Ps(k) gk(tk) = Agk·tk 3 + Bgk·tk 2 + Cgk·tk + Dgk = Ps(k)+ns gk'(0) = Cgk = Ps(k)' gk'(tk) = 3·Agk·tk 2 + 2·Bgk·tk + Cgk = Ps(k)+ns' (11)
  • [6] Bestimmen von Q1, Q2, ..., Qns-1 als Punkte entsprechend zu Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 auf gk(t), wie dargestellt durch Ausdruck (12) unten. Mit anderen Worten, Bestimmen der Punkte Q1, Q2, ..., Qns-1 durch Addieren der Abstände zwischen den Punkten Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 als t entsprechend zu Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 und Einsetzen des Resultats in t von gk(t). Q1 = gk(|Ps(k)+1 – Ps(k)|) Q2 = gk(|Ps(k)+1 – Ps(k)| + |Ps(k)+2 – Ps(k)+1|) ... Qns-1 = gk(|Ps(k)+1 – Ps(k)| + |Ps(k)+2 – Ps(k)+1| + ... + |Ps(k)+ns-1 – Ps(k)+ns-2|) (12)
    • [7] Bestimmen der Abstände zwischen den Punkten Q1, Q2, ..., Qns-1 und den entsprechenden Punkten Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 und Vergleichen aller Abstände mit einem vorab eingestellten erlaubten Wert Tol, wie dargestellt durch Ausdruck (13) unten, um zu überprüfen, ob die Abstände gleich oder geringer als der erlaubte Wert Tol sind. In diesem Fall werden die zu Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 dazugehörigen Punkte Q1, Q2, ..., Qns-1 mit Ausdruck (12) oben bestimmt, der Abstand zwischen den Punkten Q1, Q2, ..., Qns-1 und Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1 wird bestimmt und die Abstände werden verglichen, um zu überprüfen, ob die Abstände gleich oder geringer als der erlaubte Wert Tol sind. Jedoch können darüber hinaus Punkte entsprechend zu Zwischenpunkten (zum Beispiel mittleren Punkten) zwischen Ps(k), Ps(k)+1, Ps(k)+2, Ps(k)+ns-1, Ps(k)+ns in einer gleichen Weise wie bei Ausdruck (12) oben bestimmt werden, Abstände zwischen diesen Punkten und den Zwischenpunkten (mittleren Punkten) zwischen Ps(k), Ps(k)+1, Ps(k)+2, ..., Ps(k)+ns-1, Ps(k)+ns können bestimmt werden und ein Vergleich kann vorgenommen werden, um festzustellen, ob die Abstände gleich oder geringer als der erlaubte Wert Tol sind. |Q1 – Ps(k)+1| ≤ Tol |Q2 – Ps(k)+2| ≤ Tol |Qns-1 – Ps(k)+ns-1| ≤ Tol (13)
    • [8] Wenn sämtliches in Ausdruck (13) gilt (innerhalb eines erlaubten Werts), festlegen von ns = ns + 1 oder, mit anderen Worten, festlegen von Ps(k)+ns auf einen unmittelbar nachfolgenden Punkt und wiederholen von [3] bis [7] (s. 6). Wenn einer aus Ausdruck (13) nicht gilt, ist eine letzte gk(t) in einem Fall, bei dem sämtliches in Ausdruck (13) gilt, die gesuchte kubische Funktion fk(t) für eine Segmentkurve zwischen Ps(k), ..., Pe(k). Mit anderen Worten, es sei fk(t) = gk(t). In diesem Punkt gilt (normalerweise) e(k) = s(k) + ns – 1. Gleichsetzen von fk(t) = gk(t) bedeutet, dass eine Funktionsform von fk(t) bestimmt wird, wie dargestellt durch Ausdruck (14) unten. Afk, Bfk, Cfk und Dfk stellen Vektoren von Antriebsachsen dar und sind Koeffizienten einer Funktion. Ein Bereich von t (0 ≤ t ≤ tk) von fk(t) wird ebenso in diesem Punkt bestimmt (das gleiche gilt für die nachfolgende Beschreibung).
  • Es sei zusätzlich angemerkt, dass diese fk(t) nicht die gleiche ist wie fi(t), wie in „<1> Kurvenerzeugung, 1-1” beschrieben. Afk = Agk, Bfk = Bgk, Cfk = Cgk, Dfk = Dgk fk(t) = Afk·t3 + Bfk·t2 + Cfk·t + Dfk (14)
    • [9] Wenn einer aus Ausdruck (13) nicht gilt (außerhalb des erlaubten Wertes), festlegen von ns = ns – 1 oder, mit anderen Worten, festlegen von Ps(k)+ns zu einem unmittelbar vorangehenden Punkt und wiederholen von [3] bis [7] (siehe 7). Sobald sämtliches in Ausdruck (13) gilt, ist gk(t) in diesem Punkt die gesuchte kubische Funktion fk(t) für eine Segmentkurve zwischen Ps(k), ..., Pe(k). Mit anderen Worten, es sei fk(t) = gk(t). In diesem Punkt gilt e(k) = s(k) + ns. Falls jedoch ns = 1 wenn ns = ns – 1, ist gk(t) hergeleitet basierend auf Ps(k), Ps(k)+1, Ps(k)', Ps(k)+1' mit den Ausdrücken (9), (10) und (11) die gesuchte kubische Funktion fk(t) für eine Segmentkurve zwischen Ps(k) und Ps(k)+1 (mit anderen Worten zwischen Ps(k) und Pe(k)), da ein vorangehendes ns nicht existiert. An diesem Punkt gilt e(k) = s(k) + 1.
  • In diesem Fall wird, wie in [8] oder [9] beschrieben, durch Bestimmen der kubischen Funktion fk(t) durch Ermitteln eines maximalen ns, der ermöglicht, dass sämtliches in Ausdruck (13) gilt, während die Anfangszahl von Sprüngen nsi auf den ersten ns festgelegt wird und ns zu ns = ns + 1 oder ns = ns – 1 (oder Erhöhen oder Verringern von ns) variiert wird, eine Segmentkurve erzeugt, so dass der Abstand zwischen der Segmentkurve von einer Segmentbefehlspunktfolge innerhalb eines vorab eingestellten erlaubten Werts liegt und die maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, der einen Startpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, der ein Endpunkt der Segmentbefehlspunktfolge ist.
  • Während in diesem Fall ein geeigneter ns durch Festlegen von nsi auf den ersten ns und Variieren von ns zu ns = ns + 1 oder ns = ns – 1 bestimmt wird, kann eine Segmentkurve darüber hinaus auch durch Ermitteln eines geeigneten ns während einem signifikanten Variieren von ns mit einem Bisektionsverfahren anstelle von ns = ns + 1 oder ns = ns – 1 bestimmt werden. Zum Beispiel kann ns = 2·ns anstelle von ns = ns + 1 verwendet werden und ns = INT(ns/2) kann anstelle von ns = ns – 1 verwendet werden, wobei INT eine ganzzahlige Zahl bezeichnet. Alternativ kann ein geeigneter ns durch sequentielles Variieren von ns von 1 bestimmt werden, während nsi = 1 und ns = ns + 1 festgelegt wird. Es gibt verschiedene andere Verfahren zum Bestimmen eines geeigneten ns. Da solche Verfahren herkömmlicher Stand der Technik sind, wird an dieser Stelle keine detaillierte Beschreibung gegeben.
  • Während angenommen wird, dass eine Segmentkurve eine durch ein kubisches Polynom ausgedrückte kubische Kurve ist, wie dargestellt durch Ausdruck (9) und (14) oben, können die Techniken gemäß der vorliegenden Erfindung darüber hinaus auch auf eine quadratische Kurve niedrigerer Ordnung angewendet werden oder auf Kurven der vierten oder höheren Ordnung. Zusätzlich kann die vorliegende Erfindung auch auf andere Kurven wie beispielsweise NURBS-Kurven oder eine Bezier-Kurve angewendet werden.
  • <Bearbeitungsprogramm>
  • 8 zeigt ein Befehlsbeispiel eines Bearbeitungsprogramms. „G05.1 Q1” ist ein Bearbeitungsstartbefehl und Positionen auf den Achsen X, Y und Z zum Zeitpunkt des Bearbeitungsstartbefehls sind durch einen Startpunkt P0 dargestellt. Wenn weitere Achsen (U, V, W, A, B, C und dergleichen) ebenfalls Antriebsachsen sind, ist Po eine Position, die auch Positionen auf solchen Achsen umfasst. Wenn X- und Y-Achsen die einzigen Antriebsachsen sind, stellt P0 Positionen auf der X- und Y-Achse zu diesem Zeitpunkt dar. In diesem Fall werden die X-, Y- und Z-Achsen als Antriebsachsen angenommen. Daher sind nachfolgende Punktfolgen und Kurven in einem (X, Y, Z) Koordinatensystem darzustellen. Positionen einer Punktfolge P1, P2, ... werden in N002 und nachfolgenden Blöcken des Bearbeitungsprogramms vorgegeben. „G05.1 Q0” ist ein Bearbeitungsendbefehl und Positionen auf den X-, Y- und Z-Achsen zum Zeitpunkt des Bearbeitungsendbefehls sind durch einen Endpunkt Pn dargestellt. F bezeichnet eine Befehlsgeschwindigkeit. In diesem Fall wird angenommen, dass eine Punktfolge P0, P1, P2, ..., Pn, die selbst aus vom Bearbeitungsprogramm vorgegebenen Befehlspunkten besteht, eine bei der Bearbeitung verwendete Befehlspunktfolge ist.
  • Details der Prozesse, die auf die Punktfolge P0, P1, P2, ..., Pn angewandt werden, werden bezugnehmend auf die in 9 bis 12 gezeigten Ablaufdiagramme beschrieben. nc = 3 wird in gleicher Weise festgelegt, wie in <Abriss> [2] vorstehend beschrieben. Es wird ebenso angenommen, dass eine ausreichend große Anzahl von Punkten (fünf Punkte oder mehr) als die Befehlspunktfolge vorgegeben wurde.
  • <Bearbeitungskurvenerzeugung>
  • Ein von der Maschinenkurvenerzeugungseinheit ausgeführter Prozess wird im Detail unter Bezugnahme auf das in 9 gezeigte Ablaufdiagramm beschrieben.
  • [Schritt SA01] Erzeugen einer Startpunktbedingung und Ausführen eines Anfangswert-Festlegen, um eine erste Segmentkurve zu erzeugen. In diesem Fall wird ein Erst-Ableitungsvektor P0' einer eine erste Segmentkurve darstellenden kubischen Funktion als die Startpunktbedingung verwendet. Um P0' zu erzeugen, kann zum Beispiel eine tangentiale Richtung im Punkt P0 als P0' verwendet werden, wenn P0, P1 und P2 durch einen Bogen verbunden sind, eine tangentiale Richtung im Punkt P0 kann als P0' verwendet werden, wenn P0, P1 und P2 durch eine quadratische Kurve (Parabel) verbunden sind, und eine tangentiale Richtung im Punkt P0 kann als P0 verwendet werden, wenn P0 und P1 durch eine gerade Linie verbunden sind. In diesem Fall stellt P0 einen Startpunkt dar, P1 einen zweiten Punkt und P2 einen dritten Punkt. Es sei k = 0, s(0) = 0 und nsi = 1. k = 0 bedeutet, dass eine erste Segmentkurve zu erzeugen ist, s(0) = 0 bedeutet, dass ein Segmentstartpunkt, welches ein Startpunkt der ersten Segmentkurve ist, als P0 festgelegt ist und nsi = 1 bedeutet, dass die Anfangszahl von Sprüngen auf 1 festgelegt ist.
  • Wie bereits in „<1> Kurvenerzeugung, 1-1” beschrieben, kann darüber hinaus auch P0'' = 0 als die Startpunktbedingung verwendet werden (wird im zweiten Ausführungsbeispiel beschrieben).
  • [Schritt SA02] Aufrufen und Aktivieren der Endendiskriminierung (nachfolgend beschrieben) und Erhalten eines FE (End-Flag).
  • [Schritt SA03] Prüfen des FE, um festzustellen, ob der Wert davon 1 ist oder nicht. Da FE = 0 beim Erzeugen einer ersten Segmentkurve festgelegt ist, setzt der Prozess mit der Segmentkurvenerzeugung des Schrittes SA04 fort. Wenn der Prozess nach der Segmentkurvenerzeugung nachfolgend zur ersten Segmentkurve zu beenden ist, wird jedoch FE = 1 festgelegt und der Prozess der Bearbeitungskurvenerzeugungseinheit wird beendet.
  • [Schritt SA04] Erzeugen einer Segmentkurve (anfänglich der ersten Segmentkurve) gemäß der Segmentkurvenerzeugung (wie nachfolgend beschrieben).
  • [Schritt SA05] Setzen der erzeugten Segmentkurve auf Interpolationsdaten. Mit anderen Worten, Setzen der Daten (Afk, Bfk, Cfk, Dfk, Ps(k), Pe(k) und tk) zum Interpolieren einer erzeugten Funktion fk(t) auf interpolierte Daten (nachfolgend beschrieben).
  • [Schritt SA06] Es sei itemp = e(k), dtemp = Pe(k)' und setzen von k = k + 1, s(k) = itemp und Ps(k)' = dtemp. Entsprechendes Erhöhen von k um eins, Festlegen der Zahl e(k) eines Befehlspunktes des Segmentendpunktes, welcher der Endpunkt der erzeugten Segmentkurve (anfänglich der ersten Segmentkurve) ist, als die Zahl s(k) eines Befehlspunktes eines Segmentstartpunktes einer nächsten Segmentkurve oder, mit anderen Worten, Festlegen von Ps(k) als einen neuen Segmentstartpunkt und Verwenden eines Erst-Ableitungsvektors am Segmentendpunkt als einen Erst-Ableitungsvektor am Segmentstartpunkt der nächsten Segmentkurve oder, mit anderen Worten, einen neuen Segmentstartpunktvektor. Der Prozess kehrt dann zur Endendiskriminierung von Schritt SA02 zurück.
  • <Segmentkurvenerzeugung>
  • Ein von der Segmentkurvenerzeugungseinheit ausgeführter Prozess wird im Detail unter Bezugnahme auf das Ablaufdiagramm gezeigt in 10 (wie auch 5 bis 7) beschrieben.
  • [Schritt SB01] Es sei ns = nsi. Mit anderen Worten, Festlegen der Anzahl von Sprüngen ns auf die Anfangszahl von Sprüngen nsi. Beim Erzeugen einer ersten Segmentkurve ist nsi = 1 gegeben. Für eine Segmentkurvenerzeugung nachdem die erste Segmentkurve erzeugt wurde, wurde nsi während einer vorherigen Segmentkurvenerzeugung bestimmt. Erstellen von Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3. Hinsichtlich der Zahl s(k) eines Befehlspunktes, der ein Segmentstartpunkt ist, wird s(k) = 0 für die Erzeugung der ersten Segmentkurve festgelegt und für die Segmentkurvenerzeugung, nachdem die erste Segmentkurve erzeugt wurde, wird ein aktueller s(k) während einer vorherigen Segmentkurvenerzeugung bestimmt. Daher kann eine Befehlspunktfolge Ps(k), Ps(k)+ns, ..., Ps(k)+ns+3 erstellt werden. Jedoch werden keine Befehlspunkte jenseits eines Endpunktes Pn erstellt. Hinsichtlich Ps(k)' wurde Ps(k)' bereits beim Erzeugen der ersten Segmentkurve bestimmt (siehe [Schritt SA01] in <Bearbeitungskurvenerzeugung>) und für eine Segmentkurvenerzeugung, nachdem die erste Segmentkurve erzeugt wurde, wird ein Segmentendpunktvektor bei einer vorangehenden Segmentkurvenerzeugung als aktueller Segmentstartpunktvektor Ps(k)' verwendet (siehe [5] in <Bearbeitungskurvenerzeugung>).
  • [Schritt SB02] Aufrufen und Aktivieren der Erzeugung (wie nachfolgend beschrieben) einer Funktion gk(t). Darüber hinaus Erzeugen eines Flag (FT), das anzeigt, ob die erzeugte Funktion gk(t) innerhalb eines vorab festgelegten erlaubten Wertes für Ps(k)+1, ..., Ps(k)+ns-1 liegt oder nicht.
  • [Schritt SB03] Prüfen des Flag FT, um zu bestimmen, ob die erzeugte Funktion gk(t) innerhalb des erlaubten Wertes liegt oder nicht. Wenn das Flag FT innerhalb des erlaubten Wertes liegt (JA), setzt der Prozess mit Schritt SB04 fort, und wenn nicht (NEIN), setzt der Prozess mit Schritt SB08 fort.
  • [Schritt SB04] Vorläufiges Akzeptieren der erzeugten Funktion gk(t) als eine Funktion fk(t) einer aktuelle Segmentkurve durch Gleichsetzen von fk(t) = gk(t). Wie vorstehend beschrieben, bedeutet das Gleichsetzen von fk(t) und gk(t), dass eine Funktionsform von fk(t) bestimmt wird, wie durch Ausdruck (14) unten dargestellt. Aus e(k) = s(k) + ns, vorläufiges Festlegen der Zahl e(k) eines Befehlspunktes eines Segmentendpunktes und Pe(k) ≈ Ps(k)+ns, Pe(k)' ≈ Ps(k)+ns'. Es sei nsi = ns und vorläufiges Festlegen der Anfangszahl von Sprüngen für eine nächste Segmentkurvenerzeugung. Pe(k) stellt einen vorläufigen Segmentendpunkt dar und Pe(k)' stellt einen vorläufigen Segmentendpunktvektor dar.
  • [Schritt SB05] Es sei ns ≈ ns + 1 und Erstellen von Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3. Jedoch werden Befehlspunkte nicht jenseits eines Endpunkts Pn erstellt.
  • [Schritt SB06] Aufrufen und Aktivieren der Erzeugung (wie nachfolgend beschrieben) einer Funktion gk(t).
  • [Schritt SB07] Prüfen des Flags FT um zu Bestimmen, ob die erzeugte Funktion gk(t) innerhalb eines erlaubten Wertes liegt oder nicht. Wenn die erzeugte Funktion gk(t) innerhalb des erlaubten Wertes liegt (JA), setzt der Prozess mit Schritt SB04 fort, und wenn nicht (NEIN), wird der Prozess von der Segmentkurvenerzeugungseinheit mit dem Resultat beendet, welches zuletzt durch die Verarbeitung im Schritt SB04 erhalten wurde. Mit anderen Worten, die Funktion fk(t), die zuletzt im Schritt SB04 erhalten wurde, ist eine Funktion der aktuellen Segmentkurve, e(k) ist die Zahl eines Befehlspunktes des Segmentendpunktes, Pe(k) ist ein neuer Segmentendpunkt, Pe(k)' ist ein neuer Segmentendpunktvektor und nsi ist die Anfangszahl von Sprüngen für eine nächste Segmentkurvenerzeugung.
  • [Schritt SB08] Es sei ns = ns – 1 und Erstellen von Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3. Jedoch werden Befehlspunkte nicht jenseits eines Endpunktes Pn erstellt.
  • [Schritt SB09] Aufrufen und Aktivieren der Erzeugung (wie nachfolgend beschrieben) einer Funktion g(k)(t).
  • [Schritt SB010] Überprüfen des Flag FT, um zu bestimmen, ob die erzeugte Funktion g(k)(t) innerhalb des erlaubten Wertes liegt oder nicht. Wenn das Flag FT innerhalb des erlaubten Wertes liegt (JA), setzt der Prozess mit Schritt SB11 fort, da die Funktion g(k)(t) erhalten wurde, und wenn nicht, kehrt der Prozess zu Schritt SB08 zurück.
  • [Schritt SB011] Verwenden der erzeugten Funktion gk(t) als eine Funktion fk(t) einer aktuellen Segmentkurve durch Gleichsetzen von fk(t) = gk(t). Aus e(k) ≈ s(k) + ns wird die Zahl e(k) eines Befehlspunktes eines Segmentendpunktes festgelegt und Pek ≈ Ps(k)+ns, Pe(k)' = Ps(k)+ns'. Es sei nsi ≈ ns, Festlegen der Anfangszahl von Sprüngen für eine nächste Segmentkurvenerzeugung und Beenden des Prozesses der Segmentkurvenerzeugungseinheit. Pe(k) stellt einen neuen Segmentendpunkt dar und Pe(k)' stellt einen neuen Segmentendpunktvektor dar.
  • <Erzeugen der Funktion gk(t)>
  • Ein Prozess zum Erzeugen einer Funktion gk(t), der vom von der Segmentkurvenerzeugungseinheit durchgeführten Prozess aufgerufen und aktiviert wird, wird nun im Folgenden im Detail unter Bezugnahme auf ein in 11 gezeigtes Ablaufdiagramm beschrieben.
  • [Schritt SC01] Falls s(k) + ns ≥ n gilt (JA) oder, mit anderen Worten, falls das Überspringen von Befehlspunkten gemäß der Anzahl von Sprüngen im Überschreiten eines Endpunktes resultiert, setzt der Prozess mit Schritt SC10 fort, da die Funktion gk(t) nicht mit einem im Schritt SC02 und darauffolgend beschriebenen Verfahren erzeugt werden kann. Eine letzte Funktion gk(t) wird während der Endendiskriminierung (wie nachfolgend beschrieben) erzeugt.
  • [Schritt SC02] Berechnen von Ps(k)+ns' aus den erstellten Ps(k), Ps(k)', Ps(k)+ns, ..., Ps(k)+ns+3 mit den Ausdrücken (8-1) und (8-2), wie in <Abriss [3], [4]> beschrieben. Obwohl im in 11 gezeigten Ablaufgramm nicht beschrieben, da der Fall speziell ist, wenn Ps(k)+ns, ..., Ps(k)+ns+3 nicht jenseits des Endpunkts Pn erstellt werden oder, mit anderen Worten, wenn sämtliche der Befehlspunkte von Ps(k)+ns, ..., Ps(k)+ns+3 nicht erstellt wurden, da (k) + ns + 3 > n, Durchführen der Berechnungen wie durch Ausdrücke (15-1) und (15-2) dargestellt oder mit Ausdrücken (16-1) und (16-2) unten anstelle von Ausdrücken (8-1) und (8-2). In diesem Fall wird Pn' mit einem gleichartigen Verfahren erhalten, wie in <Abriss> [3] beschrieben.
  • Da nc = 3, sind Fälle, bei denen Ps(k)+ns, ..., Ps(k)+ns+3 nicht jenseits des Endpunktes erstellt sind, die beiden jeweils durch Ausdrücke (15-1) und (15-2) unten und durch Ausdrücke (16-1) und (16-2) unten dargestellten Fälle. Sogar wenn nc > 3 kann jedoch eine Berechnung von einem Fall, bei dem Ps(k)+ns, ..., Ps(k)+ns+nc nicht jenseits des Endpunktes erstellt sind, in einer gleichartigen Weise durchgeführt werden. <Wenn s(k) + ns + 1 = n (wenn Ps(k)+ns+1 ein Endpunkt Pn ist und eine Befehlspunktfolge jenseits des Endpunktes Pn nicht erstellt ist)> (13)
    Figure 00240001
    wobei t1 und t2 durch Ausdruck (15-2) unten definiert sind.
  • Figure 00240002
  • <Wenn s(k) + ns + 2 = n (wenn Ps(k)+ns+2 ein Endpunkt Pn ist und eine Befehlspunktfolge jenseits des Endpunkts Pn nicht erstellt ist)> (14)
    Figure 00240003
    wobei t1, t2 und t3 durch Ausdruck (16-2) unten definiert sind.
  • Figure 00240004
  • [Schritt SC03] Basierend auf Ps(k), Ps(k)+ns und Ps(k)' sowie Ps(k)+ns, wie in Schritt SC02 bestimmt, Bestimmen der Koeffizienten Agk, Bgk, Cgk und Dgk der durch Ausdruck (9) dargestellten kubischen Funktion gk(t) zwischen Ps(k) und Ps(k)+ns mit Ausdruck (11) und Erzeugen von gk(t).
  • [Schritt SC04] Festlegen eines Anfangswerts eines Index j, zum Prüfen (siehe Ausdruck (13)), ob die Funktion gk(t) innerhalb eines erlaubten Wertes Tol bis 1 liegt oder nicht.
  • [Schritt SC05] Vergleichen von j mit ns. Wenn j ≥ ns, setzt der Prozess mit Schritt SC09 fort, und wenn j < ns, setzt der Prozess mit Schritt SC06 fort. Wenn ns = 1 gilt, gilt des Weiteren ausnahmslos j ≥ ns.
  • [Schritt SC06] Erzeugen von Qj mit Ausdruck (12).
  • [Schritt SC07] Vergleichen von |Qj – Ps(k)+j| mit dem erlaubten Wert Tol. Wenn |Qj – Ps(k)+j| ≤ Tol (JA), setzt Prozess mit Schritt SC08 fort, und wenn |Qj – Ps(k)+j| > Tol (NEIN), setzt Prozess mit Schritt SC10 fort.
  • [Schritt SC08] Es sei j = j + 1 und der Prozess kehrt zu Schritt SC05 zurück.
  • [Schritt SC09] Setzen des innerhalb-des-erlaubten-Wertes-Flags FT auf 1, um anzuzeigen, dass die Funktion gk(t) innerhalb des erlaubten Werts liegt, und Beenden des Prozesses zum Erzeugen der Funktion gk(t).
  • [Schritt SC010] Setzen des innerhalb-des-erlaubten-Wertes-Flags FT auf 0, um anzuzeigen, dass die Funktion gk(t) außerhalb des erlaubten Wertes liegt, und Beenden des Prozesses zum Erzeugen der Funktion gk(t).
  • <Endendiskriminierung>
  • Ein Prozess zur Endendiskriminierung, der vom von der Bearbeitungskurvenerzeugungseinheit ausgeführten Prozess aufgerufen und aktiviert wird, wird nun im Folgenden im Detail unter Bezugnahme auf ein in 12 gezeigtes Ablaufdiagramm beschrieben.
  • [Schritt SD01] Vergleichen von s(k) mit n – 1. Wenn s(k) ≥ n – 1 (JA) oder, mit anderen Worten, wenn s(k) unmittelbar dem Endpunkt vorausgeht, setzt der Prozess mit Schritt SD02 fort. Andernfalls, wenn s(k) < n – 1 (NEIN) oder, mit anderen Worten, wenn s(k) dem Endpunkt nicht unmittelbar vorausgeht, setzt der Prozess mit Schritt SD05 fort.
  • [Schritt SD02] Basierend auf Ps(k), Pn, Ps(k)' und Pn', Ermitteln der Koeffizienten Agk, Bgk, Cgk und Dgk der kubischen Funktion gk(t) in Ausdruck (9) zwischen Pn-1 und Pn, um gk(t) zu erzeugen. In diesem Fall wird Pn' durch ein gleichartiges Verfahren bestimmt, wie in <Abriss> [3] beschrieben (siehe 15).
  • [Schritt SD03] Es sei fk(t) = gk(t).
  • [Schritt SD04] Setzen von FE (End-Flag) = 1, um eine letzte Segmentkurve anzuzeigen. Anschließend Beenden des Prozesses.
  • [Schritt SD05] Vergleichen von s(k) + nsi mit n – 1. Wenn s(k) + nsi ≤ n – 1 (NEIN) oder, mit anderen Worten, wenn eine Summe der Nummer eines Befehlspunktes des Segmentstartpunktes und die Anfangszahl von Sprüngen geringer ist als eine Befehlspunktnummer des Endpunkts (Normalfall), setzt der Prozess mit Schritt SD07 fort. Andererseits, wenn s(k) + nsi > n–1 (JA) oder, mit anderen Worten, wenn eine Summe der Nummer des Befehlspunkts des Segmentstartpunktes und die Anfangsnummer von Sprüngen gleich einer der Befehlspunktnummer des Endpunktes nachfolgenden Nummer ist, setzt der Prozess mit Schritt SD06 fort.
  • [Schritt SD06] Es sei nsi = (n – 1) – s(k), so dass die Nummer des Befehlspunktes des Segmentstartpunktes und die Anfangsnummer von Sprüngen sich zu n – 1 addieren.
  • [Schritt SD07] Setzen von FE (End-Flag) = 0. Danach Beenden des Prozesses der Endendiskriminierung.
  • Aufgrund dieser Prozesse kann mit der Segmentkurvenerzeugungseinheit, die eine Segmentkurve erzeugt, welches eine Kurve entsprechend einer Segmentbefehlspunktfolge eines jeden Segments einer Befehlspunktfolge ist, eine Segmentkurve erzeugt werden, so dass der Abstand von der Segmentkurve zu der Segmentbefehlspunktfolge innerhalb eines vorab eingestellten erlaubten Wertes liegt und die maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, der ein Segmentstartpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, der ein Endpunkt der Segmentbefehlspunktfolge ist, und mit der Bearbeitungskurvenerzeugungseinheit kann der Prozess der Segmentkurvenerzeugungseinheit wiederholt von einem Startpunkt zu einem Endpunkt der Befehlspunktfolge ausgeführt werden, um eine Bearbeitungskurve zu erzeugen.
  • Während eine Bearbeitungskurve und eine Segmentkurve mit X-, Y-, und Z-Achsen als Antriebsachsen einer Werkzeugmaschine erzeugt wurden, können eine Bearbeitungskurve und eine Segmentkurve ebenso hinsichtlich Antriebsachsen einschließlich einer Rotationsachse in einer Multiachsenmaschine erzeugt werden, die in der Lage ist, Werkzeugrichtungen mit der Rotationsachse zu kontrollieren.
  • Des Weiteren können eine Bearbeitungskurve und eine Segmentkurve ebenso in Werkzeugrichtungen erzeugt werden, die von Vektoren wie beispielsweise (I, J, K) vorgegeben sind, durch Handhaben derartiger Werkzeugrichtungen in einer gleichartigen Weise wie Antriebsachsen. Mit anderen Worten, in einer gleichartigen Weise zum Darstellen einer Punktfolge oder einer Kurve im (X, Y, Z) Koordinatensystem können gleichartige Prozesse zu denen der vorliegenden Ausführungsform durch Darstellen einer Werkzeugrichtung in einem (I, J, K) Koordinatensystem ausgeführt werden, Interpolieren einer auf dem (I, J, K) Koordinatensystem erzeugten Bearbeitungskurve und Verwenden einer interpolierten Position als eine Werkzeugrichtung im (I, J, K) Koordinatensystem, Transformieren der interpolierten Werkzeugrichtung zu einer Position einer Rotationsachse, welche die Werkzeugrichtung steuert, und Bewegen der Rotationsachse.
  • Als nächstes wird eine zweite Ausführungsform einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung beschrieben.
  • Als die zweite Ausführungsform wird ein Beispiel beschrieben, in dem Zweit-Ableitungsvektoren P0'' = 0 an einem Startpunkt in einer gleichartigen Weise zu der in „<1> Kurvenerzeugung, 1-1” beschriebenen als Startpunktbedingung verwendet werden, wie in <Bearbeitungskurvenerzeugung> in der ersten Ausführungsform beschrieben. Des Weiteren wird in der zweiten Ausführungsform eine andere Bedingung (Zweit-Ableitungsvektor Ps(k)+ns+3'' = 0) wie die in „<1> Kurvenerzeugung, 1-1” beschriebene als eine Bedingung bei Ps(k)+ns+3 verwendet, anstelle des Erst-Ableitungsvektors Ps(k)+ns+3', wie in <Abriss> [3] der ersten Ausführungsform beschrieben. Während ein Erst-Ableitungsvektor Ps(k)+ns+3', wie der in der ersten Ausführungsform beschriebene, ebenfalls verwendet werden kann, wird in der zweiten Ausführungsform ein Zweit-Ableitungsvektor Ps(k)+ns+3'' = 0 als eine Bedingung bei Ps(k)+ns+3 verwendet, um zu zeigen, dass diverse Startpunktbedingungen und Endpunktbedingungen kombiniert werden können, wie „<1> Kurvenerzeugung, 1-1” in beschrieben.
  • In diesem Fall werden die Ausdrücke (7), (8-1) und (8-2) in der ersten Ausführungsform bei der Erzeugung einer ersten Segmentkurve zu den Ausdrücken (17), (18-1) und (18-2) unten. Ausdruck (17) unterscheidet sich von Ausdruck (7) oben in der ersten und letzten Reihe einer linksseitigen Matrize und in den ersten und letzten Elementen eines rechtsseitigen Vektors. Ausdruck (18-1) unterscheidet sich von Ausdruck (8-1) oben in einer gleichartigen Weise. k = 0 und s(0) = 0. Ps(0)' und Ps(0)+ns' können mit den Ausdrücken (18-1) und (18-2) bestimmt werden und eine Funktion g0(t) kann aus Ps(0)', Ps(0)+ns', Ps(0) und Ps(0)+ns mit den Ausdrücken (9), (10) und (11) hergeleitet werden. Dies ist eine Funktion, welche eine erste Segmentkurve darstellt.
    Figure 00280001
    wobei t1 bis t4 durch Ausdruck (18-2) unten definiert sind.
  • Figure 00290001
  • Die Ausdrücke (7), (8-1) und (8-2) in der ersten Ausführungsform bei der Segmentkurvenerzeugung nach dem Erzeugen der ersten Segmentkurve werden zu den Ausdrücken (19), (20-1) und (20-2) unten. Ausdruck (19) unterscheidet sich von Ausdruck (7) in einer letzten Reihe der linksseitigen Matrize und einem letzten Element des rechtsseitigen Vektors. Ausdruck (20-1) unterscheidet sich von Ausdruck (8-1) in einer gleichen Weise. Ps(k)+ns' kann mit den Ausdrücken (20-1) und (20-2) bestimmt werden und eine Funktion gk(t) kann aus Ps(k)', Ps(k) und Ps(k)+ns hergeleitet werden, die bereits bei dem vorigen Segmentkurvenerzeugen mit Ausdrücken (9), (10) und (11) bestimmt wurden. Dies ist eine Funktion, welche eine Segmentkurve nach dem Erzeugen der ersten Segmentkurve darstellt.
    Figure 00300001
    wobei t1 bis t4 durch Ausdruck (20-2) unten definiert sind.
  • Figure 00300002
  • Da andere Prozesse gleichartig zu denen in der ersten Ausführungsform sind, wird eine Beschreibung davon ausgelassen.
  • Als nächstes wird eine dritte Ausführungsform einer numerischen Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß der vorliegenden Erfindung beschrieben.
  • Während eine Punktfolge aus Befehlspunkten, die von einem Bearbeitungsprogramm vorgegeben sind, als Befehlspunktfolge in der ersten und zweiten Ausführungsform verwendet wurden, wird eine Punktfolge, die durch Ausführen eines Glättens einer Punktfolge aus Befehlspunkten, welche von einem Bearbeitungsprogramm vorgegeben sind, als die Befehlspunktfolge in der vorliegenden dritten Ausführungsform verwendet. Techniken zum Glätten sind herkömmlicher Stand der Technik und die vorliegende Ausführungsform kombiniert derartige Glättungstechniken mit der vorliegenden Erfindung.
  • Ein einfaches Glättungsverfahren ist beispielsweise wie folgt. Hinsichtlich einer ursprünglichen Punktfolge P1, ..., Pn-1, die aus einer von einem Bearbeitungsprogramm vorgegebenen Befehlspunktfolge durch Ausschließen eines Startpunkts P0 und eines Endpunkts Pn davon extrahiert sind, wird ein Glätten, welches den Durchschnitt von Pi und zwei vorangehenden und nachfolgenden Punkten davon (Pi-1 und Pi+1) bildet, durchgeführt, wie durch Ausdruck (21) unten dargestellt, um eine neue Befehlspunktfolge P0, P1, ..., Pn-1, Pn zu erzeugen.
  • Figure 00310001
  • Alternativ wird ein anderes einfaches Glättungsverfahren nachfolgend beschrieben. Hinsichtlich einer ursprünglichen Punktfolge P0, P1, ..., Pm-1, Pm, die durch ein Bearbeitungsprogramm vorgegeben ist, wird ein Glätten von dieser durchgeführt, das einen mittleren Punkt mit der Ausnahme eines Startpunktes P0 und eines Endpunktes Pm erzeugt, wie durch Ausdruck (22) unten dargestellt, um eine neue Befehlspunktfolge P0, P1, ..., Pn-1, Pn zu erzeugen. Da sich in diesem Fall die Anzahl von Punkten verglichen mit der ursprünglichen Punktfolge P0, P1, ..., Pm-1, Pm um eins erhöht, wird n = m + 1 festgelegt. In der in einer unteren Hälfte von 16 gezeigten „neuen Befehlspunktfolge” wird die ursprüngliche Befehlspunktfolge P1, ..., Pm-1 durch umrandete Punkte (o) dargestellt und die neue Befehlspunktefolge P0, P1, ..., Pn-1, Pn wird durch schwarze Punkte (•) dargestellt.
  • Figure 00320001
  • Neben diesen einfachen Glättungsverfahren kann die vorliegende Erfindung mit diversen, als herkömmlicher Stand der Technik bekannten Glättungsverfahren kombiniert werden.
  • <Blockdiagramm>
  • Als nächstes wird eine erste Ausführungsform der numerischen Steuerung gemäß der vorliegenden Erfindung unter Bezugnahme auf 17 beschrieben.
  • Die numerische Steuerung führt ein Bearbeiten aus, durch Erzeugen einer Bearbeitungskurve, welches eine Kurve für das Bearbeiten ist, basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve. In der numerischen Steuerung liest und analysiert eine Befehlslese-/Analyseeinheit 2 Befehle von einem Bearbeitungsprogramm, um Interpolationsdaten zu erzeugen, eine Interpolationseinheit 8 führt ein Interpolieren basierend auf den Interpolationsdaten und gemäß einer Befehlsgeschwindigkeit durch, um Positionen zu bestimmen, zu denen die entsprechenden Achsen zu bewegen sind, und Servos der jeweiligen Achsen werden zu diesen Positionen bewegt.
  • In der vorliegenden Erfindung liest die Lese-/Analyse-Einheit 2 Befehle eines Bearbeitungsprogramms und aktiviert eine Bearbeitungskurvenerzeugungseinheit 4. Die Bearbeitungskurvenerzeugungseinheit 4 aktiviert eine Segmentkurvenerzeugungseinheit 6, erzeugt eine einzelne Segmentkurve als eine Bearbeitungskurve und setzt die Segmentkurve auf Interpolationsdaten. Die auf Interpolationsdaten gesetzte Segmentkurve (ein Teil der Bearbeitungskurve) wird durch die Interpolationseinheit 8 interpoliert und die entsprechenden Antriebsachsen (X-, Y- und Z-Achsen-Servos 10, 12 und 14) werden zu interpolierten Positionen bewegt. Das Erzeugen derartiger Segmentkurven, das Setzen von Segmentkurven zu Interpolationsdaten und der Interpolationsprozess davon werden wiederholt und fortlaufend ausgeführt. Da Techniken, die von der Interpolationseinheit 8 zum Interpolieren einer Bearbeitungskurve verwendet werden, herkömmlicher Stand der Technik sind, wird keine detaillierte Beschreibung davon gegeben.
  • Als nächstes werden vorteilhafte Effekte der vorliegenden Erfindung beschrieben. Die vorliegende Erfindung erzeugt die folgenden vorteilhaften Effekte.
    • (1) Wie vorstehend unter Bezugnahme auf das Blockdiagramm beschrieben, erzeugt die numerische Steuerung Interpolationsdaten mit der Befehlslese-/Analyseeinheit und führt ein Interpolieren basierend auf den Interpolationsdaten mit der Interpolationseinheit durch. Wenn Befehlspunkte mit geringen Intervallen vorgegeben sind, muss das Erzeugen der Interpolationsdaten und der Interpolation basierend auf den Interpolationsdaten oft wiederholt werden und als Folge daraus tritt eine Verlangsamung aufgrund einer unzureichenden Kapazität zum Erzeugen und Interpolieren von Bearbeitungskurven auf. Da mit der vorliegenden Erfindung eine kubische Kurve (Segmentkurve) erzeugt werden kann, die einer maximalen Anzahl von Befehlspunkten entspricht, oder mit anderen Worten, da Interpolationsdaten erzeugt werden können, die einer Punktfolge entsprechen, die eine maximale Anzahl von Befehlspunkten einschließt, ist die Wahrscheinlichkeit geringer, dass ein Bedarf für eine oftmaliges Wiederholen des Erzeugens von Interpolationsdaten und des Ausführens der Interpolation auftritt. Entsprechend kann das Auftreten von Verlangsamungen aufgrund einer unzureichenden Kapazität der numerischen Steuerung zum Erzeugen und Interpolieren von Bearbeitungskurven reduziert werden, sogar wenn Intervalle zwischen Befehlspunkten gering sind.
    • (2) Da die vorliegende Erfindung das Erzeugen einer kubischen Kurve (Segmentkur ve) ermöglicht, welche einer maximalen Anzahl von Befehlspunkten entspricht, sogar wenn eine Befehlspunktfolge eine Abweichung aufgrund von Fehlern hinsichtlich einer Zielkurve aufweist, kann die Auswirkung der Fehler reduziert werden und eine Bearbeitungskurve, die die Zielkurve genauer annähert, kann erzeugt werden.
    • (3) Auf einer gemäß der vorliegenden Erfindung erzeugten Bearbeitungskurve sind in einem Endpunkt einer jeden Segmentkurve und in einem Startpunkt einer nächsten Segmentkurve Erst-Ableitungsvektoren stetig und Zweit-Ableitungsvektoren praktisch stetig. Wie vorstehend beschrieben, kann die Stetigkeit der Zweit-Ableitungsvektoren durch Erhöhen einer vorbestimmten Anzahl von Punkten nc verbessert werden. Darüber hinaus liegt ein Fehler der Bearbeitungskurve zu einer Befehlspunktfolge innerhalb eines erlaubten Wertes. Gemäß der vorliegenden Erfindung kann daher eine gleichmäßige Bearbeitungsform, deren Fehler zu der Befehlspunktfolge innerhalb eines erlaubten Wertes liegt, und ein gleichmäßiger Bearbeitungsbetrieb mit gleichmäßiger Beschleunigung einer jeden Antriebsachse erhalten werden.
    • (4) Da die vorliegende Erfindung das sequentielle Erzeugen von Bearbeitungskurven ohne Einlesen sämtlicher Punkte ermöglicht, welche die Befehlspunktfolge bilden, können Bearbeitungskurven erzeugt werden, ohne das ein großer Speicher oder eine lange Berechnungszeit benötigt 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 2-113305 [0013]
    • US 5140236 [0013]
    • JP 10-49215 [0014]
    • JP 10-240328 [0015]

Claims (6)

  1. Numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion, die ein Bearbeiten ausführt durch Erzeugen einer Bearbeitungskurve, welche eine Kurve zum Bearbeiten ist, basierend auf einer Befehlspunktfolge, die von einem Bearbeitungsprogramm für eine Werkzeugmaschine erhalten wird, welche eine Mehrzahl von Antriebsachsen umfassend zumindest zwei lineare Achsen aufweist, Interpolieren der Bearbeitungskurve und Bewegen der Antriebsachsen zu den interpolierten Positionen auf der Bearbeitungskurve, wobei die numerische Steuerung umfasst: eine Segmentkurvenerzeugungseinheit, welche die Befehlspunktfolge in eine Mehrzahl von Segmenten unterteilt und eine Segmentkurve erzeugt, welches eine Kurve entsprechend einer Segmentbefehlspunktfolge eines jeden der Segmente ist, sodass ein Abstand der Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Werts liegt und eine maximale Anzahl von Befehlspunkten zwischen einem Segmentstartpunkt, welcher ein Startpunkt der Segmentbefehlspunktfolge ist, und einem Segmentendpunkt eingeschlossen ist, welches ein Endpunkt der Segmentbefehlspunktfolge ist; und eine Bearbeitungskurvenerzeugungseinheit, die durch wiederholtes Ausführen des Prozesses der Segmentkurvenerzeugungseinheit von einem Startpunkt zu einem Endpunkt der Befehlspunktfolge die Bearbeitungskurve erzeugt, wobei die Bearbeitungskurve interpoliert wird und die Antriebsachsen angetrieben werden, um sich zu den interpolierten Positionen auf der Bearbeitungskurve zu bewegen.
  2. Numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß Anspruch 1, wobei die Segmentkurvenerzeugungseinheit hinsichtlich einer Segmentbefehlspunktfolge, welche die Befehlspunktfolge in einem Segment ist, das am Startpunkt der Befehlspunktfolge beginnt, einen Segmentstartpunktvektor und einen Segmentendpunktvektor als Erst-Ableitungsvektoren der Bearbeitungskurve am Startpunkt und am Segmentendpunkt bestimmt, basierend auf dem Startpunkt, einer Startpunktbedingung, welches eine Bedingung für den Startpunkt ist, einem Segmentendpunkt, welches ein Endpunkt der Segmentbefehlspunktfolge ist, und einer Befehlspunktfolge, die von einer vorbestimmten Anzahl von Punkten nach dem Segmentendpunkt gebildet wird; die Segmentkurve aus dem Startpunkt, dem Segmentstartpunktvektor, dem Segmentendpunkt und dem Segmentpunktvektor erzeugt; eine erste Segmentkurve erzeugt, so dass ein Abstand der ersten Segmentkurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und eine maximale Anzahl von Befehlspunkten zwischen dem Startpunkt und dem Segmentendpunkt eingeschlossen ist; nach dem Erzeugen der ersten Segmentkurve hinsichtlich einer Segmentbefehlspunktfolge in einem auf den Befehlsendpunkt der Befehlspunktfolge folgenden Segment einen Segmentendpunkt festlegt, der dem Segment als neuer Segmentstartpunkt vorangeht, einen Segmentendpunktvektor festlegt, der dem Segment als ein neuer Segmentstartpunktvektor vorangeht, und einen Endpunkt der Segmentbefehlspunktfolge als einen neuen Segmentendpunkt festlegt; einen neuen Segmentendpunktvektor als einen Erst-Ableitungsvektor der Bearbeitungskurve am Segmentendpunkt bestimmt, basierend auf dem neuen Segmentstartpunkt, dem neuen Segmentstartpunktvektor, dem neuen Segmentendpunkt und einer Befehlspunktfolge, die aus einer vorbestimmten Anzahl von Punkten nach dem neuen Segmentendpunkt gebildet wird; die Segmentkurve aus dem neuen Segmentstartpunkt, dem neuen Segmentstartpunktvektor, den neuen Segmentendpunkt und den neuen Segmentendpunktvektor erzeugt; und die Segmentkurve erzeugt, so dass ein Abstand der Bearbeitungskurve von der Segmentbefehlspunktfolge innerhalb eines vorab festgelegten erlaubten Wertes liegt und eine maximale Anzahl von Befehlspunkten zwischen dem Segmentstartpunkt und dem Segmentendpunkt eingeschlossen ist.
  3. Numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß Anspruch 2, wobei gemäß der Startpunktbedingung eine tangentiale Richtung an einem Startpunkt eines Bogens, der den Startpunkt, einen zweiten Punkt und einen dritten Punkt der Befehlspunktfolge verbindet, als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt ist, eine tangentiale Richtung an einem Startpunkt einer quadratischen Kurve, die den Startpunkt, den zweiten Punkt und den dritten Punkt der Befehlspunktfolge verbindet, als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt ist, oder eine tangentiale Richtung an einem Startpunkt einer geraden Linie, die den Startpunkt und dem zweiten Punkt der Befehlspunktfolge verbindet, als ein Erst-Ableitungsvektor der Bearbeitungskurve festgelegt ist.
  4. Numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß Anspruch 2, wobei gemäß der Startpunktbedingung ein Zweit-Ableitungsvektor der Bearbeitungskurve in einem Startpunkt der Befehlspunktfolge zu null gesetzt ist.
  5. Numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß Anspruch 1, wobei das Einschließen der maximalen Anzahl von Befehlspunkten zwischen dem Segmentstartpunkt und dem Segmentendpunkt erreicht wird durch Ermitteln, während des Erhöhens oder Reduzierens der Anzahl von Sprüngen ns, eines maximalen ns, sodass sämtliche der folgenden gelten: |Q1 – Ps(k)+1| ≤ Tol |Q2 – Ps(k)+2| ≤ Tol ... |Qns-1 – Ps(k)+ns-1| ≤ Tol
  6. Numerische Steuerung mit einer Bearbeitungskurvenerzeugungsfunktion gemäß einem der Ansprüche 1 bis 5, wobei die Befehlspunktfolge eine Punktfolge aus von einem Bearbeitungsprogramm vorgegebenen Befehlspunkten ist, oder eine Punktfolge, die durch Ausführen eines Glättens einer Punktfolge aus von einem Bearbeitungsprogramm vorgegebenen Befehlspunkten erzeugt wird.
DE102013002516.8A 2012-02-20 2013-02-13 Numerische Steuerung mit Bearbeitungskurvenerzeugungsfunktion Active DE102013002516B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012033897A JP5326015B2 (ja) 2012-02-20 2012-02-20 加工曲線作成機能を有する数値制御装置
JP2012-033897 2012-02-20

Publications (2)

Publication Number Publication Date
DE102013002516A1 true DE102013002516A1 (de) 2013-08-22
DE102013002516B4 DE102013002516B4 (de) 2015-10-01

Family

ID=48915303

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013002516.8A Active DE102013002516B4 (de) 2012-02-20 2013-02-13 Numerische Steuerung mit Bearbeitungskurvenerzeugungsfunktion

Country Status (4)

Country Link
US (1) US9268323B2 (de)
JP (1) JP5326015B2 (de)
CN (1) CN103257614B (de)
DE (1) DE102013002516B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015013582B4 (de) 2014-10-23 2018-08-09 Fanuc Corporation Numerische Steuervorrichtung

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9153049B2 (en) * 2012-08-24 2015-10-06 International Business Machines Corporation Resource provisioning using predictive modeling in a networked computing environment
JP5845228B2 (ja) * 2013-10-23 2016-01-20 ファナック株式会社 工具経路曲線化装置
JP2015100867A (ja) * 2013-11-22 2015-06-04 トヨタ自動車株式会社 ロボットの3次元軌道生成方法
US9513623B2 (en) * 2014-01-21 2016-12-06 Mitsubishi Electric Research Laboratories, Inc. Method for generating trajectory for numerical control process
JP5850963B2 (ja) 2014-02-13 2016-02-03 ファナック株式会社 指令経路圧縮機能を有する数値制御装置
JP5926358B1 (ja) 2014-11-28 2016-05-25 ファナック株式会社 形状誤差を保証する工具経路の曲線化方法および曲線化装置
DE102015202017A1 (de) * 2015-02-05 2016-08-11 Kuka Roboter Gmbh Manipulatorsystem zur koordinierten Steuerung von zumindest zwei Manipulatoren
CN104898554A (zh) * 2015-04-30 2015-09-09 柳州宏开汽车科技有限公司 一种基于离散刀位点的复合刀具路径生成方法
JP6267156B2 (ja) 2015-05-29 2018-01-24 ファナック株式会社 微小ブロックのコーナ制御を行うワイヤカット放電加工機用数値制御装置
WO2016199266A1 (ja) * 2015-06-11 2016-12-15 三菱電機株式会社 数値制御装置
CN105425725B (zh) * 2015-12-09 2017-10-31 华中科技大学 一种离散刀具轨迹的曲线拟合方法
JP6444923B2 (ja) * 2016-03-30 2018-12-26 ファナック株式会社 数値制御装置
JP6386511B2 (ja) 2016-10-28 2018-09-05 ファナック株式会社 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
JP6289765B1 (ja) * 2016-12-27 2018-03-07 三菱電機株式会社 数値制御装置、プログラム変換装置、数値制御方法およびプログラム変換方法
JP6816704B2 (ja) * 2017-11-09 2021-01-20 オムロン株式会社 指令値補間装置及びサーボドライバ
JP2019156040A (ja) * 2018-03-09 2019-09-19 日立オートモティブシステムズ株式会社 車両搭載機器の制御装置
DE102018112650A1 (de) * 2018-05-25 2019-11-28 Franka Emika Gmbh Verfahren zum Bereitstellen von Sollgrößen für einen Regler eines Robotermanipulators
JP6795553B2 (ja) * 2018-07-06 2020-12-02 ファナック株式会社 数値制御装置、数値制御方法及び数値制御プログラム
DE102018117244B3 (de) * 2018-07-17 2019-10-31 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
DE102018117245B3 (de) * 2018-07-17 2019-10-24 Lti Motion Gmbh Verfahren zum Ermitteln einer Grobbahn aus einer vorgegebenen Kontur
CN109032077B (zh) * 2018-09-05 2022-03-18 沈阳建筑大学 一种基于刀具姿态控制的五轴数控加工指令点插补方法
JP6823037B2 (ja) * 2018-11-09 2021-01-27 ファナック株式会社 数値制御装置、加工経路設定方法及びプログラム
CN111880484B (zh) * 2020-07-15 2021-09-21 中国科学院大学 一种数控机床加工前瞻处理方法及系统
CN111913441B (zh) * 2020-08-06 2021-11-09 南京工程学院 一种基于轨迹模式的拐角平滑过渡方法
CN112276906B (zh) * 2020-10-16 2021-09-07 深圳市华成工业控制股份有限公司 一种运动速度的控制方法、系统、主机及存储介质
CN112269356B (zh) * 2020-10-27 2022-03-18 南京溧航仿生产业研究院有限公司 一种机器人nurbs轨迹插补方法
JPWO2022138843A1 (de) 2020-12-25 2022-06-30
CN113001595B (zh) * 2021-02-04 2022-10-11 阳江市美珑美利刀具有限公司 柳叶型刀刃的刀具制备方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02113305A (ja) 1988-10-24 1990-04-25 Fanuc Ltd スプライン補間方法
JPH1049215A (ja) 1996-07-29 1998-02-20 Roland D G Kk 形状加工システムにおける加工形状データの圧縮処理方法
JPH10240328A (ja) 1997-02-21 1998-09-11 Mitsubishi Electric Corp 数値制御装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6435605A (en) * 1987-07-30 1989-02-06 Fanuc Ltd Numerical controller
JPH01217607A (ja) * 1988-02-26 1989-08-31 Fanuc Ltd スプライン曲線生成方法
JP2935706B2 (ja) * 1988-12-07 1999-08-16 ファナック株式会社 加工プログラム修正方法
EP0384925B1 (de) * 1989-02-28 1995-11-22 Siemens Aktiengesellschaft Steuerungsverfahren bei einer numerischen Werkzeugmaschine oder einem Roboter
JPH0354610A (ja) * 1989-07-21 1991-03-08 Fanuc Ltd インボリュート補間誤差補正方式
JPH04333105A (ja) 1991-05-08 1992-11-20 Mitsubishi Heavy Ind Ltd ロボットの軌跡制御方法
JPH0736514A (ja) * 1993-07-20 1995-02-07 Fanuc Ltd 3次元工具径補正方式
US6922606B1 (en) * 1999-11-19 2005-07-26 Siemens Energy & Automation, Inc. Apparatus and method for smooth cornering in a motion control system
JP2002172543A (ja) * 2000-09-29 2002-06-18 Toyoda Mach Works Ltd 加工装置の制御パラメータ設定装置及び制御パラメータ設定方法
JP2007293478A (ja) 2006-04-24 2007-11-08 Fanuc Ltd 曲線補間方法
JP4168060B2 (ja) * 2006-04-24 2008-10-22 ファナック株式会社 円錐状の加工面の加工を可能にした数値制御装置
CN101493687B (zh) 2009-03-02 2010-07-21 广西大学 实时前瞻全程加减速控制的nurbs曲线自适应分段插补方法
DE102011007183A1 (de) * 2011-04-12 2012-10-18 Wafios Ag Verfahren und System zur Programmierung der Steuerung einer mehrachsigen Umformmaschine sowie Umformmaschine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02113305A (ja) 1988-10-24 1990-04-25 Fanuc Ltd スプライン補間方法
US5140236A (en) 1988-10-24 1992-08-18 Fanuc Ltd. Spline interpolation method
JPH1049215A (ja) 1996-07-29 1998-02-20 Roland D G Kk 形状加工システムにおける加工形状データの圧縮処理方法
JPH10240328A (ja) 1997-02-21 1998-09-11 Mitsubishi Electric Corp 数値制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015013582B4 (de) 2014-10-23 2018-08-09 Fanuc Corporation Numerische Steuervorrichtung

Also Published As

Publication number Publication date
CN103257614B (zh) 2014-11-05
US9268323B2 (en) 2016-02-23
CN103257614A (zh) 2013-08-21
JP2013171376A (ja) 2013-09-02
JP5326015B2 (ja) 2013-10-30
US20130218323A1 (en) 2013-08-22
DE102013002516B4 (de) 2015-10-01

Similar Documents

Publication Publication Date Title
DE102013002516B4 (de) Numerische Steuerung mit Bearbeitungskurvenerzeugungsfunktion
DE102012010408B4 (de) Numerische Steuervorrichtung mit einer Funktion zum Korrigieren des Bewegungswegs eines Maschinenprogramms
DE102013011684B4 (de) Numerische Steuervorrichtung, die eine Einfügeeinheit für Ecken mit mehreren Kurven umfasst
EP1963935B1 (de) Ermittlungsverfahren für eine lagegeführt abzufahrende grobbahn
DE102017005811B4 (de) Numerische Steuervorrichtung, die eine Zeitkonstante für ein Beschleunigungs-/Verzögerungsfilter dynamisch wechselt
DE69027402T2 (de) Verfahren und Vorrichtung zur Steuerung von Robotern und ähnlichem zum Gebrauch hierarchisch organisierter &#34;Bubble-Daten&#34;, die entlang einer Mittelachse angeordnet sind
DE102012009461A1 (de) Numerische Steuervorrichtung mit einer Maschinenzeitvorhersageeinheit und einer Maschinenfehlervorhersageeinheit
DE102016008994A1 (de) Werkzeugmaschine, simulationsvorrichtung und maschineneinlerngerät
DE19618332A1 (de) Numerische Steuervorrichtung mit Spline-Interpolationsfunktion
DE102012021045A1 (de) Numerische Steuervorrichtung zur Geschwindigkeitssteuerung gemäss einer Geschwindigkeitsbedingung eines angewiesenen Wegs
DE69202323T2 (de) Verfahren zur dreidimensionalen Bearbeitung.
DE102015120118B4 (de) Werkzeugmaschine mit einer Werkzeugwegkurvenerzeugungsvorrichtung
DE102015013582B4 (de) Numerische Steuervorrichtung
DE102017124477B4 (de) Werkzeugpfaderzeugungsvorrichtung, werkzeugpfaderzeugungsverfahren und werkzeugpfaderzeugungsprogramm
DE102017002373A1 (de) Numerische Steuerung mit Beschleunigungsfunktion für den Festzyklus
DE102018007773A1 (de) Numerisches Steuergerät
DE102016010370A1 (de) Numerische steuerung mit positionsbasierter steuerung von bearbeitungsbedingungen
DE112009004583T5 (de) Numerische Steuervorrichtung, Verfahren zum Steuern derselben und Systemprogramm dafür
DE112017004424T5 (de) Befehlswerterzeugungsvorrichtung
DE102016012634B4 (de) Numerische Steuerung mit krümmungs- und krümmungsänderungsabhängiger Geschwindigkeitssteuerung
DE3820566C2 (de) Verfahren zum Ermitteln einer Bewegungsbahn eines Bearbeitungswerkzeugs einer von einer numerischen Steuervorrichtung gesteuerten Werkzeugmaschine
DE102015001526B4 (de) Numerische Steuerung mit Befehlspfad-Komprimierungsfunktion
DE102014015278B4 (de) Bearbeitungskurven-Erzeugungsvorrichtung und dazu gehöriges Bearbeitungskurven-Erzeugungsverfahren
DE102015011363A1 (de) Numerische steuerungsvorrichtung
DE102016012042A1 (de) Numerische Steuerung mit Positionierung zur Vermeidung einer Kollision mit einem Werkstück

Legal Events

Date Code Title Description
R012 Request for examination validly filed

Effective date: 20131223

R016 Response to examination communication
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G05B0019410000

Ipc: G05B0019410300

R018 Grant decision by examination section/examining division
R020 Patent grant now final