Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR ADDITIVELY MANUFACTURING A WORKPIECE
Document Type and Number:
WIPO Patent Application WO/2023/102583
Kind Code:
A1
Abstract:
A method for additively manufacturing a workpiece on the basis of a model (1) having point data sets (5) with spatial coordinates of the vertices (3) of triangular facets (2) is described. In order to reduce the amount of time and effort required to determine the manufacturing contour on a manufacturing plane, according to the invention, at least the point index of a vertex (3) which, together with the base point and the edge point, forms a triangular facet (2) is added to the edge data set (7), whereupon an initial intersection point of a specified manufacturing plane (10) with an edge (8) running between the base point and the edge point of a selected edge data set (7) is determined and is stored, together with its spatial coordinates, as a contour data set (12) in a contour data store, whereupon in an iteration step an additional intersection point (13) between the specified manufacturing plane (10) and an intersected edge (8) spanned by the base point or by the edge point and by an additional vertex (3) of the selected edge data set (7) is determined and is stored, together with its spatial coordinates, as a contour data set (12) in the contour data store, the iteration step being repeated with the selected edge data set (7), the base point and edge point of which delimit the intersected edge (8), whereupon the contour data sets (12) stored in the contour data store are output as manufacturing contours (9).

Inventors:
AKIN MEHMET BUĞRA (AT)
Application Number:
PCT/AT2022/060421
Publication Date:
June 15, 2023
Filing Date:
November 30, 2022
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
AKIN MEHMET BUGRA (AT)
International Classes:
G06T17/20; B29C64/386; B33Y50/00
Foreign References:
CN109325316A2019-02-12
CN109159425A2019-01-08
CN110757804B2021-06-04
US20160221262A12016-08-04
CN110956699A2020-04-03
Other References:
ZHANG XIPENG ET AL: "A GPU-based parallel slicer for 3D printing", 2017 13TH IEEE CONFERENCE ON AUTOMATION SCIENCE AND ENGINEERING (CASE), IEEE, 20 August 2017 (2017-08-20), pages 55 - 60, XP033299216, DOI: 10.1109/COASE.2017.8256075
TAO ZHENG ET AL: "Design and realization of STL model slice algorithm based on dynamic adjacent edge", 2017 CHINESE AUTOMATION CONGRESS (CAC), IEEE, 20 October 2017 (2017-10-20), pages 4739 - 4743, XP033290204, DOI: 10.1109/CAC.2017.8243616
HUGUES HOPPE ED - ASSOCIATION FOR COMPUTING MACHINERY: "Optimization of mesh locality for transparent vertex caching", COMPUTER GRAPHICS PROCEEDINGS. SIGGRAPH 99; [COMPUTER GRAPHICS PROCEEDINGS. SIGGRAPH], ACM ? - NEW YORK, NY, USA, 1515 BROADWAY, 17TH FLOOR NEW YORK, NY 10036 USA, 1 July 1999 (1999-07-01), pages 269 - 276, XP058128801, ISBN: 978-0-201-48560-8, DOI: 10.1145/311535.311565
Attorney, Agent or Firm:
HÜBSCHER & PARTNER PATENTANWÄLTE GMBH (AT)
Download PDF:
Claims:
Patentansprüche

1 . Verfahren zur Bestimmung von Fertigungskonturen für die additive Fertigung eines Werkstücks anhand eines Punktdatensätze(5) mit Raumkoordinaten der Eckpunkte (3) von Dreiecksfacetten (2) aufweisenden Modells (1 ), wobei auf vorgegebenen Fertigungsebenen (10) Fertigungskonturen (9) bestimmt, die Punktdatensätze (5) mit einem fortlaufenden Punkteindex versehen und zusammen mit diesem von einer Recheneinheit in einem Punktspeicher abgelegt werden, wonach wiederholt aus den Punkteindices eines Basispunkts und eines benachbarten Kantenpunktes ein Kantendatensatz (7) erzeugt und in einem Kantenspeicher (9) abgelegt wird, dadurch gekennzeichnet, dass dem Kantendatensatz (7) wenigstens der Punkteindex eines Eckpunktes (3) hinzugefügt wird, der gemeinsam mit dem Basispunkt und dem Kantenpunkt eine Dreiecksfacette (2) bildet, wonach ein Initialschnittpunkt einer vorgegebenen Fertigungsebene (10) mit einer zwischen dem Basispunkt und dem Kantenpunkt eines ausgewählten Kantendatensatzes (7) verlaufenden Kante (8) bestimmt und gemeinsam mit seinen Raumkoordinaten als Konturdatensatz (12) in einem Konturdatenspeicher abgelegt wird, wonach in einem Iterationsschritt ein weiterer Schnittpunkt (13) zwischen der vorgegebenen Fertigungsebene (10) und einer vom Basispunkt oder vom Kantenpunkt und einem weiteren Eckpunkt (3) des ausgewählten Kantendatensatzes (7) aufgespannten geschnittenen Kante (8) bestimmt und gemeinsam mit seinen Raumkoordinaten als Konturdatensatz (12) im Konturdatenspeicher abgelegt wird, wobei der Iterationsschritt mit dem ausgewählten Kantendatensatz (7) wiederholt wird, dessen Basispunkt und Kantenpunkt die geschnittene Kante (8) begrenzen, wonach die im Konturdatenspeicher abgelegten Konturdatensätze (12) als Fertigungskonturen (9) ausgegeben werden.

