-
Die Erfindung betrifft den Bereich der additiven Fertigungsverfahren. Genauer betrifft die Erfindung das Erstellen von Steuerungsdaten für eine Schichtaufbauvorrichtung.
-
Schichtaufbauverfahren dienen zur Herstellung von dreidimensionalen Objekten aus schichtweise aufgebrachtem, verfestigbarem Material, wie Harz, Kunststoff, Metall oder Keramik und werden beispielsweise zur Fertigung von technischen Prototypen verwendet. Anlagen, mit denen ein solches Schichtbauverfahren durchgeführt wird, werden auch als Rapid Prototyping-Systeme bezeichnet. Bei einem derartigen additiven Fertigungsverfahren werden computergesteuert dünne, individuell gestaltete Schichten eines Aufbaumaterials sukzessive übereinander aufgetragen. Verschiedene auf dem Prinzip des Schichtaufbaus beruhende additive Fertigungsverfahren und Vorrichtungen zu deren Durchführung sind aus dem Stand der Technik bekannt, so beispielsweise Stereolithographie, selektives Laserschmelzen, selektives Maskensintern, Fused Deposition Moulding, Polyjet, 3D-Druck usw.
-
Im Bereich der Medizintechnik werden bei einer speziellen Technik des 3D-Druckes, dem sogenannten Tissue Engineering, mit einem sogenannten Biodrucker regelmäßige Strukturen (sogenannte Bioarrays) aus organischem Material hergestellt. Solche Biodrucker arbeiten beispielsweise dergestalt, daß schichtweise organisches Material auf einen Objektträger aufgebracht wird, z.B. in Form einer musterbildenden Anordnung von Tröpfchen. Zum Aufbringen von organischen Substanzen muß der Druckkopf des Biodruckers entlang von Druckpfaden bewegt werden. Geeignete Steuerungsdaten zur Ansteuerung des Biodruckers müssen zuvor erstellt werden.
-
Bei den genannten Bioarrays handelt es sich um sehr kleine Strukturen im Mikrometerbereich, die - je nach medizinischem Anwendungsfall - unterschiedliche Pfadfiguren umfassen. So können beispielsweise in eine erste Richtung verlaufende, parallel zueinander angeordnete erste Pfade vorgesehen sein und außerdem senkrecht dazu in eine zweite Richtung verlaufende, parallel zueinander verlaufende zweite Pfade. Das sich hierdurch ergebende Muster ist aus medizinischer Anwendersicht im Idealfall frei wählbar bzw. benutzerdefinierbar. Da beim Erzeugen von Gewebe typischerweise eine sehr große Anzahl dieser Bioarrays (Muster) gedruckt werden, ist das Erstellen entsprechender Steuerungsdaten vergleichsweise zeitaufwendig.
-
Eine Aufgabe der vorliegenden Erfindung ist es, möglichst schnell und einfach Steuerungsdaten für eine Schichtaufbauvorrichtung zu erstellen bzw. ein Schichtaufbauverfahren, das solche Steuerungsdaten verwendet, zu ermöglichen.
-
Diese Aufgabe wird durch ein Verfahren zum Erstellen von Steuerungsdaten für eine Schichtaufbauvorrichtung nach Anspruch 1 bzw. durch eine Vorrichtung zur Durchführung dieses Verfahrens, durch ein Computerprogramm bzw. durch entsprechende Steuerungsdaten, ein entsprechendes Schichtaufbauverfahren bzw. eine entsprechende Schichtaufbauvorrichtung bzw. durch ein Verfahren zur Umrüstung einer Schichtaufbauvorrichtung gelöst. Vorteilhafte Ausführungen der Erfindung sind in den Unteransprüchen angegeben.
-
Die im Folgenden im Zusammenhang mit dem Verfahren zum Erstellen von Steuerungsdaten erläuterten Vorteile und Ausgestaltungen gelten sinngemäß auch für die Gegenstände der nebengeordneten Ansprüche und umgekehrt.
-
Die Erfindung schlägt ein Verfahren zum Erstellen von Steuerungsdaten für eine Schichtaufbauvorrichtung zur Durchführung eines Schichtaufbauverfahrens vor, bei welchem Schichtaufbauverfahren ein dreidimensionales Objekt aus übereinander liegenden Aufbauschichten aufgebaut wird, wobei der Umriß jeder dieser Aufbauschichten durch ein Polygon charakterisiert ist. Dieses Verfahren zeichnet sich dadurch aus, daß für jede Aufbauschicht das Innere des Polygons mit einem regelmäßigen, frei wählbaren Muster ausgefüllt wird, wobei das Muster eine Anzahl von Pfaden des Schichtaufbauverfahrens umfaßt.
-
Beim Ausfüllen des Inneren des Polygons geht es um das Abbilden eines regelmäßigen Musters auf ein Polygon, genauer gesagt das Übertragen eines Oberflächenmusters in das Innere eines Polygons. Die Polygonfläche wird dabei mit Figuren ausgelegt, nach Art einer sogenannten „Parkettierung“. Damit ist die lückenlose und überlappungsfreie Überdeckung der Polygonfläche durch gleichförmige Teilflächen („Muster“) gemeint. Es handelt sich dabei um ein regelmäßiges Muster, also ein Muster, das regelmäßig auftritt, sich also mit geometrischer Regelmäßigkeit wiederholt. Es ist dabei nicht zwingend notwendig, daß das Muster auch „kachelbar“ ist. Jedoch ist dieser Sonderfall, bei dem sich das Muster beliebig oft nahtlos an sich selbst anfügen läßt, ohne das Übergänge erkennbar sind, nicht ausgeschlossen. Eine besonders einfache und für die vorliegende Erfindung vorteilhafte Parkettierung erhält man, wenn man regelmäßige Vielecke, z.B. Quadrate, aneinanderlegt. Mit anderen Worten sind die Pfadfiguren in quadratischen Mustern enthalten, mit denen das Polygoninnere ausgefüllt wird.
-
Jedes einzelne Muster der Parkettierung umfaßt eine Anzahl von Pfaden des Schichtaufbauverfahrens. Dabei handelt es sich insbesondere um Druckpfade für ein 3D-Druckverfahren. Unter einem solchen Pfad, insbesondere Druckpfad, wird vorzugsweise eine gradlinige Bewegung einer Komponente der Schichtaufbauvorrichtung verstanden, insbesondere eine gradlinige Bewegung des Druckkopfes, der Düse, des Extruders oder dergleichen oder aber eine gradlinige Bewegung einer Strahlungsquelle bzw. eines gelenkten Laserstrahls. Mit anderen Worten wird das Muster durch die Pfade definiert. Vorzugsweise besteht das Muster ausschließlich aus solchen Pfaden.
-
Dabei kann ein Muster Pfade unterschiedlicher Art umfassen. Beispielsweise kann ein Muster Pfade erster und zweiter Art umfassen, wobei sich die Pfade hinsichtlich der Art und Weise ihrer Auftragung unterscheiden oder aber die unterschiedlichen Pfade beschreiben die Verwendung unterschiedlicher Materialien oder das Aufbringen von Materialien zu unterschiedlichen Zeitpunkten.
-
Da die Größe eines einzelnen Musters im Mikrometerbereich liegt und es aus diesem Grund sehr viele Muster sind, die in das Innere des Polygons gelegt werden müssen, um die gewünschten Steuerungsdaten für das Schichtaufbauverfahren zu erhalten, schlägt die Erfindung ein besonders effizientes Verfahren zum Ausfüllen der Polygone mit den Mustern vor, um die Steuerungsdaten möglichst schnell und einfach zu erstellen.
-
Ein Ausfüllen oder Befüllen eines Polygons mit den Mustern bedeutet, daß es für jeden Pfad innerhalb jedes Musters eine genaue Ortsangabe innerhalb des Polygons, d.h. bezogen auf die Polygonfläche, gibt, genauer gesagt, daß eine solche Ortsangabe berechnet wird oder aber sich aus dem Ergebnis der erfindungsgemäßen Berechnung unmittelbar oder mittelbar ergibt. Aus dieser Ortsangabe läßt sich dann eine entsprechende Druckanweisung oder eine andere geeignete Steuerungsanweisung für die Schichtaufbauvorrichtung erzeugen oder die jeweilige Ortsangabe wird mit einer solchen Steuerungsanweisung verknüpft.
-
Anders ausgedrückt werden bei Ausführung des erfindungsgemäßen Verfahrens die für das Schichtaufbauverfahren benötigten Pfade berechnet, um als Steuerungsdaten oder Teil hiervon der Schichtaufbauvorrichtung zur Verfügung gestellt zu werden. In diesem Zusammenhang ist es für jede Aufbauschicht wesentlich zu wissen, welche Form das der jeweiligen Aufbauschicht entsprechende Polygon aufweist, genauer gesagt, wo die Kanten des Polygons verlaufen, und an welchen Stellen Polygonkanten die Parkettierung schneiden, d.h. ab welchen Stellen der Parkettierung es nicht mehr erforderlich ist, die entsprechenden Pfadpositionen der Einzelmuster zu berechnen, da außerhalb des Polygons später kein Materialauftrag mehr erfolgen soll.
-
Vereinfacht beschrieben geht es darum, zu entscheiden, an welchen Stellen die Parkettierung durch die Form des jeweiligen Polygons abgeschnitten wird. Alle innerhalb des Polygons liegenden Pfade bzw. Teilpfade der einzelnen Muster der Parkettierung werden zur Erstellung der Steuerungsdaten verwendet; die außerhalb des Polygons liegenden Pfade bzw. Teilpfade der Muster der Parkettierung bleiben für die Steuerungsdaten unberücksichtigt.
-
Gemäß einer besonders bevorzugten Ausführungsform der Erfindung wird vorgeschlagen, die „Punkt im Polygon“-Methode für jeden Pfad jedes Musters nicht in Bezug auf das gesamte Polygon durchzuführen, sondern statt dessen das Polygon in eine mehr oder weniger große Anzahl von Unterabschnitten („Zellen“) zu unterteilen und die entsprechende Überprüfung jeweils nur hinsichtlich einer solchen Zelle durchzuführen, genauer gesagt hinsichtlich derjenigen Polygonkanten, die sich innerhalb dieser Zelle befinden. Hierdurch kann die Überprüfung, ob sich ein bestimmter Punkt innerhalb oder außerhalb des Polygons befindet, also ob ein bestimmter Pfad gedruckt werden soll oder nicht, sehr stark beschleunigt werden.
-
Zusammenfassend schlägt die Erfindung ein Verfahren zum schnellen Befüllen von Polygonen vor, das sich eines Algorithmus bedient, der beliebige Muster verarbeiten kann. Insbesondere kann das Muster beliebig komplex sein.
-
Die Erfindung ist besonders vorteilhaft im Bereich des sogenannten Biodrucks („Bioprinting“) einsetzbar, also im Bereich des 3D-Druckens mit organischen Substanzen. Dabei kann der verwendete Biodrucker sowohl kontaktierend, beispielsweise unter Verwendung der Contact Pin Printing- oder der Microstamping-Technik, als auch kontaktlos arbeiten, beispielsweise unter Verwendung der Laser Writing-, Electrospray Deposition- oder Inkjet-Technologie. Die Erfindung ist aber nicht auf diese Einsatzbereiche beschränkt. Sie kann auch in anderen Bereichen der additiven Fertigung verwendet werden, insbesondere in Verbindung mit anderen Schichtaufbauverfahren.
-
Das erfindungsgemäße Verfahren kann rechnergestützt durchgeführt werden. Die zur Durchführung des erfindungsgemäßen Verfahrens geeignete Vorrichtung läßt sich im Wesentlichen durch die Bereitstellung eines geeigneten Computerprogramms realisieren.
-
Ein Ausführungsbeispiel der Erfindung wird nachfolgend anhand der Zeichnungen näher erläutert. Hierbei zeigen:
- 1 ein System mit Datenverarbeitungseinheit und Schichtaufbauvorrichtung,
- 2 ein durch ein Datenmodell beschriebenes erstes Objekt,
- 3 ein eine Aufbauebene eines zweiten Objektes charakterisierendes Polygon,
- 4 ein Muster,
- 5 eine regelmäßige Musteranordnung,
- 6 ein das Polygon aus 3 überdeckendes Gitternetz,
- 7 eine Zelle des Gitternetzes aus 6,
- 8-11 die Darstellung von Pfaden in einer Musteranordnung,
- 12 eine Ablaufdarstellung des Verfahrens zum Erstellen von Steuerungsdaten.
-
Sämtliche Figuren zeigen die Erfindung nicht maßstabsgerecht, dabei lediglich schematisch und nur mit ihren wesentlichen Bestandteilen. Gleiche Bezugszeichen entsprechen dabei Elementen gleicher oder vergleichbarer Funktion.
-
Das hier beschriebene Verfahren dient zum Erstellen von Steuerungsdaten 1 für eine Schichtaufbauvorrichtung 2 zur Durchführung eines Schichtaufbauverfahrens, bei welchem Schichtaufbauverfahren ein dreidimensionales Objekt 3 aus übereinander liegenden Aufbauschichten 4 aufgebaut wird. Der Umriß jeder dieser Aufbauschichten 4 ist durch ein Polygon 5 charakterisiert. Das Ausführungsbeispiel betrifft ein 3D-Druckverfahren, wie es vorteilhafterweise im Bereich von 3D-Bioprinting einsetzbar ist.
-
In Bereich des Biodrucks ist es wichtig, ein sich wiederholendes, aber dennoch kompliziertes, sehr kleines Muster (Bioarray) 6 nach vorgegebenen Pfaden 7, 8 zu drucken. Unter einem Pfad 7, 8 oder Druckpfad wird nachfolgend die gradlinige Druckstrecke verstanden, die der Druckkopf, die Düse oder eine andere druckgebende Komponente des 3D-Druckers 2 zurücklegt, bis er seine Richtung ändern muß.
-
Um ein Objekt mittels Biodruck herzustellen, benötigt man somit ein Verfahren, das in der Lage ist, in annehmbarer Zeit lineare Pfade 7, 8 anhand eines Musters 6 in ein Polygon 5 zu legen. Im Bereich Biodruck kann es darüber hinaus wichtig sein, Pfade 7, 8 durchgängig und nebeneinander zu drucken. Dabei bedeutet „durchgängig“, daß Pfade 7, 8 möglichst lang sein sollen, um die Anzahl der Unterbrechungen des Druckvorgangs und die Anzahl der Richtungsänderungen möglichst gering zu halten. „Nebeneinander“ bedeutet einerseits, daß möglichst benachbarte Pfade 7, 8 nacheinander gedruckt werden, der Druckkopf oder dergleichen sich also im Anschluß an das Drucken einer ersten Linie die dieser ersten Linie am nächsten liegende Linie druckt, so daß die bis zu dem nächsten Druckvorgang zurückzulegende drucklose Bewegungsstrecke möglichst kurz ist. Andererseits bedeutet „nebeneinander“, daß vertikale und horizontale Druckstrecken nicht wechselweise, sondern, erneut mit Blick auf möglichst kurze Leerstrecken, möglichst zusammengefaßt, entsprechend ihrer Ausrichtung, abgefahren werden.
-
Dementsprechend erfüllt das hier beschriebene Verfahren, wie nachfolgend noch genauer erläutert, die folgende Anforderungen: Das Verfahren soll flexibel genug sein, um eine möglichst große Vielfalt an Mustern 6 verarbeiten zu können. Es soll vorzugsweise jedes erdenkliche Muster 6 als Eingabe verarbeiten können. Das Verfahren soll schnell genug sein, obwohl die Polygone 5 sehr groß und die Muster 6 sehr zahlreich sind. Das Verfahren soll sicherstellen, daß so wenige Pfade 7, 8 wie nötig berechnet werden. Das Verfahren soll außerdem vertikale und horizontale Pfade 7, 8 sortieren.
-
Typischerweise wird in einem ersten Schritt 100, der vor dem eigentlichen Ausfüllschritt 101 ausgeführt wird und unabhängig von diesem ausgeführt werden kann, ein Datenmodell 9 zur Beschreibung eines mit Hilfe des Schichtaufbauverfahrens schichtweise aufzubauenden dreidimensionalen Objektes 3 erstellt. Das Datenmodell 9 beschreibt dabei eine Aufteilung des Objektes 3 in eine Anzahl von senkrecht zur Aufbaurichtung (Z-Richtung) übereinander liegender Aufbauschichten 4, die in der X/Y-Ebene liegen. Das Schichtaufbauverfahren umfaßt dabei wenigstens einen Aufbauschritt, der mittelbar oder unmittelbar unter Verwendung dieses Datenmodells 9 erfolgt.
-
Mit anderen Worten wird vor einem 3D-Druck ein virtuelles 3D-Modell 9 von dem zu druckenden Objekt 3 erzeugt und dieses Modell 9 wird in Richtung der Z-Achse in Ebenen 4 geschnitten, welche den späteren Aufbauschichten entsprechen. Das Erzeugen des Modells 9 und der Schnittebenen 4 erfolgt mit Hilfe von dem Fachmann bekannten Techniken, zumeist unter Verwendung einer geeigneten Computersoftware. Die Oberflächen dieser Ebenen 4 werden durch Polygone 5 dargestellt, die damit zugleich die Umrisse der Aufbauschichten abbilden. Anders ausgedrückt wird für jede einzelne Schnittebene 4 des Modells 9 ein Polygon 5 erstellt, das die Fläche dieser Ebene 4 charakterisiert. Diese Polygone 5 dienen als Eingangsdaten für das nachfolgend beschrieben Verfahren, bei dem die Polygone 5 mit regelmäßigen Mustern 6 befüllt werden sollen, um Steuerungsdaten zu erhalten, die für den späteren 3D-Druck des Objektes 3 verwendet werden können.
-
Das Datenmodell 9 des herzustellenden Objekts 3 umfaßt somit Daten zur Beschreibung der Objektgeometrie. Zugleich definiert das Datenmodell 9 für jede Aufbauschicht 4 oder auch für einzelne Abschnitte jeder Aufbauschicht 4 wenigstens einen Aufbauparameter. Durch diesen Parameter wird insbesondere auf die Art und Weise des Materialauftrags und erforderlichenfalls die Art und Weise der Verfestigung des Materials Einfluß genommen. Im vorliegenden Fall geht es in erster Linie darum, wie das Material aufgetragen wird, insbesondere wie die Ansteuerung einer den Materialauftrag durchführenden Komponente der Schichtaufbauvorrichtung 2 erfolgt. Genauer gesagt geht es um die Angabe derjenigen Pfade 7, 8, entlang welcher sich eine entsprechende Komponente der Vorrichtung 2 bewegt.
-
Gemäß der vorliegenden Erfindung wird für jede Aufbauschicht 4 das Innere des Polygons 5 mit einem sich mit geometrischer Regelmäßigkeit wiederholenden, frei wählbaren Muster 6 ausgefüllt, wobei das Muster 6 eine Anzahl von Pfaden 7, 8 des Schichtaufbauverfahrens umfaßt. Mit anderen Worten wird die Polygonfläche mit einer Parkettierung ausgestattet bzw. überzogen, wobei die Parkettierung aus mehreren regelmäßig angeordneten Mustern 6 besteht, wie ausschnittsweise in 5 abgebildet. Bei den Mustern 6 handelt es sich um weitere Eingangsdaten des nachfolgend beschriebenen Verfahrens.
-
Das beschrieben Verfahren ist flexibel genug, um eine möglichst große Vielfalt an Mustern 6 verarbeiten zu können. Es kann jedes erdenkliche Muster als Eingabe 6 verarbeiten. Im gezeigten Beispiel ist das Muster 6 eine rechteckige Figur mit zwei unterschiedlichen Arten von Druckpfaden 7, 8, in 4 dargestellt durch Punkte 7 und Linien 7, wobei die Punkte 7 einen tropfenförmigen Auftrag einer ersten biologischen Substanz und die Linien 8 einen streifenförmigen Auftrag einer zweiten biologischen Substanz darstellen.
-
Gemäß einem Ausführungsbeispiel der Erfindung wird die Fläche des Polygons 5 zum Zweck des Ausfüllens mit dem Muster 6 in Gitterzellen 13 aufgeteilt. Diese Zellen 11 können anschließend mit dem Muster 6 befüllt werden.
-
Im Detail umfaßt der Schritt des Ausfüllens 101 einen ersten Teilschritt 1011, wobei in ein das Polygon 5 einhüllendes Rechteck 11 ein Gitternetz 12 gelegt wird, so daß jede Gitterzelle 13 des Gitternetzes 12 vollständig innerhalb des Polygons 5 oder aber vollständig außerhalb des Polygons 5 oder aber teilweise innerhalb und teilweise außerhalb des Polygons 5 liegt. Das einhüllende Rechteck 11 wird zuvor auf bekannte Weise erstellt. Eine vollständig innerhalb des Polygons 5 liegende Gitterzelle 131, eine vollständig außerhalb des Polygons 5 liegende Gitterzelle 132 sowie eine teilweise innerhalb und teilweise außerhalb des Polygons 5 liegende Gitterzelle 133 sind in 6 dargestellt.
-
Das verwendete Gitternetz 12 ist vorzugsweise regelmäßig mit gleich großen Gitterzellen 13 gebildet, beispielsweise wie abgebildet mit rechteckigen Gitterzellen 13. Die Größe der Gitterzellen 13 und damit die verwendete Anzahl der Gitterzellen 13 werden unter Berücksichtigung der vorzunehmenden Berechnungen vorteilhaft gewählt. Vorzugsweise ist eine Gitterzelle 13 so groß, daß sie genau eine bestimmte Anzahl vollständiger Muster 6 umfaßt.
-
In einem zweiten Teilschritt 1012 wird für jede Gitterzelle 13 ermittelt, welche Kanten 14 des Polygons 5 die Gitterzelle 13 schneiden und ob ein gewählter Referenzpunkt 15 der Gitterzelle 13 innerhalb oder außerhalb des Polygons 5 liegt. Bei dem Referenzpunkt 15 handelt es sich vorzugsweise um einen Eckpunkt der Gitterzelle 13.
-
In einem dritten Teilschritt 1013 werden Gitterzellen 131, die nicht von Kanten 14 des Polygons 5 geschnitten werden und innerhalb des Polygons 5 liegen, vollständig mit dem Muster 6 ausgefüllt, vorzugsweise nach Art einer Parkettierung, wie in 5 abgebildet.
-
In einem vierten Teilschritt 1014 werden in denjenigen Gitterzellen 13, die von Kanten 14 des Polygons 5 geschnitten werden, die nachfolgend erläuterten Unterschritte durchgeführt.
-
In einem ersten Unterschritt 10141 werden bei den zum Ausfüllen dieser Gitterzellen 13 vorgesehenen Mustern 6 diejenigen Pfade 7, 8 des Schichtaufbauverfahrens, die von den Kanten 14 des Polygons 5 geschnitten werden, an den Schnittpunkten 16, an denen sie von den Kanten 14 des Polygons 5 geschnitten werden, in Teilpfade 71, 72, 81, 82 unterteilt, wie in 7 illustriert. Anschließend wird in einem zweiten Unterschritt 10142 für jeden dieser Teilpfade 71, 72, 81, 82 auf an sich bekannte Art und Weise unter Verwendung des Referenzpunktes 15 und der die Gitterzelle 13 schneidenden Kanten 14 des Polygons 5 bestimmt, ob der Teilpfad 71, 72, 81, 82 innerhalb oder außerhalb des Polygons 5 liegt. In einem abschließenden dritten Unterschritt 10143 wird der innerhalb des Polygons 5 liegende Teil 130 der Gitterzelle 13 mit dem Muster 6 ausgefüllt, indem bei von Kanten 14 des Polygons 5 geschnittenen Pfaden 7, 8 der Muster 6 nur noch diejenigen Teilpfade 72, 82 zum Ausfüllen benutzt werden, die innerhalb des Polygons 5 liegen.
-
Der Test, ob ein bestimmter Punkt innerhalb oder außerhalb des Polygons 5 liegt, wird für den Anfangspunkt und den Endpunkt jedes Teilpfades 71, 72, 81, 82 durchgeführt. Die meisten Gitterzellen 13 des Gitternetzes 12 liegen entweder innerhalb oder außerhalb des Polygons 5. In diesen Fällen befindet sich auch ein Punkt innerhalb der Gitterzelle 13 entsprechend innerhalb oder außerhalb des Polygons 5. Wird die Gitterzelle 13 von Kanten 14 des Polygons 5 geschnitten, wird eine Linie 17 von dem zu testenden Punkt 18 zu dem Referenzpunkt 15 der Gitterzelle 13 gezogen, vorzugsweise einer Ecke der Gitterzelle 13. In 7 ist beispielhaft ein zu überprüfender Punkt 18 am unteren Ende der Gitterzelle 13 gewählt. Anschließend wird überprüft, ob diese Linie 17 eine oder mehrere der Kanten 14 des Polygons 5 innerhalb dieser Gitterzelle 13 schneidet. Da bekannt ist, ob sich der Referenzpunkt 15 innerhalb oder außerhalb des Polygons 5 befindet, kann die entsprechende Aussage für den zu überprüfenden Punkt 18 dadurch gefunden werden, daß die Zahl der Schnittstellen 19 der Linie 17 mit den Polygonkanten 14 ermittelt wird. Bekanntermaßen liegt der Punkt 18 innerhalb des Polygons 5, wenn die Anzahl der Schnittstellen 19 ungerade ist; anderenfalls liegt der Punkt 18 außerhalb des Polygons 5.
-
Das beschriebene Verfahren ist vergleichsweise schnell, obwohl die Polygone 5 sehr groß und die Muster 6 sehr zahlreich sind. Dies wird dadurch erreicht, daß in den oben beschriebenen Schritten 1011-1014 nur diejenigen Gitterzellen 13 berücksichtigt werden, die überhaupt druckbare Linien enthalten und die Pfade 7, 8 in den geschnittenen Zellen 133 nur anhand des Referenzpunktes 15 und den die Zelle 133 schneidenden Kanten 14 bestimmt werden, anstatt, wie aus dem Stand der Technik bekannt, das vollständige Polygon 5 untersuchen zu müssen.
-
Nachdem auf diese Weise die zum Druck erforderlichen, berechneten Pfade innerhalb der Gitterzellen 131 sowie die zum Druck erforderlichen, berechneten Pfade 72, 82 innerhalb der Gitterzellen 133 feststehen, werden in einem (optionalen) Folgeschritt 102 Pfade 7, 8 gleicher Steigung, die unmittelbar aneinander angrenzen, miteinander verbunden. Dabei können nicht nur aneinander angrenzende, steigungsgleiche Pfade 7, 8 innerhalb eines Musters 6 sowie aneinander angrenzende, steigungsgleiche Pfade 7, 8 unmittelbar benachbarter Muster 6 innerhalb einer einzelnen Gitterzelle 13 miteinander verbunden werden. Die Bildung geeigneter langer Pfade 7, 8 kann auch gitterzellenübergreifend erfolgen.
-
Es sind in 8 sechs benachbarte Muster 61-66 einer von 5 abweichenden Parkettierung mit quadratischen Mustern innerhalb einer Gitterzelle 13 abgebildet, wobei innerhalb jedes Musters 61-66 beispielhaft ein horizontal verlaufender Pfad 21 und ein vertikal verlaufender Pfad 22 abgebildet sind. Zum sinnvollen Zusammenfügen der Pfade 21, 22 werden aus den Mustern 61 und 62 jeweils die horizontal verlaufenden, aneinander angrenzenden Pfade 21 gelöscht. In Muster 62 wird ein neuer, längerer Pfad 23 gelegt, der die beiden kurzen Pfade 21 ersetzt, siehe 9. Dies erfolgt ein weiteres Mal mit den jetzt in den Mustern 62 und 63 verlaufenden Pfaden 23, 21, so daß am Ende in Muster 63 ein einziger, durch die drei Muster 61, 62 und 63 hindurchlaufender horizontaler Pfad 24 besteht, wie in 10 dargestellt. Entsprechend werden die horizontal verlaufenden Pfade 21 in den Mustern 64, 65 und 66 behandelt. Außerdem werden die durch die Muster 61 und 64 vertikal verlaufende, aneinander angrenzende Pfade 22 durch einen gemeinsamen, in Muster 64 gelegten langen Pfad 25 ersetzt. Gleiches gilt für die vertikalen Pfade 22 in den Musterpaaren 62 und 65 sowie 63 und 66, so daß schlußendlich statt sechs horizontalen Pfaden 21 und sechs vertikalen Pfaden 22 lediglich zwei horizontale Pfade 24 und drei vertikale Pfade 25 übrig bleiben, siehe 11. Das beschriebene Verfahren stellt sicher, daß so wenige Pfade wie nötig berechnet werden. Während der Pfadberechnung reicht es, die jeweils oberen und linken Muster 6 innerhalb einer mit Mustern 6 versehenen Auswahlfläche anzuschauen, um jede mögliche Verbindung zu erkennen. Anders ausgedrückt werden die in Schritt 101 berechneten Pfade in Schritt 102 mit linken oder oberen direkt angrenzenden Pfaden gleicher Steigung verbunden.
-
Nach der Berechnung der Pfade 7, 8, 72, 82 und der optionalen Zusammenführung geeigneter Pfade (nachfolgend nicht mehr einzeln bezeichnet), erfolgt in einem weiteren optionalen Schritt 103 eine Sortierung der für den Druck vorgesehenen Pfade 7, 8, 72, 82 mit dem Ziel, während des späteren Aufbauverfahrens die Druckreihenfolge einzelner Pfade von ihrer Position innerhalb des Polygons 5 abhängig zu machen. Bevorzugt sollen solche Pfade nacheinander gedruckt werden, die auch benachbart zueinander liegen. Das Ziel dabei ist es, unnötige Bewegungen des Druckkopfes zu vermeiden.
-
Die zuvor berechneten Pfade 7, 8, 72, 82 werden mit anderen Worten entsprechend ihrer späteren Verwendungsreihenfolge sortiert, wobei vorzugsweise die horizontal nebeneinander liegenden Pfade bzw. die vertikal nebeneinander liegenden Pfade nacheinander gedruckt werden.
-
In diesem Zusammenhang wird vorgeschlagen, eine Hashtabelle anzulegen. Nachdem bekannt ist, wie viele Muster 6 (vollständig oder lediglich mit Teilpfaden) im Inneren des Polygons 5 angeordnet sind, können diese Pfade in Gruppen unterschiedlicher Eigenschaften eingeteilt werden, beispielsweise in horizontale Pfade, vertikale Pfade und Pfade anderer Steigung. Die verschiedenen Pfade können in einer Hashtabelle angelegt werden, die vorher mit allen (endlich vielen) möglichen Werten befüllt wurde. Dabei sind die X- und Y-Werte der jeweils horizontalen bzw. vertikalen Pfade bekannt. Es wird mit anderen Worten die Tatsache ausgenutzt, daß die Liste der Pfade eine endliche Menge ist. Diese potentiellen Mengen an X- und Y-Werten sind in jeder Aufbauschicht 4 die gleichen. Die Pfade müssen nur noch an den richtigen Werten der Hashtabelle eingesetzt werden. Die in diese Hashtabelle eingesetzten Werte werden auf bekannte Weise sortiert und in einem Folgeschritt 104, nun in für den Aufbauvorgang richtiger Reihenfolge, ausgegeben. Damit können vertikale und horizontale Pfade sortiert ausgegeben, beispielsweise unmittelbar an die Steuerungseinheit 26 einer Schichtaufbauvorrichtung 2, und/oder in einem geeigneten Speicher 27 der das Verfahren ausführenden Datenverarbeitungseinheit 28 gespeichert werden. Dabei werden die berechneten Pfade 7, 8, 72, 82 entweder als Teil der Steuerungsdaten 1 angesehen oder aber die Steuerungsdaten 1 werden unter Verwendung der berechneten Pfade erstellt.
-
Sowohl bei dem Verbinden 102 geeigneter Pfade als auch bei dem Sortieren 103 der Pfade wird, sofern notwendig, die verschiedenartige Natur der beiden Pfadtypen (Tropfen, Streifen) berücksichtigt.
-
Sofern im vorherigen Schritt noch nicht erfolgt, werden in einem letzten Schritt 105 zur Ansteuerung der Schichtbauvorrichtung 2, hier des 3D-Druckers, die berechneten und in der richtigen Reihenfolge im Speicher 27 abgelegten Pfade 7, 8, 72, 82 aus dem Speicher 27 ausgelesen und an die Vorrichtung 2 ausgegeben. Diese Pfade 7, 8, 72, 82 bilden die erstellten Steuerungsdaten 1 oder sind Teil dieser Steuerungsdaten 1 und damit zugleich die Ausgangsdaten des oben beschriebenen Verfahrens.
-
Wird ermittelt, vorzugsweise zu Beginn des Verfahrens, daß bestimmte Polygonebenen 4 im 3D-Modell 9 des Objektes 3 identisch zueinander sind, insbesondere die Kanten 14 des entsprechenden Polygons 5 aufeinander liegen, kann ein zuvor gespeicherte Ergebnis ausgegeben werden, ohne daß die Berechnungsschritte 101-103 noch einmal durchgeführt werden. Da bei gleichen Ebenen 4 keine erneute Berechnung der Pfade erfolgt, wird Rechenzeit eingespart.
-
Alle im Zusammenhang mit der Erzeugung des Datenmodells 9, der Erzeugung von Steuerungsdaten 1 für eine Schichtbauanlage 2 bzw. der Durchführung des erfindungsgemäßen Verfahrens bzw. der Steuerung der Schichtbauanlage 2 erforderlichen Rechenoperationen werden durch eine oder mehrere Datenverarbeitungseinheiten 28 ausgeführt, die zur Durchführung dieser Operationen ausgebildet sind.
-
Die erfindungsgemäße Vorrichtung 28 ist ausgebildet zur Durchführung des beschriebenen Verfahrens zum Erstellen von Steuerungsdaten 1 für eine Schichtaufbauvorrichtung 2. Vorzugsweise handelt es sich bei der Vorrichtung 28 um eine Datenverarbeitungseinheit, ausgebildet zur Durchführung aller Schritte entsprechend des hier beschriebenen Verfahrens, die in einem Zusammenhang mit der Verarbeitung von Daten stehen, insbesondere dem Ausfüllen der Polygone mit Mustern, d.h. der Berechnung der Pfade, dem Verbinden geeigneter Pfade und dem Sortieren der Pfade sowie der erforderlichenfalls weiteren, nicht im einzelnen beschriebenen Schritte zum Erstellen der Steuerungsdaten. Die Datenverarbeitungseinheit 28 weist vorzugsweise eine Anzahl von Funktionsmodulen auf, wobei jedes Funktionsmodul ausgebildet ist zur Durchführung einer bestimmten Funktion oder einer Anzahl bestimmter Funktionen gemäß dem beschriebenen Verfahren. Bei den Funktionsmodulen kann es sich um Hardwaremodule oder Softwaremodule handeln. Mit anderen Worten kann die Erfindung, soweit es die Datenverarbeitungseinheit 28 betrifft, entweder in Form von Computerhardware oder in Form von Computersoftware oder in einer Kombination aus Hardware und Software verwirklicht werden. Soweit die Erfindung in Form von Software, also als Computerprogramm 29, verwirklicht ist, werden sämtliche beschriebenen Funktionen durch Computerprogrammanweisungen realisiert, wenn das Computerprogramm 29 auf einem Rechner 28 mit einem Prozessor 31 ausgeführt wird. Die Computerprogrammanweisungen sind dabei auf an sich bekannte Art und Weise in einer beliebigen Programmiersprache verwirklicht und können dem Rechner in beliebiger Form bereitgestellt werden, beispielsweise in Form von Datenpaketen, die über ein Rechnernetz übertragen werden, oder in Form eines auf einer Diskette, einer CD-ROM oder einem anderen Datenträger gespeicherten Computerprogramms bzw. Computerprogrammprodukts.
-
Ein Schichtaufbauverfahren nach der vorliegenden Erfindung zeichnet sich dadurch aus, daß mittels einer geeigneten Schichtaufbauvorrichtung 2 ein dreidimensionales Objekt aus übereinander liegenden Aufbauschichten 4 unter Verwendung von derart erzeugten Steuerungsdaten 1 aufgebaut wird.
-
Zur Steuerung der Schichtaufbauvorrichtung 2 werden mit anderen Worten Steuerungsdaten 1 verwendet, welche auf der Grundlage bzw. unter Berücksichtigung der Ausgangsdaten, insbesondere der berechneten Pfade 7, 8, 72, 82, erzeugt sind. Im einfachsten Fall bestehen die Steuerungsdaten 1 aus den berechneten Pfaden. Die Steuerungsdaten 1 umfassen in der Regel auch das entsprechende Datenmodell 9 zur Beschreibung des herzustellenden Objektes 3 bzw. werden unter Verwendung eines solchen Datenmodells 9 von einer Datenverarbeitungseinheit 28 erzeugt.
-
Die erfindungsgemäßen Steuerungsdaten sind vorzugsweise dadurch gekennzeichnet, daß sie Pfade 7, 8 des Schichtaufbauverfahrens enthalten, welche Pfade 7, 8 ein frei wählbares Muster 6 bilden, mit dem für jede Aufbauschicht 4 das Innere des Polygons 5 nach Art einer Parkettierung, sich mit geometrischer Regelmäßigkeit wiederholend, ausgefüllt ist.
-
In einer Ausführungsform der Erfindung werden, beispielsweise in der Steuerungseinheit 26 der Schichtaufbauvorrichtung 2, unter Verwendung eines zuvor mit Hilfe der Datenverarbeitungseinheit 28 erzeugten Datenmodells 9 Steuerungsdaten 1 zur Steuerung der Schichtaufbauvorrichtung 2 erzeugt. Die unter Verwendung dieser Steuerungsdaten 1 angesteuerte Schichtaufbauvorrichtung 2 erzeugt unter Ausführung des beschriebenen Schichtaufbauverfahrens ein durch das Datenmodell 9 beschriebenes Objekt 3. Die erfindungsgemäße Schichtaufbauvorrichtung 2 zeichnet sich anders ausgedrückt dadurch aus, daß sie eine Steuerungseinheit 26 umfaßt, die zur Verarbeitung dieser Steuerungsdaten 1 zur Durchführung des Schichtaufbauverfahrens ausgebildet ist.
-
Das Datenmodell 9 und/oder die Steuerungsdaten 1 sind dabei vorteilhafterweise in einem universell einsetzbaren, standardisierten Datenformat gefaßt, das unabhängig von dem gewählten Aufbauverfahren einsetzbar ist, beispielsweise wird hierfür die für numerische Steuerungen geeignete Programmiersprache „G-code“ verwendet.
-
Die Erfindung betrifft außerdem ein Verfahren zur Umrüstung einer Schichtaufbauvorrichtung vom Aufbau eines ersten dreidimensionalen Objektes gemäß erster Steuerungsdaten zum Aufbau eines anderen, zweiten dreidimensionalen Objektes gemäß zweiter Steuerungsdaten, wobei der Schichtaufbauvorrichtung zu diesem Zweck geeignete neue Steuerungsdaten zur Verfügung gestellt werden. Die Steuerungsdaten 1 werden dabei entweder außerhalb der Schichtaufbauvorrichtung 2 durch geeignete Berechnungsmittel erstellt oder aber innerhalb der Schichtaufbauvorrichtung 2, insbesondere innerhalb der Steuerungseinheit 26. Nach dem Erstellen der Steuerungsdaten 1 werden diese der Steuerungseinheit 26 der Schichtaufbauvorrichtung 2 zur Verfügung gestellt, wobei die Steuerungsdaten 1 entweder als erste Steuerungsdaten verwendet werden oder aber frühere Steuerungsdaten durch diese Steuerungsdaten 1 ersetzt werden.
-
Alle in der Beschreibung, den nachfolgenden Ansprüchen und der Zeichnung dargestellten Merkmale können sowohl einzeln als auch in beliebiger Kombination miteinander erfindungswesentlich sein.
-
Bezugszeichenliste
-
- 1
- Steuerungsdaten
- 2
- Schichtaufbauvorrichtung, 3D-Drucker
- 3
- Objekt
- 4
- Aufbauschicht, Ebene
- 5
- Polygon
- 6
- Muster
- 7
- Pfad, Druckpfad erster Art
- 8
- Pfad, Druckpfad zweiter Art
- 9
- Datenmodell
- 10
- (frei)
- 11
- einhüllendes Rechteck
- 12
- Gitternetz
- 13
- Gitterzelle
- 14
- Polygonkante
- 15
- Referenzpunkt
- 16
- Schnittpunkt
- 17
- Linie des „Punkt in Polygon“-Tests
- 18
- zu überprüfender Punkt
- 19
- Schnittstelle
- 20
- (frei)
- 21
- Horizontalpfad
- 22
- Vertikalpfad
- 23
- über zwei Muster verlängerter Horizontalpfad
- 24
- über drei Muster verlängerter Horizontalpfad
- 25
- verlängerter Vertikalpfad
- 26
- Steuerungseinheit
- 27
- Datenspeicher
- 28
- Datenverarbeitungseinheit, Rechner
- 29
- Computerprogramm, Computerprogrammprodukt
- 30
- (frei)
- 31
- Prozessor
- 61-66
- Muster einer Parkettierung mit geeignet zu verbindenden Pfaden
- 71
- außerhalb des Polygons liegender erster Teilpfad
- 72
- innerhalb des Polygons liegender erster Teilpfad
- 81
- außerhalb des Polygons liegender zweiter Teilpfad
- 82
- innerhalb des Polygons liegender zweiter Teilpfad
- 100
- Erstellen des Datenmodells
- 101
- Ausfüllen des Polygons mit dem Muster, Berechnen der Pfade
- 102
- Zusammenführend der Pfade
- 103
- Sortieren der Pfade
- 104
- Speichern der Pfade
- 105
- Ausgeben der Pfade
- 130
- innerhalb des Polygons liegender Teil der Gitterzelle
- 131
- vollständig innerhalb des Polygons liegende Zelle
- 132
- vollständig außerhalb des Polygons liegende Zelle
- 133
- teilweise innerhalb des Polygons liegende Zelle