2. Verfahren nach Anspruch 1 , dadurch gekennzeichnet, dass für jede Kante (8) genau ein Kantendatensatz (7) im Kantenspeicher abgelegt wird.

3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass der Basispunkt jedes Kantendatensatzes (7) einen höheren oder niedrigeren Punkteindex als der Kantenpunkt des jeweiligen Kantendatensatzes (7) aufweist.

4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass das Modell (1 ) Facettendatensätze (21 ) aufweist, die die Flächennormalen der Dreiecksfacetten (3) umfassen und dass den Kantendatensätzen (7) jeweils der Punkteindex eines bevorzugten Eckpunktes (3) hinzugefügt wird, der gemeinsam mit dem Basispunkt einen Basisvektor aufspannt, dessen Kreuzprodukt mit dem vom Basispunkt und dem Kantenpunkt aufgespannten Kantenvektor in oder gegen die Richtung der Flächennormale der durch Basisvektor und Kantenvektor begrenzten Dreiecksfacette (3) verläuft.

5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass den Kantendatensätzen (7) jeweils der Punkteindex jenes weiteren Eckpunktes (3) zusätzlich hinzugefügt wird, der gemeinsam mit dem Basispunkt einen Basisvektor aufspannt, dessen Kreuzprodukt mit dem vom Basispunkt und dem Kantenpunkt aufgespannten Kantenvektor gegen oder in die Richtung der Flächennormale der durch Basisvektor und Kantenvektor begrenzten Dreiecksfacette (3) verläuft.

6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass die Kantendatensätze (7) geschnittener Kanten (8) markiert werden und vor der Ausgabe der Fertigungskonturen (9) ein weiterer Initialschnittpunkt der vorgegebenen Fertigungsebene (10) mit einer zwischen dem Basispunkt und dem Kantenpunkt eines ausgewählten, nicht markierten Kantendatensatzes (7) verlaufenden Kante (8) bestimmt und gemeinsam mit seinen Raumkoordinaten als Konturdatensatz (12) im Konturdatenspeicher abgelegt wird, wonach der Iterationsschritt mit dem ausgewählten, nicht markierten Kantendatensatz (7) durchgeführt wird.

7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass zur Fertigungsebene (10) parallele Schichten vorgegeben werden und jeder Kantendatensatz (7) der Schicht zugeordnet wird, in die die Raumkoordinaten 15 seines Basis- und seines Kantenpunktes fallen, wonach für die Bestimmung des Initialschnittpunktes nur die Kantendatensätze (7) jener Schicht berücksichtigt werden, in der die Fertigungsebene (10) verläuft.

8. Verfahren nach einem der vorangegangenen Ansprüche, dadurch gekennzeichnet, dass für jede Fertigungsebene (10) ein additives Fertigungswerkzeug anhand der Fertigungskonturen (9) angesteuert wird.

9. Datenstruktur zur Durchführung des Verfahrens nach einem der vorangegangenen Ansprüche, gekennzeichnet durch einen Kantenspeicherbereich (20), der mehrere Kantendatensätze (7) umfasst, die den Punkteindex eines Basispunktes, den Punkteindex eines Kantenpunktes sowie den Punkteindex des bevorzugten Eckpunkts (3) aufweisen, der gemeinsam mit dem Basispunkt und dem Kantenpunkt eine Dreiecksfacette (2) bildet.

10. Datenstruktur nach Anspruch 9, dadurch gekennzeichnet, dass die Kantendatensätze (7) je einen weiteren Eckpunkt (3) aufweisen, der gemeinsam mit dem Basispunkt und dem Kantenpunkt eine weitere Dreiecksfacette (2) bildet.

Description:
Verfahren zur additiven Fertigung eines Werkstücks

Technisches Gebiet

Die Erfindung bezieht sich auf ein Verfahren zur Bestimmung von Fertigungskonturen für die additive Fertigung eines Werkstücks anhand eines Punktdatensätze mit Raumkoordinaten der Eckpunkte von Dreiecksfacetten aufweisenden Modells, wobei auf vorgegebenen Fertigungsebenen Fertigungskonturen bestimmt werden, wobei die Punktdatensätze mit einem fortlaufenden Punkteindex versehen und zusammen mit diesem von einer Recheneinheit in einem Punktspeicher abgelegt und anschließend wiederholt aus den Punkteindices eines Basispunkts und eines benachbarten Kantenpunktes ein Kantendatensatz erzeugt und in einem Kantenspeicher abgelegt wird.

Stand der Technik

Aus dem Stand der Technik sind Verfahren bekannt, bei dem ein Gegenstand durch ein Dreiecksfacetten aufweisendes Modell repräsentiert wird und dieses Modell parallel zur z-Achse geschnitten wird (CN110956699A). Dabei wird eine STL-Datei des Modells eingelesen und daraus ein Punktdatensatz und ein Kantendatensatz gebildet, die sich mit einem Grafikprozessor (GPU) verarbeiten lassen. Es werden Fertigungsschichten bestimmt, die durch je zwei Ebenen parallel zur z-Achse definiert werden und anschließend anhand der z-Koordinaten einer Kante bestimmt, von welcher Fertigungsebene diese geschnitten wird. Danach wird die Dreiecksfacette bestimmt, die von dieser Kante begrenzt wird, eingelesen und mittels einer Hash-Tabelle diejenigen Kanten gesucht, die dieselbe Dreiecksfacette begrenzen. Nachdem jeder Fertigungsebene ihre Kanten zugeordnet wurden, wird die Fertigungsebene mit den Kanten geschnitten und die Schnittpunkte, die die Fertigungskonturen begrenzen, bestimmt. Nachteilig am Stand der Technik ist allerdings, dass mehrere, das Verfahren verlangsamende Schritte zwingend notwendig sind: Erst müssen den Kanten sukzessive die Fertigungsebenen zugewiesen werden, sodass erst dann alle Schnittpunkte auf einer Fertigungsebene eindeutig bestimmbar sind, wenn allen Kanten eine Fertigungsebene zugewiesen wurde. Weiters muss mit der Hash- Tabelle und den Dreiecksfacetten eine weitere Datenstruktur und eine zusätzliche Information zur räumlichen Zuordnung einer Kante zu einer Fertigungsebene verarbeitet werden und darüber hinaus müssen Daten zwischen der CPU und der GPU transferiert werden.

Darstellung der Erfindung

Der Erfindung liegt somit die Aufgabe zugrunde, den Zeit- und Arbeitsaufwand zur Bestimmung der Fertigungskontur auf einer Fertigungsebene zu reduzieren, sodass die Bestimmung weiterer Fertigungskonturen parallel zum additiven Verfahren erfolgen kann.

Die Erfindung löst die gestellte Aufgabe dadurch, dass dem Kantendatensatz wenigstens der Punkteindex eines Eckpunktes hinzugefügt wird, der gemeinsam mit dem Basispunkt und dem Kantenpunkt eine Dreiecksfacette bildet, wonach ein Initialschnittpunkt einer vorgegebenen Fertigungsebene mit einer zwischen dem Basispunkt und dem Kantenpunkt eines ausgewählten Kantendatensatzes verlaufenden Kante bestimmt und gemeinsam mit seinen Raumkoordinaten als Konturdatensatz in einem Konturdatenspeicher abgelegt wird, wonach in einem Iterationsschritt ein weiterer Schnittpunkt zwischen der vorgegebenen Fertigungsebene und einer vom Basispunkt oder vom Kantenpunkt und einem weiteren Eckpunkt des ausgewählten Kantendatensatzes aufgespannten geschnittenen Kante bestimmt und gemeinsam mit seinen Raumkoordinaten als Konturdatensatz im Konturdatenspeicher abgelegt wird, wobei der Iterationsschritt mit dem ausgewählten Kantendatensatz wiederholt wird, dessen Basispunkt und Kantenpunkt die geschnittene Kante begrenzen, wonach die im Konturdatenspeicher abgelegten Konturdatensätze als Fertigungskonturen ausgegeben werden. Nach dem Setzen des Initialschnittpunkts kann der Arbeitsaufwand zum Bestimmen des nächsten Schnittpunktes erheblich reduziert werden, da nicht mehr alle Kanten zwischen allen benachbarten Eckpunkten gebildet und auf einen eventuellen Schnittpunkt mit der Fertigungsebene überprüft werden müssen, sondern nur diejenigen Kanten, die einen gemeinsamen Eckpunkt mit der soeben geschnittenen Kante aufweisen. Dies wird dadurch ermöglicht, dass für je zwei benachbarte Eckpunkte ein Kantendatensatz angelegt wird, in dem neben den beiden benachbarten, die Kante begrenzenden Eckpunkte auch wenigstens einer der beiden Eckpunkte abgelegt wird, mit dem die die Kante begrenzenden Eckpunkte eine Dreiecksfacette bilden. Da höchstens zwei Dreiecksfacetten eine gemeinsame Kante aufweisen können, müssen also höchstens vier Kanten auf einen Schnittpunkt überprüft werden. Zufolge dieser Maßnahmen müssen nur beim Bilden des Initialschnittpunkts eine große Anzahl an Kanten überprüft werden, da sich die anschließend zu überprüfenden Kanten unmittelbar aus dem Kantendatensatz der geschnittenen Kante ergeben. Der Zugriff auf die Eckpunkte erfolgt immer über ihre Punkteindices, über die auf die Raumkoordinaten im Punktspeicher zugegriffen werden kann. Dadurch können die Kantendatensätze vollständig über die Punkteindices der enthaltenen Eckpunkte beschrieben werden. Überprüfen bedeutet im erfindungsgemäßen Sinne, dass aus den Punkteindices zweier benachbarter Eckpunkte die Raumkoordinaten dieser Eckpunkte aus dem Punktespeicher ausgelesen werden und anschließend aus diesen vektoriell die Kante bestimmt wird, die der von diesen Punkten begrenzte Strecke entspricht. Anschließend wird überprüft, ob diese Strecke einen Schnittpunkt mit der Fertigungsebene, deren Ebenengleichung bekannt ist, aufweist. Dieser Schnittpunkt wird mit seinen Raumkoordinaten im Konturdatensatz abgespeichert. Es können nun solange Schnittpunkte bestimmt werden, bis der Initialschnittpunkt wieder gefunden wurde, da so zwischen den Schnittpunkten eine geschlossene Fertigungskontur gebildet werden kann.

Um den Zeit- und Speicheraufwand durch das Vermeiden redundanter Kantendatensätze zu reduzieren, kann für jede Kante genau ein Kantendatensatz im Kantenspeicher abgelegt werden. Da jede Kante durch einen Basispunkt und einen Kantenpunkt begrenzt wird, kann für dieselbe Kante über eine Permutation ein zweiter Kantendatensatz gebildet werden, indem der Basispunkt mit dem Kantenpunkt ausgetauscht wird und vice versa. Zur Durchführung des Verfahrens wird pro Kante aber nur ein Kantendatensatz benötigt, sodass der zweite Kantendatensatz nicht im Kantenspeicher abgelegt wird, wodurch das Verfahren beschleunigt werden kann. Dies kann beispielsweise dadurch geschehen, indem der Basispunkt X an erster Stelle im Kantendatensatz abgelegt wird und der Kantenpunkt Y an zweiter Stelle, womit die beiden Eckpunkte als XY im Kantendatensatz abgelegt werden. Jedes Mal, wenn ein neuer Kantendatensatz gebildet wird, kann überprüft werden, ob es sich bei dem neuen Kantendatensatz um eine Permutation eines alten Datensatzes, in diesem Beispiel also YX, handelt. Sollte dies der Fall sein, wird der neue Kantendatensatz nicht im Kantenspeicher abgelegt.

Alternativ oder zusätzlich kann der Ressourcenaufwand des Verfahrens weiter reduziert werden, wenn der Basispunkt jedes Kantendatensatzes einen höheren oder niedrigeren Punkteindex als der Kantenpunkt des jeweiligen Kantendatensatzes aufweist.. Da jede Kante prinzipiell mit zwei Kantendatensätzen beschrieben werden kann, wird zufolge dieser Maßnahmen ein eindeutiger Kantendatensatz, bei dem der Basispunkt des Kantendatensatzes einen höheren oder niedrigeren Punkteindex als der Kantenpunkt des Kantendatensatzes aufweist, für jede Kante definiert. Wichtig ist in beiden Fällen, dass diese Zuweisung für alle Kantendatensätze einheitlich erfolgt. Diese Maßnahme erleichtert nicht nur die Sicherstellung eindeutiger Kanten, sondern gibt für die einzelnen Kanten auch eine definierte Richtung vor, nämlich vom Basispunkt zum Kantenpunkt oder umgekehrt. Dadurch ist die Kante nicht nur als Strecke, sondern auch als Vektor beschrieben.

Um nach der Bestimmung des Initialschnittpunkts die Anzahl der zu überprüfenden Kanten zu halbieren, wird vorgeschlagen, dass das Modell Facettendatensätze aufweist, die die Flächennormalen der Dreiecksfacetten umfassen und dass den Kantendatensätzen jeweils der Punkteindex eines bevorzugten Eckpunktes hinzugefügt wird, der gemeinsam mit dem Basispunkt einen Basisvektor aufspannt, dessen Kreuzprodukt mit dem vom Basispunkt und dem Kantenpunkt aufgespannten Kantenvektor in oder gegen die Richtung der Flächennormale der durch Basisvektor und Kantenvektor begrenzten Dreiecksfacette verläuft. Zufolge dieser Maßnahmen kann unabhängig von der Lage des Modells zu der Fertigungsebene eine Laufrichtung definiert werden, vorausgesetzt, dass die Flächennormalen der Dreiecksfacetten auf die gleiche Seite der von ihnen definierten Oberfläche weisen. Dem Kantendatensatz wird demnach an einer vorgegebenen Speicherposition der bevorzugte Eckpunkt im Kantenspeicher hinzugefügt, der einen Basisvektor begrenzt, dessen Kreuzprodukt mit dem Kantenvektor des Kantendatensatzes in oder gegen die Richtung der Flächennormale der durch Basisvektor und Kantenvektor begrenzten Dreiecksfacette verläuft. Somit werden in weiterer Folge nur die beiden weiteren Kanten der mit dem bevorzugten Eckpunkt gebildeten Dreiecksfacette auf Schnittpunkte überprüft. Dabei spielt es keine Rolle, ob das mit dem bevorzugten Eckpunkt gebildete Kreuzprodukt in oder gegen die Richtung der Flächennormale der durch Basisvektor und Kantenvektor begrenzten Dreiecksfacette verläuft, solange diese Richtungszuweisung für alle Kantendatensätze einheitlich ist.

Die Flächennormalen der Dreiecksfacetten sind oft vordefiniert, wodurch sich die Laufrichtung, in der ausgehend vom In italschnittpunkt weitere Schnittpunkte gebildet werden, vorgegeben sein kann. Um daher insbesondere bei vordefinierten Flächennormalen der Dreiecksfacetten die Laufrichtung auswählen zu können, wird vorgeschlagen, dass , den Kantendatensätzen jeweils der Punkteindex jenes weiteren Eckpunktes zusätzlich hinzugefügt wird, der gemeinsam mit dem Basispunkt einen Basisvektor aufspannt, dessen Kreuzprodukt mit dem vom Basispunkt und dem Kantenpunkt aufgespannten Kantenvektor gegen oder in die Richtung der Flächennormale der durch Basisvektor und Kantenvektor begrenzten Dreiecksfacette verläuft. Dem Kantendatensatz wird also zusätzlich zum bevorzugten Eckpunkt der von diesem abweichende weitere Eckpunkt, mit dem eine weitere Dreiecksfacette gebildet werden kann, an einer vorgegebenen Speicherposition hinzugefügt. Durch den gegensätzlichen Verlauf des mit diesem weiteren Eckpunkt gebildeten Kreuzprodukts zur Flächennormale der Dreiecksfacette verläuft die Suche nach den Schnittpunkten entgegen der vorigen Laufrichtung. Die Vorgabe der Laufrichtung kann entweder über den Benutzer oder in einem optionalen, automatisierten Verfahrensschritt vorgegeben werden. Dadurch können beispielsweise vom Initialschnittpunkt ausgehend die Schnittpunkte mit den Kanten jener Dreiecksfacetten überprüft werden, die mit dem weiteren Eckpunkt gebildet werden und diese Schnittpunkte ebenfalls im Konturdatenspeicher abgelegt werden. Darüber hinaus hat das Vorsehen des bevorzugten Eckpunktes und des weiteren Eckpunktes in den Kantendatensätzen den Vorteil, dass die Laufrichtung der Fertigungskonturen auch innerhalb einer Fertigungsebene unterschiedlich gewählt werden können. Somit kann beispielsweise die Laufrichtung einer Außenkontur entgegengesetzt zur Laufrichtung einer Innenkontur abgebildet werden.

Für ein gegebenes Modell kann sich auf einer Fertigungsebene mehr als eine Fertigungskontur ergeben. Weitere Fertigungskonturen können bestimmt werden, indem die Kantendatensätze geschnittener Kanten markiert werden und vor der Ausgabe der Fertigungskonturen ein weiterer Initialschnittpunkt der vorgegebenen Fertigungsebene mit einer zwischen dem Basispunkt und dem Kantenpunkt eines ausgewählten, nicht markierten Kantendatensatzes verlaufenden Kante bestimmt und gemeinsam mit seinen Raumkoordinaten als Konturdatensatz im Konturdatenspeicher abgelegt wird, wonach der Iterationsschritt mit dem ausgewählten, nicht markierten Kantendatensatz durchgeführt wird. Zufolge dieser Maßnahmen müssen sowohl zur Bestimmung eines weiteren Initialschnittpunktes als auch zur Bestimmung weiterer Schnittpunkte nur diejenigen Kanten überprüft werden, die noch nicht markiert sind, also noch keine Schnittpunkte aufweisen, wodurch die Bestimmung der Schnittpunkte für diese weiteren Konturen beschleunigt wird. Auch hier kann die Bestimmung der Schnittpunkte solange erfolgen, bis wieder der (weitere) Initialschnittpunkt gefunden wurde... Die Markierung der Kantendatensätze kann über einen weiteren Markierungsdatensatz erfolgen, in dem jeder Fertigungsebene ihre markierten Kantendatensätze zugewiesen sind.

Das Bestimmen des Initialschnittpunktes ist verglichen mit der Bestimmung der restlichen Schnittpunkte ressourcenaufwändig, da eine Vielzahl an Kanten untersucht werden muss. Die Anzahl der dazu zu überprüfenden Kanten und damit der Ressourcenaufwand kann reduziert werden, indem zur Fertigungsebene parallele Schichten vorgegeben werden und jeder Kantendatensatz der Schicht zugeordnet wird, in die die Raumkoordinaten seines Basis- und seines Kantenpunktes fallen, wonach für die Bestimmung des Initialschnittpunktes nur die Kantendatensätze jener Schicht berücksichtigt werden, in der die Fertigungsebene verläuft. Erfindungsgemäß werden also die Kanten vorselektiert und anschließend auf Schnittpunkte überprüft, die in derselben Schicht wie die Fertigungsebene liegen. Da auch Kantendatensätze existieren können, deren Basispunkt und Kantenpunkt in verschiedenen Schichten liegen und demzufolge nicht einer Schicht zugeordnet werden können, kann eine Zusatzschicht vorgesehen sein, der diese Kantendatensätze zugeordnet werden. Zur Bestimmung eines Initialschnittpunkts genügt es bereits, wenn nur ein Kantendatensatz einer Schicht zugeordnet wird, da die anschließende Bestimmung weiterer Schnittpunkte ohnehin über einen weiteren Eckpunkt im Kantendatensatz erfolgt. Die anschließende Zuordnung weiterer Kantendatensätze zu ihren jeweiligen Fertigungsebenen kann dann parallel zum Bestimmen der Schnittpunkte ausgehend vom bereits gefundenen Initialschnittpunkt erfolgen. In einer bevorzugten Ausführungsform werden aber bereits in einem

Vorverarbeitungsschritt alle Kantendatensätze einer Schicht zugeordnet, bevor die Initialschnittpunkte für die einzelnen Fertigungsebenen vorzugsweise parallel bestimmt werden. Sollte kein einziger Kantendatensatz einer Schicht zugeordnet werden können, kann in einem optionalen Verfahrensschritt die Schichtdicke solange erhöht werden, bis Basis- und Kantenpunkt zumindest eines Kantendatensatzes in die Schicht fallen und so der Kantendatensatz zugeordnet werden kann. Die Zuordnung eines Kantendatensatzes zu einer Schicht kann über einen weiteren Eintrag im Kantendatensatz selbst erfolgen. Alternativ oder ergänzend kann ein Schichtdatensatz erstellt werden, in dem die Kanten der jeweiligen Schicht vermerkt sind.

Die Erfindung bezieht sich auch auf ein Verfahren bei dem für jede Fertigungsebene ein additives Fertigungswerkzeug anhand der Fertigungskonturen angesteuert wird. Die Konturdatensätze können an eine Recheneinheit, die ein additives Fertigungswerkzeug, wie beispielsweise einen 3D-Drucker, ansteuert, übermittelt werden. Da die Konturdatensätze den Verlauf der Fertigungskontur bestimmen, kann der Druckkopf des Fertigungswerkzeugs so angesteuert werden, dass sein Verfahrweg innerhalb der Fertigungskontur verläuft. Zwar kann das erfindungsgemäße Bestimmen der Fertigungskonturen für mehrere Ebenen einfachparallelisiert durchgeführt werden, alternativ oder zusätzlich können jedoch erst nach Bestimmung der Fertigungskonturen einer ersten Fertigungsebene die Fertigungskonturen einer darauffolgenden Ebene bestimmt werden. Dadurch kann der Druckkopf die Fertigungskonturen der ersten Fertigungsebene bereits fertigen, während zeitgleich dazu der Konturdatensatz für die Fertigungskontur der darauffolgenden und/oder der weiteren Ebenen bestimmt werden kann. Umfasst der Konturdatenspeicher mehr als eine Fertigungskontur pro Fertigungsebene, so kann bei ineinander liegenden Fertigungskonturen der Verfahrweg des Druckkopfs zwischen den beiden Fertigungskonturen verlaufen.

Weiters bezieht sich die Erfindung auf eine Datenstruktur zur Durchführung des Verfahrens mit einem Kantenspeicherbereich, der mehrere Kantendatensätze umfasst, die den Punkteindex eines Basispunktes, den Punkteindex eines Kantenpunktes sowie den Punkteindex des bevorzugten Eckpunkts aufweist, der gemeinsam mit dem Basispunkt und dem Kantenpunkt eine Dreiecksfacette bildet. Erfindungsgemäß müssen die Kantendatensätze nur die Punkteindices aller Punkte umfassen, während die Raumkoordinaten in einem weiteren, Punktdatensätze aufweisenden Punktspeicherbereich der Datenstruktur abgespeichert sein können. Über die Punkteindices können die Raumkoordinaten der entsprechenden Punkte im Punktspeicherbereich abgerufen werden. Der Kantendatensatz kann weitere Einträge, wie beispielsweise den weiteren Eckpunkt, einen Kantenindex und/oder einen Schichtindex umfassen. In einer bevorzugten Ausführungsform kann der Kantendatensatz in mehrere Bereiche unterteilt werden, sodass die funktionale Zuweisung der Eckpunkte über den Speicherort ihrer Indices bestimmt wird. So kann beispielsweise der Basispunkt in einem ersten Bereich, der Kantenpunkt in einem zweiten Bereich, der bevorzugte Eckpunkt in einem dritten Bereich, der weitere Eckpunkt in einem vierten Bereich, usw. abgespeichert sein. Ein weiterer Vorteil der Datenstruktur liegt darin, dass nach der Erstellung der Kantendatensätze diesen aufgrund der Basis-, Kanten und Eckpunkte zusätzlich bereits die Lage der Dreiecksfacetten des Modells entnommen werden kann, sodass die Dreiecksfacetten nicht mehr gesondert abgelegt werden müssen, womit der Speicherbedarf für die Datenstruktur deutlich reduziert werden kann.

Kurze Beschreibung der Erfindung

In der Zeichnung ist der Erfindungsgegenstand beispielsweise dargestellt. Es zeigen

Fig. 1 ein schematisches Ablaufdiagramm eines erfindungsgemäßen Verfahrens, Fig. 2 eine Darstellung eines Dreiecksfacetten aufweisenden Modells mit einer Fertigungsebene,

Fig. 3 ein eine Fertigungskontur zeigender Schnitt entlang der Linie II - II der Fig. 2 ,

Fig. 4 eine erfindungsgemäße Datenstruktur mit einem Speicherbereich für Punktdatensätze, einem Speicherbereich für Facettendatensätze und einem Speicherbereich für Kantendatensätze und

Fig. 5 eine Darstellung des Konturdatenspeichers.

Wege zur Ausführung der Erfindung

Bei einem erfindungsgemäßen Verfahren zur additiven Fertigung eines Werkstücks wird ein Modell 1 durch Dreiecksfacetten 2 beschrieben. Diese Dreiecksfacetten 2 werden je von drei Eckpunkten 3 begrenzt. In einem ersten Schritt 4 werden Punktdatensätze 5, die die Raumkoordinaten der Eckpunkte 3 umfassen, im Punktspeicher abgelegt und mit fortlaufenden Punkteindices versehen. Anschließend werden in einem Schritt 6 Kantendatensätze 7 angelegt und in einem Kantenspeicher, indem ein Eckpunkt 3 als Basispunkt und ein diesem benachbarter Eckpunkt 3 als Kantenpunkt definiert wird, wobei Basispunkt und Kantenpunkt je eine Kante 8 begrenzen und die Punkteindices des Basispunktes und des Kantenpunktes dem Kantendatensatz 7 hinzugefügt werden. Diesen Kantendatensätzen 7 werden in der gezeigten bevorzugten Ausführungsform ebenfalls in Schritt 6 die Punkteindices der dieser Kante 8 benachbarten dritten und vierten Eckpunkte 3 hinzugefügt mit denen ausgehend von dieser Kante 8 zwei Dreiecksfacetten 2 gebildet werden können. Es versteht sich dabei von selbst, dass je nach Kantendatensatz 7 derselbe Eckpunkt 3 Basispunkt, Kantenpunkt oder einer der mit dem Basis- und dem Eckpunkt eine Dreiecksfacette 2 begrenzender Eckpunkt sein kann.

Die Fig. 1 zeigt den schematischen Ablauf des Verfahrens: Um eine Fertigungskontur 9 zu bestimmen, wird das Modell 1 mit einer Fertigungsebene 10 geschnitten. Dabei wird in einem Schritt 1 1 zuerst algebraisch ein erster Initialschnittpunkt der Fertigungsebene 10 mit einer Kante 8 des Modells 1 bestimmt, der Kantendatensatz 7 dieser Kante 8 ausgewählt und der Initialschnittpunkt zusammen mit seinen Raumkoordinaten als Konturdatensatz 12 in einem Konturdatenspeicher abgelegt.

Nun werden ausgehend von diesem Initialschnittpunkt die weiteren Schnittpunkte 13 des Modells 1 mit der Fertigungsebene 10 bestimmt. Ausgehend von der geschnittenen Kante 8 des ausgewählten Kantendatensatzes 7 muss der nächste Schnittpunkt 13 auf einer der vier benachbarten Kanten 8 liegen. Diese vier benachbarten Kanten 8 werden alle durch Eckpunkte 3, deren Punkteindices im ausgewählten Kantendatensatz 7 abgelegt sind, begrenzt. Dabei handelt es sich um die vier Kanten 8, die vom Basispunkt oder dem Kantenpunkt und vom dritten oder vierten Eckpunkt 3 des ausgewählten Kantendatensatzes 8 begrenzt werden. In einem nicht gezeigten optionalen Verfahrensschritt kann die Laufrichtung bestimmt werden, in der die weiteren Schnittpunkte 13 bestimmt werden. In einem Schritt 14 wird also bestimmt, mit welchem dieser von den Eckpunkten 3 des ausgewählten Kantendatensatzes 7 begrenzten Kanten 8 die Fertigungsebene 10 einen Schnittpunkt 13 aufweist und dessen Raumkoordinaten algebraisch bestimmt. Im folgenden Schritt 15 wird überprüft, ob es sich bei dem soeben bestimmten Schnittpunkt 13 um den Initialschnittpunkt handelt. Ist dies der Fall, liegt eine geschlossene Kontur vor und die Iterationsschleife wird verlassen. Ist der ermittelte Schnittpunkt 13 nicht der Initialschnittpunkt, werden die Raumkoordinaten dieses Schnittpunktes 13 in Schritt 16 als Konturdatensatz 12 dem Konturdatenspeicher hinzugefügt. Im darauffolgenden Schritt 17 wird der Kantendatensatz 7 der Kante 8 ausgewählt, die den in Schritt 14 bestimmten Schnittpunkt 13 aufweist und der nächste Schnittpunkt kann bei einem Neudurchlauf des Schritts 14 bestimmt werden. Wird die Iterationsschleife verlassen, werden die im Konturdatenspeicher abgelegten Konturdatensätze 12 in einem Schritt 18 ausgegeben, woraufhin die Fertigungskontur 9 aus den Konturdatensätzen 12 gebildet und von einem additiven Fertigungswerkzeug weiterverarbeitet werden kann.

In Fig. 4 ist eine Datenstruktur zur Durchführung des Verfahrens beispielsweise dargestellt. Solche Datenstrukturen umfassen Punktspeicherbereiche 19, in denen die Punktdatensätze 5 abgelegt werden. In der gezeigten Datenstruktur entspricht jede Zeile einem Punkdatensatz 5, wobei spezifische Informationen betreffend der Eckpunkte 3 durch den Speicherort bestimmt werden. So kann beispielsweise der Punkteindex des Eckpunkts 3 in der ersten Spalte und seine x-, y- und z- Koordinate in der zweiten, dritten, bzw. vierten Spalte abgespeichert sein. In einer weiteren, nicht gezeigten Ausführungsform wird der Punkteindex des Eckpunkts 3 nicht in einer eigenen Spalte abgelegt, sondern ergibt sich aus der Speicherreihenfolge der Punktdatensätze im Punktspeicherbereich 19. So hätte beispielsweise der Punktdatensatz, der in der dritten Zeile abgelegt wird, automatisch den Punkteindex 3. Die Datenstruktur umfasst ferner einen Kantenspeicherbereich 20, in dem die Kantendatensätze 7 abgelegt sind. In der gezeigten Datenstruktur entspricht jede Zeile einem Kantendatensatz 7. Wie bereits erwähnt, umfassen die Kantendatensätze 7 keine Raumkoordinaten von Eckpunkten 3, sondern nur deren Punkteindices. Die Raumkoordinaten eines Eckpunktes 3 können über seinen Punkteindex aus dem Punktspeicherbereich 19 in der Datenstruktur abgerufen werden. Hier kann die funktionale Zuweisung der Eckpunkte 3 über den Speicherort ihrer Indices bestimmt werden. So kann beispielsweise der Basispunkt in der ersten Spalte des Kantenspeicherbereichs 20, der Kantenpunkt in der zweiten Spalte, der bevorzugte Eckpunkt in der dritten Spalte, der weitere Eckpunkt der vierten Spalte, usw. abgelegt sein. Im gezeigten Ausführungsbeispiel kann in der fünften Spalte ein Kantenindex und in der sechsten Spalte eine Zuweisung zu einer Schicht abgelegt sein. Um die Kantendatensätze 7 zu bilden und zu speichern, können Facettendatensätze 21 in der Datenstruktur in einem Facettenspeicherbereichen 22 abgelegt sein. Die Facettendatensätze 21 umfassen dabei die Punkteindices derjenigen drei Eckpunkte 3, die eine Dreiecksfacette 2 begrenzen. Hier kann über die Reihung der Punkteindices eines Facettendatensatzes 21 in der Zeile definiert werden, auf welche Seite die Flächennormale der Dreiecksfacette 2 weist.

Die Fig. 5 zeigt eine Darstellung des Konturdatenspeichers, in dem Konturdatensätze 12 abgelegt werden können. Auch hier kann analog zu oben in der ersten Spalte ein dem Konturdatensatz 12 zugewiesener Index, in der zweiten bis vierten Spalte die x-, y- und z-Koordinaten und in der fünften Spalte ein weiterer Index zur Zuweisung zu einer Fertigungsebene abgespeichert werden.