-
Technisches Gebiet
-
Die Erfindung bezieht sich allgemein auf das Simulieren von Bearbeitungen, und insbesondere auf ein System und ein Verfahren zum Simulieren der Bearbeitung von Objekten unter Verwendung einer Booleschen Überschneidung.
-
Stand der Technik
-
Numerisch gesteuerte Bearbeitung
-
Das Simulieren numerisch gesteuerter (NC) Bearbeitung, z. B. Drehen, Bohren, Aufbohren, Räumen, Sägen, Formen, Aufreiben, Fräsen, Gewindeschneiden, Schleifen, ist wichtig beim computergestützten Entwerfen (CAD) und computergestützten Herstellen (CAM). Während der Simulation wird ein Modell eines Objekts, z. B. eines Werkstücks, mit einer Computerdarstellung eines Werkzeugs, beispielsweise eines NC-Fräswerkzeugs, aufbereitet, sowie ein Satz von Bewegungen, die den Bearbeitungsprozess simulieren.
-
Die Simulation vergegenwärtigt das Modell des Objekts und die Darstellung des Werkzeugs auf einer Anzeigevorrichtung, um potentielle Kollisionen zwischen Teilen zu erfassen, wie zwischen dem Werkstück und dem Werkzeughalter, und eine endgültige Form des Objekts zu verifizieren.
-
Die endgültige Form des Objekts wird beeinflusst durch die Auswahl des Werkzeugs und der Bewegungen. Befehle zum Steuern der Bewegungen werden typischerweise unter Verwendung eines computergestütztes Herstellungssystems anhand einer grafischen Darstellung einer gewünschten endgültigen Form des Objekts erzeugt. Die Bewegungen werden typischerweise unter Verwendung einer Programmsprache für numerische Steuerung, die auch als vorbereitender Code oder G-Codes bekannt ist, siehe die R5274D- und DIN 66025/ISO 6983-Standards, realisiert.
-
Die durch das computergestützte Herstellungssystem erzeugten G-Codes können bei der Erzeugung einer exakten Wiedergabe der gewünschten endgültigen Form versagen. Zusätzlich wird die Bewegung des Werkzeugs und/oder des Objekts durch Motoren des NC-Bearbeitungssystems beherrscht, die beschränkte Geschwindigkeiten, Bewegungsbereiche und Fähigkeiten zum Beschleunigen und Verzögern haben, so dass die tatsächlichen Bewegungen manchmal den NC-Bearbeitungsbefehlen nicht exakt folgen.
-
Diskrepanzen zwischen der tatsächlichen endgültigen Form des Objekts und der gewünschten endgültigen Form des Objekts können klein und schwierig festzustellen sein. In einigen Situationen ergeben diese Diskrepanzen unerwünschte Vertiefungen oder Kerben in der Oberfläche der endgültigen Form des Objekts mit Abmessungen in der Größenordnung einiger Mikrometer in der Tiefe und Breite, und einigen zehn Mikrometern in der Länge.
-
Typischerweise wird ein Satz von NC-Bearbeitungsbefehlen durch Bearbeiten eines Prüfobjekts geprüft, z. B. eines Werkstücks aus weicherem, kostengünstigerem Material, bevor das gewünschte Teil bearbeitet wird. Wenn eine visuelle Überprüfung des Prüfwerkstücks unerwünschte Diskrepanzen in dem Prüfwerkstück lokalisiert, werden die NC-Bearbeitungsbefehle entsprechend modifiziert.
-
Jedoch ist dieses manuelle Prüfen zeitraubend und kostenaufwendig. Die Zeit zum Bearbeiten eines einzelnen Prüfwerkstücks kann in der Größenordnung von Stunden liegen, und mehrere Wiederholungen können erforderlich sein, bevor ein akzeptabler Satz von NC-Bearbeitungsbefehlen erhalten wird. Somit ist es wünschenswert, diese Diskrepanzen unter Verwendung einer computerbasierten Simulation und Aufbereitung zu prüfen.
-
Werkzeuge
-
1A zeigt einen Satz typischer Werkzeuge 102, 104, 106 und 108, die bei der NC-Bearbeitung verwendet werden. Wenn ein Werkzeug relativ zu einem Werkstück 110 bewegt wird, schneidet das Werkzeug Material aus dem Werkstück heraus. Hier entfernen die Werkzeuge 102, 104, 106 und 108 Material, das allgemein als ”abgetastetes Volumen” (swept volume) bezeichnet wird, entsprechend den Oberflächen 112, 114, 116 und 118 aus dem Werkstück. Die Form des Materials, das durch jedes Werkzeug entfernt wird, wird durch die Form und den Weg des Werkzeugs relativ zu dem Werkstück bestimmt.
-
Abgetastetes Volumen
-
Während des Bearbeitens bewegt sich das Werkzeug relativ zu dem Werkstück gemäß einer vorgeschriebenen Bewegung des Werkzeugs und/oder Werkstücks, d. h. entlang eines Werkzeugpfads oder eines Objektpfads, wobei der Pfad Informationen über die relative Position, die Orientierung und andere Formdaten des Werkzeugs mit Bezug auf das Werkstück enthalten kann.
-
Wenn sich das Werkzeug entlang des Werkzeugpfads bewegt, schneidet das Werkzeug ein abgetastetes Volumen heraus. Während des Bearbeitens, wenn sich das Werkzeug entlang des Werkzeugpfads bewegt, wird ein Teil eines Volumens des Werkstücks, das durch das abgetastete Volumen des Werkzeugs durchschnitten wird, entfernt. Diese Materialentfernung kann als eine Differenzoperation einer räumlichen Konstruktionsgeometrie (CSG) modelliert werden, bei der ein Teil des Werkstücks unter Verwendung einer CSG-Subtraktionsoperation des abgetasteten Volumens von dem Werkstück entfernt wird.
-
1B zeigt das abgetastete Volumen 160 einer Form 150, die entlang eines Pfads 152 bewegt wird. Der Pfad 152 bestimmt eine Position eines besonderen Punkts der Form 150 als eine Funktion der Zeit. Der Pfad kann eine Orientierung 156, 157 und 158 der Form als eine Funktion der Zeit spezifizieren. Der Pfad kann auch einen Maßstab der Form oder eine beliebige Transformation der Form als eine Funktion der Zeit spezifizieren.
-
In 1B werden die anfängliche Position, Orientierung und Geometrie einer Form 150 in eine endgültige Position, Orientierung und Geometrie der Form 154 transformiert, wenn sich die Form entlang des Pfads 157 bewegt.
-
2A zeigt einen linearen Pfad, auf dem ein Werkzeug 202 entlang einer geraden Linie 204 bewegt wird.
-
2B zeigt einen kreisförmigen Bogenpfad, auf dem eine Spitze 210 des Werkstücks 202 entlang eines Kreisbogens 212 bewegt wird, und eine anfängliche Achsenrichtung 214 des Werkzeugs wird in eine endgültige Achsenrichtung 216 an dem Ende des Pfads transformiert.
-
2C zeigt einen gekrümmten Pfad, auf dem die Spitze 210 des Werkzeugs 202 entlang einer Kurve 220 bewegt wird.
-
Andere mögliche Pfadformen enthalten das Positionieren des Werkzeugs an einem Punkt, Bewegen des Werkzeugs entlang einer Folge von Linien, die als eine Polylinie bekannt ist, Bewegen des Werkzeugs entlang einer spiral- oder wendelförmigen Kurve, Bewegen des Werkzeugs entlang einer polynomen Kurve wie einer quadratischen Bezier-Kurve oder einer kubischen Bezier-Kurve, oder einer Folge von polynomen Kurven, die als eine stückweise Polynomkurve bekannt ist, um nur einige zu nennen. Jede Pfadform, die simuliert werden kann, kann in Betracht gezogen werden, enthaltend einen Pfad, der durch einen Vorgang definiert ist, wie einen Pfad, der durch die Form oder Materialzusammensetzung des Werkstücks beeinflusst ist.
-
Abstandsfelder
-
Das Abstandsfeld d(p) eines Objekts ist ein Skalarfeld, dessen Wert an einem Punkt p im Raum der Abstand von p zu der Oberfläche des Objekts ist. Viele mögliche Abstandsfelder sind im Stand der Technik bekannt, aber das allgemeinste ist ein euklidisches Abstandsfeld, bei dem der Abstandsfeldwert bei p der minimale gerade Linienabstand von p zu der Oberfläche des Objekts ist. Zusätzlich kann ein Abstandsfeld mit einem Vorzeichen versehen sein, um die Außenseite, die Innenseite und die Grenze des Objekts zu unterscheiden, z. B. d(p) > 0 innenseitig, d(p) < 0 und d(p) = 0 auf der Oberfläche.
-
Auch ein Gradientenvektor des Abstandsfelds an p Punkten in der Richtung des minimalen Abstands, und an der Oberfläche des Objekts der normierte Gradientenvektor ist gleich dem Normalvektor der Oberfläche. Abstandsfelder sind eine Form von impliziten Funktionen, und sie sind eine effektive Darstellung zum Aufbereiten und Editieren von Formen.
-
Der Punkt p im Raum, der von besonderem Interesse ist, ist ein Punkt, an dem ein Wert für das Abstandsfeld d gleich null ist, d. h., d = 0. Wie hier dargestellt ist, ist der Satz von Punkten, an denen das Abstandsfeld gleich null ist, d. h., die Null-Isofläche des Abstandsfelds, eine Grenze des Objekts, z. B. die Grenze des Werkstücks oder die Grenze des abgetasteten Volumens.
-
Adaptiv abgetastete Abstandsfelder (ADFs) verwenden eine detailgerichtete Abtastung, um eine raum- und zeiteffiziente Darstellung der Abstandsfelder zu erhalten. ADFs speichern Wertabtastungen des Abstandsfelds in einer räumlichen Hierarchie von Zellen wie eines Octrees. Eine räumliche Hierarchie von Zellen ist eine Datenbaumstruktur, bei der ein anfänglicher Knoten, der als Wurzelzelle bezeichnet wird, das gesamte Volumen des ADF umschließt. Zellen der räumlichen Hierarchie können Endblätter der Datenbaumstruktur, d. h., Blattzellen sein, oder können kleinere Tochterzellen enthalten, wobei derartige Zellen als Zwischenzellen bezeichnet werden. Die Blattzellen der räumlichen Hierarchie können als innere Blattzellen, d. h. vollständig innerhalb der Grenze, äußere Blattzellen, d. h., vollständig außerhalb der Grenze, oder Grenzblattzellen, d. h., enthaltend die Grenze des Objekts, bezeichnet werden. Jede Zelle ist gekennzeichnet durch eine Größe und eine Position, wodurch es möglich ist, die Scheitelpunkte an den Ecken der Zelle leicht zu berechnen, und daher wird ein Umgrenzungskasten für die Zelle definiert.
-
Assoziiert mit jeder Zelle in der räumlichen Hierarchie ist die Adresse oder der Index in einem Speicher oder einer Tabelle von sowohl der Stammzelle als auch jeder Tochterzelle. Dies bewirkt die allgemeine Beschreibung der räumlichen Hierarchie von Zellen als einen Familienbaum, bei dem eine Zelle Vorfahren hat, die durch die Elternzelle und die Großelternzelle bis zu der Wurzelzelle der Zelle zurückreichen, und eine Zelle kann nachkommende Zellen wie Tochterzellen und Enkelzellen haben, bis die Blattzellen erreicht sind.
-
Zugriff zu den Informationen innerhalb der räumlichen Hierarchie von Zellen wird üblicherweise durch ein Verfahren der Rekursivität erhalten, bei dem die Informationsabfrage an der Wurzelzelle beginnt und dann wiederholt oder verzweigt wird zu nachkommenden Zellen durch Wählen eines bestimmten Zweiges, d. h., einer Tochterzelle der Datenbaumstruktur in Abhängigkeit von irgendeiner Bedingung. Beispielsweise beginnt ein Verfahren zum Finden der Blattzellen, die einen besonderen Punkt im Raum enthält, mit der Wurzelzelle und wiederholt sich bei der Tochterzelle jeder nachkommenden Zelle, die den Punkt enthält, bis die Blattzelle, die den Punkt enthält, erreicht wird.
-
Jede Zelle in der räumlichen Hierarchie von Zellen kann Abstandsdaten und ein Rekonstruktionsverfahren zum Rekonstruieren des Teils des Abstandsfelds, der mit der Zelle assoziiert ist, enthalten. Abstandsdaten können den Wert des Abstandsfelds sowie Gradienten und Teilableitungen des Abstandsfelds an einem Satz von Punkten innerhalb der Zelle enthalten, z. B. an den Scheitelpunkten des Umgrenzungskastens der Zelle. Das Abstandsfeld an jedem Punkt innerhalb der Zelle kann wie erforderlich anhand der Abstandsdaten rekonstruiert werden, um die Speicher- und Berechnungsanforderungen herabzusetzen.
-
ADFs können zum Simulieren der Bearbeitung unter Verwendung von CSG-Operationen verwendet werden. Das zu bearbeitende Werkstück und das Werkzeug können als ADFs dargestellt werden. Der simulierte Bearbeitungsprozess kann ein ADF des simulierten Werkstücks explizit erzeugen, z. B. durch Modifizieren eines ADF des Werkstücks. In diesem Fall können die mit einer Zelle assoziierten Abstandsdaten durch simulierte Bearbeitung modifiziert werden, aber das Rekonstruktionsverfahren kann konstant bleiben.
-
Alternativ kann das simulierte Werkstück implizit als ein zusammengesetztes ADF dargestellt werden. Anders als das vorbeschriebene herkömmliche ADF speichert ein zusammengesetztes ADF keine Abstandsfeld-Wertabtastungen innerhalb jeder Zelle. Stattdessen speichert das zusammengesetzte ADF innerhalb einer räumlichen Hierarchie von Zellen einen Satz von Parametern für jede Zelle, die benötigt werden, um durch analytische oder numerische Mittel die genauen Werte der Abstandsfelder an jedem Punkt innerhalb der Zelle zu berechnen. Die gespeicherten Parameter können beispielsweise einen Satz von Indizes in einer Anordnung von Bearbeitungswerkzeugen, die den Typ, die Form und relevante Abmessungen des Werkzeugs ordnen, enthalten. Zusätzlich können die gespeicherten Parameter z. B. einen Satz von Indizes in eine Anordnung von Bewegungen enthalten, die einen Typ der Bewegung, den Anfangs- und Endpunkt der Bewegung und jegliche anderen nützlichen Informationen vorsieht. Zusätzlich können die gespeicherten Parameter beispielsweise Operatoren, die zum Kombinieren der Abstandsfelder verwendet werden, wie eine CSG-Subtraktion zur Bearbeitungssimulation enthalten. Die Parameter können verwendet werden, um Rekonstruktionsfunktionen zu bestimmen, die kombiniert verwendet werden, um das Abstandsfeld für abgetastetes Volumen innerhalb der Zelle zu berechnen oder zu rekonstruieren. Ein Abstandsfeld für abgetastetes Volumen ist definiert, um das abgetastete Volumen, das durch Bewegen des Bearbeitungswerkzeugs entlang des Pfads erzeugt wird, darzustellen, wobei das Abstandsfeld für das abgetastete Volumen in einer kontinuierlichen Weise gemäß einem Rekonstruktionsverfahren für abgetastetes Volumen definiert ist. Das Rekonstruktionsverfahren für abgetastetes Volumen kann das Abstandsfeld für abgetastetes Volumen an einem Abtastpunkt rekonstruieren.
-
3 zeigt ein zusammengesetztes 2D-ADF 300, das eine räumliche Hierarchie von Zellen, z. B. 301, 302 und 303, enthält, die Teile des Volumens des Arbeitsraums sowie Abstandsfelder, deren Grenzen angezeigt sind, darstellen. In diesem Beispiel sind die Grenzen von Abstandsfeldern 304–307 Ebenen, die die Grenze des anfänglichen Werkstücks definieren. Abstandsfelder 308–310 sind die Grenzen von drei Abstandsfeldern, die die Bewegungen eines Kugelendwerkstücks 106 darstellen. Jede Zelle in dem zusammengesetzten ADF ist mit einem Subsatz des Satzes von Abstandsfeldern, die das anfängliche Werkstück und die abgetasteten Volumen des Werkzeugs darstellen, assoziiert. Beispielsweise enthält der Subsatz des Satzes von Abstandsfeldern, die mit der Zelle 311 assoziiert sind, Abstandsfelder 304, 308 und 309, die zusammen die zusammengesetzte ADF-Oberfläche innerhalb der Zelle 311 bestimmen. Auch ist mit der Zelle ein verfahrensmäßiges Rekonstruktionsverfahren wie CSG-Differenz assoziiert, um den Subsatz des Satzes von Abstandsfeldern für die Rekonstruktion des zusammengesetzten Abstandsfelds des Werkstücks zu kombinieren. Die zusammengesetzte Oberfläche ist so definiert, dass sie die simulierte Grenze des Werkstücks enthaltend Flicken der Grenzen der anfänglichen Werkstück-Abstandsfelder und der Abstandsfelder für abgetastetes Werkzeug ist.
-
Es ist bevorzugt, dass die gespeicherten Abstandsfeldparameter für jede Zelle nur Bezugnahmen auf Abstandsfelder enthalten, die tatsächlich die zusammengesetzte Grenze des bearbeiteten Werkstücks bilden, anstatt Bezugnahmen auf alle Abstandsfelder in der Simulation oder alle Abstandsfelder, die einen Teil ihrer Grenze innerhalb der Zelle haben, zu enthalten. Hierdurch kann die Anzahl von Berechnungen, die zum Durchführen geometrischer Operationen, z. B. Aufbereiten, benötigt werden, minimiert werden.
-
Aufbereiten von zusammengesetzten ADFs
-
Das Aufbereiten von zusammengesetzten ADFs verwendet einige Verfahren und eine Terminologie, die für alle 3D-Computergrafiken gemeinsam ist. Das Aufbereiten von 3D-Objekten in ein Bild bezieht eine Anzahl von Koordinatensystem ein, die durch Transformationsmatrizen aufeinander bezogen sind. Wie in 4 gezeigt ist, kann das zusammengesetzte ADF 401, dessen Ursprung und Orientierung durch Achsenlinien 402 gezeigt sind, innerhalb eines homogenen Weltraum-Koordinatensystems, nachfolgend Weltraum, definiert werden, dessen Ursprung und Orientierung durch Achsenlinien 403 gegeben sind. Weltraumkoordinaten verwenden häufig reale Abmessungen wie Millimeter oder Meilen, und eine 4×4-Matrix, die als eine ADF-Matrix bezeichnet wird, kann verwendet werden, um ADF-Koordinaten auf Weltraumkoordinaten zu kartieren. Eine virtuelle Kamera 404, an irgendeiner Position und mit irgendeiner Orientierung relativ zu den Weltraumkoordinaten, definiert ein Augenraum-Koordinatensystem, dessen Ursprung und Orientierung durch Achsenlinien 405 gegeben sind. Koordinaten von Punkten im Weltraum können im Augenraum unter Verwendung einer 4×4-Betrachtungsmatrix transformiert werden.
-
Assoziiert mit der Kamera ist ein Betrachtungskegelstumpf 406, der den Teil des Weltraums begrenzt, der von der Kamera gesehen werden kann. Wenn das Kameramodell eine vorausschauende Projektion verwendet, um die allgemeine Erfahrung wiederzugeben, dass entfernte Objekte kleiner erscheinen als nähere Objekte, dann hat der Betrachtungskegelstumpf die Form eines Pyramidenstumpfs 406. Der Scheitelwinkel des Kegelstumpfs wird durch das Gesichtsfeld der Kamera bestimmt. Es gibt alternative Projektionstransformationen, wie rechtwinkliges Projizieren, bei dem der Betrachtungskegelstumpf eine rechtwinklige Form hat.
-
Die 4×4-Projektionsmatrix kann verwendet werden, um Augenraumkoordinaten in Schnittraumkoordinaten zu transformieren. Die minimale Tiefe 407 und die maximale Tiefe 408 des Betrachtungskegelstumpfs sind herkömmlich bekannt als die nahe bzw. ferne Schnittebene.
-
Alle drei D-Objekte innerhalb des Betrachtungskegelstumpfs können in dem aufbereiteten Bild 409 sichtbar sein. Die Transformation von dem Schnittraum in den Schirmraum wird bestimmt durch eine Arbeitsflächenmatrix, die den Bildursprung und die Bildbreite und -höhe in Einheiten von Pixeln definiert. Das Bild 409 kann mehrere Speicherfelder enthalten, die als Grafikpuffer bekannt sind, die Speicherraum für verschiedene Werte, die mit jedem Bildpixel assoziiert sind, haben. Der wesentlichste von diesen ist ein Farbpuffer, der die rote, grüne und blaue Farbkomponente hält, und möglicherweise die Transparenz oder Alpha jedes Pixels. Vor der Aufbereitung des Bildes wird der Farbpuffer üblicherweise gelöscht zu einer gewählten Hintergrundfarbe, z. B. schwarz, um jegliche Farbwerte zu beseitigen, die mit einer früheren Verwendung des Puffers assoziiert sind.
-
Ein anderer gewöhnlich verwendeter Puffer ist der z-Puffer, der eine Tiefe hält, die mit jedem Pixel im Schirmraum assoziiert ist, derart, dass ein Objekt an der nahen Schnittebene eine Tiefe von 0, 0 und an der fernen Schnittebene eine Tiefe von 1, 0, hat, z. B. ist die Tiefe auf den Bereich [0, 1] normiert. Die Funktion des Tiefenpuffers besteht darin, eine korrekte Okklusion in dem aufbereiteten Bild zu ermöglichen, wie nachfolgend beschrieben wird. Vor dem Aufbereiten des Bildes wird der z-Puffer gewöhnlich auf einen großen Tiefenwert eingestellt, typischerweise 1, 0.
-
Die Aufbereitung eines zusammengesetzten ADF als ein Bild kann durch eine Anzahl von Verfahren durchgeführt werden, z. B. Objektfolge-Strahlverfolgung oder Bildfolge-Strahlverfolgung, wie schematisch in 2D in 4 gezeigt ist. Beispielsweise werden während des Bildfolge-Strahlverfolgungsverfahrens Strahlen rechenmäßig von jedem Pixel in dem Bild emittiert und durch den Betrachtungskegelstumpf ausgebreitet, bis die Strahlen entweder die Grenze des zusammengesetzten ADF schneiden oder die ferne Schnittebene des Betrachtungskegelstumpfs erreichen. Ein Strahl kann äquivalent einer parametrischen Linie mit einer zeitgleichen Koordinate t derart sein, dass eine Position des Strahls im 3D-Raum durch R(t) = T0 + Rdt definiert ist, wobei R0 der Ursprung des Strahls ist und Rd der Richtungsvektor des Strahls ist. Die Strahlen breiten sich durch das zusammengesetzte ADF aus, wobei sie zuerst die naheste Zelle mit einem niedrigsten t finden, die der Strahl kreuzt. Wenn die naheste Zelle eine Zwischenzelle ist, dann werden die Tochterzellen der Zwischenzelle rekursiv für eine Strahlkreuzung geprüft, bis der Strahl die naheste Blattzelle kreuzt. Wenn die Blattzelle nicht eine Grenzblattzelle ist, dann enthält die Zelle nicht die Grenze des zusammengesetzten ADF. Das Verfahren sucht dann nach einer nächsten Blattzelle entlang des Strahls.
-
Als Beispiel pflanzt sich ein Strahl 411 durch den Betrachtungskegelstumpf fort, ohne irgendwelche Zellen zu kreuzen. Daher bleibt das Pixel entsprechend dem Strahl 411 auf die Hintergrundfarbe eingestellt. Der Strahl 412 kreuzt die Wurzelzelle der räumlichen Hierarchie. Bei diesem Beispiel ist die Wurzelzelle eine Zwischenzelle und alle unmittelbaren Töchter. Schließlich erreicht die Rekursion die Zelle 425, die eine äußere Blattzelle ist. Das Verfahren sucht dann nach der nächsten Zelle entlang des Strahls 412. In diesem Beispiel gibt es keine anderen Zellen, so dass das Pixel entsprechend dem Strahl 412 mit der Hintergrundfarbe verbleibt.
-
Es wird nun Strahl 413 betrachtet, der mit einem grünen Pixel 414 assoziiert ist. Nach dem Kreuzen mehrerer Zwischen- und äußerer Blattzellen kreuzt der Strahl 413 die Zelle 415, die eine Grenzblattzelle ist und vergrößert in dem Ausschnitt von 4 gezeigt ist. Die Zelle 415 enthält die Grenzen von Abstandsfeldern 416, 417 und 418, wobei 416 ein ebenes Abstandsfeld ist, das die ursprüngliche Werkstückoberfläche darstellt, und 417 und 418 die Grenzen von Abstandsfeldern sind, die zwei Bewegungen eines Kugelendenwerkzeugs 106 sind. Der Prozess des Bestimmens, ob ein Strahl die Grenze des zusammengesetzten ADF innerhalb einer Zelle kreuzt, kann das erste Bestimmen der Strahlenkoordinate, tfront und tback, des Kreuzens des Strahls mit der vorderen Grenzfläche 419 der Zelle bzw. der hinteren Grenzfläche 420 der Zelle einbeziehen. Wenn tfront > tback, dann hat der Strahl die Zelle verfehlt und der nächste Strahl wird verarbeitet.
-
Für Strahlen, die die Zelle kreuzen, kann der zweite Schritt der Bildfolge-Strahlverfolgung beginnen durch Bestimmen der Kreuzungspunkte 421, 422 und 423, an denen z. B. der Strahl 413 die Grenzen von Distanzfeldern 418, 416 bzw. 417 kreuzt, die mit der Zelle 415 assoziiert sind. Aufgrund der subtraktiven Natur der Simulation ist ein Punkt p nur auf der Oberfläche des zusammengesetzten ADF. Der Punkt p ist auf der Grenze von einem Distanzfeld und innerhalb aller anderen, d. h., wenn und nur wenn di(p) = 0, dj(p) > 0 für i, j ∈ [0, N), i ≠ j, wobei N die Anzahl von Abstandsfeldgrenzen innerhalb der Zelle ist. Daher können die Werte der Abstandsfelder 416–418 für die Kreuzungspunkte 421–423 bestimmt werden, und der Punkt mit dem minimalen Wert des Strahlenparameters t, der der vorstehenden Bedingung genügt, ist der Oberflächenpunkt des zusammengesetzten ADF für diesen Strahl. In diesem Beispiel genügt der Punkt 423 der Bedingung und ist bekannt als ein Pixelfragment in der Terminologie der 3D-Computergrafik.
-
Nachdem das Pixelfragment, z. B. der Punkt 423 bestimmt ist, wird der Normalvektor der Oberfläche anhand des Gradienten des Abstandsfelds berechnet. Die Farbe und Helligkeit des Pixels, das mit dem Strahl assoziiert ist, werden anhand der Materialeigenschaften der Oberfläche bestimmt, z. B. der Umgebungs-, diffusen und spiegelnden Farben, plus Materialglanz, üblicherweise modifiziert durch Verwendung eines Beleuchtungsmodells, z. B. Phong oder Blinn, das das Punktprodukt aus dem Oberflächen-Normalvektor und einem Beleuchtungsvektor sowie die Lichtfarbe berücksichtigt. Typischerweise wird eine Phong-Beleuchtung für Kunststoffe verwendet, und eine Blinn-Beleuchtung wird für Metalle verwendet. Schließlich werden die Farbe und der z-Wert des Fragments in den Farb- bzw. den z-Puffer geschrieben.
-
Die Koordinaten von Fragmenten des ADF oder zusammengesetzten ADF werden gewöhnlich in einem Schirm- oder Bildkoordinatensystem verarbeitet. Jedoch ist für den Fachmann offensichtlich, dass die Koordinaten des Fragments durch eine inverse Transformation von dem Schirmraum zurück zu dem Weltraum transformiert werden kann, die die mathematischen Umkehrungen der Arbeitsflächen-, der Projektions- und Betrachtungstransformationsmatrizen verwendet. Die Koordinaten des Fragments in dem Weltkoordinatensystem entsprechen der Oberfläche des ADF in den Weltkoordinatensystemen.
-
Grenzdarstellungen
-
Ein zusammengesetztes ADF ist nicht die einzig mögliche Darstellung von räumlichen Objekten. Die gebräuchlichste Darstellung, die meistens in der CAD-Software verwendet wird, ist eine Grenzdarstellung oder B-rep. Eine b-rep ist eine Darstellung eines Objekts durch einen Satz von nichtüberlappenden Flächen, deren Vereinigung die Grenze des Objekts darstellt. Eine Grenzdarstellung hat zwei Teile, eine topologische Beschreibung der Verbindbarkeit und Orientierung von Scheitelpunkten, Kanten und Flächen, und eine geometrische Beschreibung zum Einbetten dieser Oberflächenelemente im Raum. Ein Dreiecknetz, das allgemein in der Computergrafik verwendet wird, ist ein Beispiel für eine Grenzdarstellung. In einem Dreiecknetz ist jede Fläche ein Dreieck, das durch drei Kanten, die drei Scheitelpunkte verbinden, begrenzt ist. Eine Tabelle, die die Positionen sämtlicher Scheitelpunkte des Dreiecknetzes im Weltraum enthält, liefert die geometrische Beschreibung der Grenzdarstellung, und eine zweite Tabelle, in der jeder Eintrag die Indizes der drei Scheitelpunkte, die ein Dreieck des Dreiecknetzes bilden, ist, liefert die topologische Beschreibung der Grenzdarstellung.
-
Grenzdarstellungen müssen geschlossen sein, d. h., die Grenzdarstellung darf keine Spalte oder Löcher haben. Zusätzlich muss die b-rep topologisch korrekt sein, d. h., die b-rep darf keine hängenden Kanten oder Flächen haben, die nicht mit anderen Kanten oder Flächen zur Bildung einer geschlossenen Oberfläche verbunden sind.
-
5 zeigt ein Beispiel für eine herkömmliche Grenzdarstellung eines Tetraeders. Das Tetraeder kann durch vier Scheitelpunkte, sechs Kanten und vier dreieckige Flächen wie folgt beschrieben werden: die Scheitelpunkte sind 501, 502, 503 und 504; eine Kante 511 ist eine gerade Linie mit Endscheitelpunkten 501 und 502; eine Kante 512 ist eine gerade Linie mit Endscheitelpunkten 502 und 503; eine Kante 512 ist eine gerade Linie mit Endscheitelpunkten 502, und 503; eine Kante 513 ist eine gerade Linie mit Endscheitelpunkten 503 und 504; eine Kante 514 ist eine gerade Linie mit Endscheitelpunkten 501 und 504; eine Kante 515 ist eine gerade Linie mit Endscheitelpunkten 502 und 504; eine Fläche 520 ist ein Dreieck, das durch Kanten 512, 513, 515 begrenzt ist; eine Fläche 521 ist ein Dreieck, das durch Kanten 511, 515, 514 begrenzt ist; eine Fläche 522 ist ein Dreieck, das durch Kanten 511, 516, 512 begrenzt ist; und eine Fläche 523 ist ein Dreieck, das durch Kanten 513, 516, 514 begrenzt ist.
-
Die Grenzdarstellung speichert explizit die Grenzflächen des Objekts. Jedoch ist die Seite einer Fläche, die zu dem Inneren des Objekts hinweist, implizit bestimmt durch die Anordnung der Scheitelpunkte in den Flächen. In diesem Beispiel wird eine allgemeine Rechtshand-Anordnung verwendet, bei der die Finger der rechten Hand in der Richtung der Reihenfolge der Scheitelpunkte orientiert sind und der Daumen in die Auswärtsrichtung der Fläche zeigt. Ein Verfahren zum Bestimmen, ob ein Punkt im Raum innerhalb oder außerhalb der Grenzdarstellung ist, besteht darin, einen Strahl von dem Punkt auszusenden und die Anzahl von Flächen zu zählen, die der Strahl kreuzt, bevor er einen großen Abstand erreicht, der ausreichend groß ist, um sicherzustellen, dass er außerhalb der Grenzdarstellung ist. Wenn die Anzahl von gekreuzten Flächen geradzahlig ist, ist der Punkt außerhalb der Grenzdarstellung, anderenfalls ist der innerhalb.
-
Eine Grenzdarstellung ist nicht auf gerade Kanten und flache Flächen beschränkt. Eine Grenzdarstellung kann auch beispielsweise parametrische Kurven und Flächen wie kubische B-Splines bzw. Bézier-Teilflächen enthalten.
-
Diese Kurven und Oberflächen höherer Ordnung ermöglichen, dass Festkörper mit frei geformten Grenzen in einer kompakten Weise dargestellt werden.
-
Die Aufbereitung von Grenzdarstellungen kann durch 3D-Grafikhardware unter Verwendung von Grafikanwendungs-Programmschnittstellen (API) wie OpenGL durchgeführt werden, und bezieht dasselbe Koordinatensystem und dieselben Transformationen ein, die vorstehend im Zusammenhang mit dem Aufbereiten von zusammengesetzten ADFs beschrieben wurden. Jede Fläche der Grenzdarstellung wird getrennt in einer Objektfolgeweise aufbereitet.
-
Während der Aufbereitung kann jede Fläche der Grenze in ein oder mehrere flache Polygone umgewandelt werden, die zu der Grafik-API passiert werden können. Der Grafikprozessor kann die Positionen der Polygonscheitelpunkte aus dem Weltraum in den Augenraum durch Multiplikation mit der Betrachtungstransformationsmatrix transformieren, und dann weiterhin die Positionen in den Schnittraum durch Multiplikation mit der Projektionsmatrix transformieren.
-
Zusätzlich wird eine Vektornormale zu der Oberfläche, die an jedem Scheitelpunkt definiert ist, transformiert durch die Umstellung der Umkehrung der oberen 3×3-Matrix der Betrachtungsmatrix. Eine Begrenzung findet dann statt durch Verwerfen jeglicher Flächen, die nicht vollständig innerhalb des Begrenzungsvolumens (x, y, z) ∈ [–1, 1] sind. Jegliche Flächen, die teilweise innerhalb des Begrenzungsvolumens sind, werden an der Volumengrenze beschnitten. Scheitelpunkte werden dann in den Schirmraum unter Verwendung einer Arbeitsflächenmatrix projiziert. Ihre (x, y, z)-Koordinaten sind nun in dem Bereich von [0, Schirmbreite) und [0, Schirmhöhe), bzw. [0, 0; 1, 0]. Die transformierte Fläche wird dann gerastert; für jedes Pixel innerhalb des Schirmbereichs, der durch die transformierte Fläche begrenzt ist, wird ein Fragment der Grenzdarstellung erzeugt, dessen Position und Farbe durch bilineare Interpolation der Positionen und Farben der Flächenscheitelpunkte bestimmt sind. Eine z-Prüfung wird durchgeführt, bei der der z-Wert jedes Fragments mit dem Wert, der bereits in dem z-Puffer ist, verglichen wird, und wenn der Wert kleiner ist, d. h., näher, dann werden der gegenwärtige z-Wert und die Farbe durch die Fragmentwerte überschrieben, anderenfalls wird das Fragment verworfen.
-
Der Normalvektor kann für jedes Fragment bestimmt werden anhand des transformierten Normalvektors, der an jedem Scheitelpunkt definiert ist, und interpoliert auf die Schirmposition des Fragments. Die Farbe und Helligkeit der Fragmente kann anhand der Materialeigenschaften bestimmt werden, z. B. Umgebungs-, diffuse und spiegelnde Farben, plus Materialglanz, die gewöhnlich durch Verwendung eines Beleuchtungsmodells, z. B. Phong oder Blinn, modifiziert werden, das das Punktprodukt aus dem interpolierten transformierten Normalvektor und einem Beleuchtungsvektor sowie die Lichtfarbe berücksichtigt.
-
Viele Werkstücke, die bei der Bearbeitung verwendet werden, beginnen als einfache Formen, wie rechteckige Festkörper oder Zylinder. Jedoch enthält eine andere Klasse von Bearbeitungsvorgängen die Oberflächenbearbeitung von gegossenen Werkstücken. Ein gegossenes Werkstück oder Gussstück wird erzeugt durch Gießen von geschmolzenem Metall in eine Form, um ein komplexeres anfängliches Werkstück zu bilden. Ein übliches Formmaterial ist Sand, der mit einem schwachen Klebstoff gemischt ist, und wurde selbst von anderen Formen in eine Sandform gegossen. Sand hat den Vorteil, dass er kostengünstig und wärmebeständig ist, und das fertige Gussstück kann leicht durch einfaches Entfernen des Sandes erhalten werden.
-
Aufgrund der relativ groben Textur des Sandes hat ein Sandgussstück eine raue Oberfläche und eine geringe Abmessungsgenauigkeit. Jedoch müssen einige Oberflächen des Werkstücks glatt sein und hochgenaue Abmessungen haben. Beispielsweise wird der Motorblock eines Automobils durch Sandgießen hergestellt und muss sehr genau und glatt innerhalb der Zylinder sein, so dass die Kolbenringe den Zylinder abdichten können und der Kolben sich korrekt bewegt. In gleicher Weise müssen Befestigungslöcher mit Gewinde versehen sein, und abdichtende Oberflächen, an denen Dichtungen getrennte Komponenten verbinden, müssen eine glatte und flache Oberfläche haben.
-
Um glatte Oberflächen und genaue Abmessungen zu erzielen, müssen einige oder alle der Oberflächen des Gussstücks bearbeitet werden. Daher ist es wichtig, dass ein Bearbeitungssimulator in der Lage ist, mit einer Darstellung des gegossenen Werkstücks zu beginnen. Jedoch kann eine Oberflächendarstellung des gegossenen Werkstücks inkompatibel mit Darstellungen der Bewegungen des Werkzeugs sein. Beispielsweise kann die Oberfläche des gegossenen Werkstücks durch eine explizite Darstellung definiert sein, z. B. eine CAD-Grenzdarstellung, und die Bewegungen des Werkzeugs können durch eine Oberfläche mit impliziter Darstellung, z. B. ADF-Darstellung definiert sein.
-
Die herkömmlichen Verfahren wandeln eine implizite Objektdarstellung in eine explizite Darstellung um, oder umgekehrt. Jedoch ist der Umwandlungsprozess zeitaufwendig und kann große Speicheranforderungen bedingen. Auch kann in dem Fall frei geformter Oberflächen die Umwandlung zu einem Genauigkeitsverlust führen. Demgemäß besteht eine Notwendigkeit im Stand der Technik, sich der vorgenannten Probleme anzunehmen.
-
Zusammenfassung der Erfindung
-
Es ist eine Aufgabe der Erfindung, ein Verfahren vorzusehen, das die Bearbeitung eines Objekts durch ein Werkzeug simuliert. Es ist weiterhin die Aufgabe der Erfindung, ein derartiges Verfahren vorzusehen, das eine Bearbeitungssimulation eines Modells eines Objekts ohne Modifizieren des Modells selbst vorsieht. Es ist weiterhin die Aufgabe der Erfindung, ein Verfahren vorzusehen, das geeignet ist für die Bearbeitungssimulation eines Objekts mit einem Typ von Oberflächendarstellung mit einem Satz von abgetasteten Volumen, die einen anderen Typ von Oberflächendarstellung haben.
-
Einige Ausführungsbeispiele der Erfindung basieren auf einer Realisierung, dass anstelle der Bearbeitungssimulation des Modells des Objekts mit beispielsweise einer Grenzdarstellung einer Oberfläche mit abgetasteten Volumen in beispielsweise einer Abstandsflächendarstellung ein Vertretungsobjekt in der Abstandsfelddarstellung geschaffen werden kann und die Bearbeitungssimulation an diesem Vertretungsobjekt durchgeführt werden kann, um ein bearbeitetes Vertretungsobjekt zu empfangen. Nun ist das Problem der Bearbeitung des Modells des Objekts reduziert auf die Bestimmung einer Booleschen Überschneidung zwischen dem bearbeiteten Vertreterobjekt und dem Modell des Objekts.
-
Darüber hinaus basieren einige Ausführungsbeispiele auf einer anderen Realisierung, da es für einige Anwendungen unnötig ist, eine Darstellung in die andere umzuwandeln. Stattdessen ist es ausreichend, die verschiedenen Darstellungen so miteinander aufzubereiten, dass die Darstellungen korrekt miteinander zusammengesetzt sind. Die gemeinsame Aufbereitung der beiden Darstellungen erzeugt ein Bild, das eine Bearbeitungssimulation enthaltend eine ordnungsgemäße Okklusion darstellt.
-
Demgemäß offenbart ein Ausführungsbeispiel der Erfindung ein Verfahren zur Computersimulation einer Bearbeitung eines Objekts durch eine Bewegung eines Werkzeugs, wobei das Objekt durch ein Grenzdarstellungs(BP)-Objekt dargestellt wird, wobei das BP-Objekt eine Grenzdarstellung einer Oberfläche des Objekts enthält, wobei die Bewegung durch einen Satz von abgetasteten Volumen dargestellt ist, wobei der Satz von abgetasteten Volumen einen ersten Satz von impliziten Funktionen enthält, die eine Oberfläche des Satzes von abgetasteten Volumen definieren. Die Schritte des Verfahrens werden durch einen Prozessor ausgeführt. Das Verfahren enthält die Bestimmung eines Vertreterobjekts mit einem zweiten Satz von impliziten Funktionen, die eine Oberfläche des Vertreterobjekts definieren; das Simulieren der Bearbeitung des Vertreterobjekts mit dem Satz von abgetasteten Volumen, um ein bearbeitetes Vertreter(MP)-Objekt mit einem dritten Satz von impliziten Funktionen, die eine Oberfläche des MP-Objekts definieren, zu erzeugen, das Aufbereiten eines Bildes einer Booleschen Überschneidung zwischen dem MP-Objekt und dem BP-Objekt; und das Speichern des Bildes in einem Speicher.
-
Variationen dieses Ausführungsbeispiels können die folgenden optionalen Merkmale enthalten. Beispielsweise kann das Aufbereiten aus einer Betrachtungsrichtung durchgeführt werden, und eine implizite Funktion kann aus einer Gruppe ausgewählt werden, die besteht aus: einem Abstandsfeld, einem abgetasteten Abstandsfeld, einem adaptiv abgetasteten Abstandsfeld, einem zusammengesetzten, adaptiv abgetasteten Abstandsfeld, und Kombinationen von diesen.
-
Auch kann eine Oberfläche des BP-Objekts BP-Objektfragmente in einem Weltkoordinatensystem enthalten, wobei eine Oberfläche des MP-Objekts MP-Objektfragmente in dem Weltkoordinatensystem enthält. Die Aufbereitung kann weiterhin enthalten: Bestimmen eines Satzes von BP-Objektfragmenten innerhalb des MP-Objekts; Bestimmen eines Satzes von MP-Objektfragmenten innerhalb des BP-Objekts; und Umwandeln des Satzes von BP-Objektfragmenten und des Satzes von MP-Objektfragmenten in einen Satz von Pixeln in einem Bildkoordinatensystem, das zumindest einen Teil des Bildes bildet.
-
Das Bestimmen des Satzes von BP-Objektfragmenten kann enthalten: Bestimmen eines Abstands von einem BP-Objektfragment zu der Oberfläche des BP-Objekts, wobei der Abstand in dem Weltkoordinatensystem bestimmt wird; Hinzufügen des BP-Objektfragments in dem Satz von BP-Objektfragmenten, wenn der Abstand anzeigt, dass das BP-Objektfragment innerhalb des MP-Objekts ist; und Hinzufügen des BP-Objektfragments in dem Satz von bearbeiteten BP-Objektfragmenten, wenn der Abstand anzeigt, dass das BP-Objektfragment außerhalb des MP-Objekts ist.
-
Das Bestimmen des Satzes von MP-Objektfragmenten kann enthalten: Bestimmen einer Tiefe eines MP-Objektfragments in dem Bildkoordinatensystem; und Hinzufügen des MP-Objektfragments in dem Satz von MP-Objektfragmenten, wenn die Tiefe in zumindest einem Bereich von Tiefen innerhalb des BP-Objekts ist, wobei der Bereich der Tiefe in dem Bildkoordinatensystem bestimmt ist.
-
Zusätzlich oder alternativ kann das Bestimmen des Satzes von MP-Objektfragmenten enthalten: Bestimmen von MP-Objektfragmenten entsprechend BP-Objektfragmenten in dem Satz von bearbeiteten BP-Objektfragmenten; Bestimmen einer Tiefe jedes entsprechenden MP-Objektfragments in dem Bildkoordinatensystem; und Hinzufügen des entsprechenden MP-Objektfragments in dem Satz von MP-Objektfragmenten, wenn die Tiefe innerhalb zumindest eines Bereichs von Tiefen innerhalb des BP-Objekts ist, wobei der Bereich der Tiefe in dem Bildkoordinatensystem bestimmt ist; und Bestimmen einer Entsprechung zwischen dem BP-Objektfragment und dem BP-Objektfragment des Satzes von bearbeiteten BP-Objektfragmenten in dem Bildkoordinatensystem.
-
Bei einigen Variationen kann das Verfahren auch das Setzen eines Pixelkennzeichens für ein Pixel entsprechend dem BP-Objektfragment des Satzes von bearbeiteten BP-Objektfragmenten enthalten, derart, dass das Pixelkennzeichen die Entsprechung zwischen dem MP-Objektfragment und dem BP-Objektfragment bestimmt. Zusätzlich oder alternativ kann das Verfahren enthalten: Setzen eines Flächenkennzeichens für zumindest eine Fläche des BP-Objekts entsprechend dem BP-Objektfragment des Satzes von bearbeiteten Fragmenten, um zumindest eine bearbeitete Fläche zu erzeugen; und Bestimmen des Bereichs von Tiefen innerhalb des BP-Objekts nur für die bearbeitete Fläche.
-
Gemäß einer Variation dieses Ausführungsbeispiels enthält das Verfahren: Bestimmen, in einem Weltkoordinatensystem, von BP-Objektfragmenten auf einer Oberfläche des BP-Objekts; Bestimmen, in dem Weltkoordinatensystem, eines Satzes von BP-Objektfragmenten innerhalb des MP-Objekts und eines Satzes von bearbeiteten BP-Objektfragmenten außerhalb des MP-Objekts; Bestimmen, in dem Bildkoordinatensystem, eines Satzes von bearbeiteten Flächen des BP-Objekts, wobei jede bearbeitete Fläche zumindest einem BP-Objektfragment in dem Satz von bearbeiteten BP-Objektfragmenten entspricht; Bestimmen, in dem Bildkoordinatensystem, eines Satzes von Bereichen von Tiefen innerhalb des BP-Objekts, wobei zumindest ein Bereich der Tiefe für zumindest eine bearbeitete Fläche bestimmt ist; Bestimmen, in dem Weltkoordinatensystem, von MP-Objektfragmenten auf der Oberfläche des MP-Objekts; Bestimmen, in dem Bildkoordinatensystem, von MP-Objektfragmenten entsprechend BP-Objektfragmenten in dem Satz von bearbeiteten BP-Objektfragmenten; Hinzufügen eines entsprechenden MP-Objektfragments in dem Satz von MP-Objektfragmenten, wenn eine Tiefe des entsprechenden MP-Objektfragments, in dem Bildkoordinatensystem, innerhalb zumindest eines Bereichs von Tiefen aus dem Satz von Bereichen von Tiefen ist; und Umwandeln des Satzes von BP-Objektfragmenten und des Satzes von MP-Objektfragmenten in einen Satz von Pixeln in einem Bildkoordinatensystem, das zumindest einen Teil des Bildes bildet. Die vorstehenden Ausführungsbeispiele können durch Verwendung eines Prozessors realisiert werden.
-
Ein anderes Ausführungsbeispiel der Erfindung offenbart ein Computersystem zum Durchführen einer Computersimulation einer Bearbeitung eines Objekts durch eine Bewegung eines Werkzeugs, wobei das Objekt durch ein Modell des Objekts dargestellt ist, wobei die Bewegung durch einen Satz von abgetasteten Volumen dargestellt ist, enthaltend einen Prozessor, der ausgebildet ist zum: Bestimmen eines Vertreterobjekts derart, dass eine Form des Vertreterobjekts zumindest eine Form des Modells des Objekts umschreibt; Simulieren der Bearbeitung des Vertreterobjekts mit dem Satz von abgetasteten Volumen, um ein bearbeitetes Vertreterobjekt zu erzeugen; und Aufbereiten eines Bildes einer Booleschen Überschneidung zwischen dem bearbeiteten Vertreterobjekt und dem Modell des Objekts.
-
In dem Computersystem können eine Darstellung einer Oberfläche des Modells des Objekts und eine Darstellung einer Oberfläche des Satzes von abgetasteten Volumen verschiedene Typen von Darstellungen oder derselbe Typ von Darstellung sein.
-
Ein anderes Ausführungsbeispiel offenbart ein Computerprogrammprodukt zum Durchführen einer Computersimulation einer Bearbeitung eines Objekts durch eine Bewegung eines Werkzeugs, wobei das Objekt durch ein Grenzdarstellungs(BP)-Objekt dargestellt ist, wobei das BP-Objekt eine Grenzdarstellung einer Oberfläche des Objekts enthält, wobei die Bewegung durch einen Satz von abgetasteten Volumen dargestellt ist, wobei der Satz von abgetasteten Volumen einen ersten Satz von impliziten Funktionen enthält, die eine Oberfläche des Satzes von abgetasteten Volumen definiert, enthaltend ein computerlesbares Speichermedium aufweisend einen darin enthaltenen computerverwendbaren Programmcode, wobei der Programmcode ausgebildet ist zum: Bestimmen eines Vertreterobjekts mit einem zweiten Satz von impliziten Funktionen, die eine Oberfläche des Vertreterobjekts definieren; Simulieren der Bearbeitung des Vertreterobjekts mit dem Satz von abgetasteten Volumen, um ein bearbeitetes Vertreter(MP)-Objekt mit einem dritten Satz von impliziten Funktionen, die eine Oberfläche des MP-Objekts definieren, zu erzeugen; Aufbereiten eines Bildes einer Booleschen Überschneidung zwischen dem MP-Objekt und dem BP-Objekt; und Speichern des Bildes in einen Speicher.
-
Das Computerprogrammprodukt kann den Programmcode haben, der auch ausgebildet ist zum: Bestimmen, in einem Weltkoordinatensystem, von BP-Objektfragmenten auf einer Oberfläche des BP-Objekts; Bestimmen, in dem Weltkoordinatensystem, eines Satzes von BP-Objektfragmenten, die innerhalb des MP-Objekts sind, und eines Satzes von bearbeiteten BP-Objektfragmenten, die außerhalb des MP-Objekts sind; Bestimmen, in dem Bildkoordinatensystem, eines Satzes von bearbeiteten Flächen des BP-Objekts, wobei jede bearbeitete Fläche zumindest einem BP-Objektfragment in dem Satz von bearbeiteten BP-Objektfragmenten entspricht; Bestimmen, in dem Bildkoordinatensystem, eines Satzes von Bereichen von Tiefen innerhalb des BP-Objekts, wobei zumindest ein Bereich der Tiefe für zumindest eine bearbeitete Fläche bestimmt ist; Bestimmen, in dem Weltkoordinatensystem, von MP-Objektfragmenten auf der Oberfläche des MP-Objekts; Bestimmen, in dem Bildkoordinatensystem, von MP-Objektfragmenten entsprechend BP-Objektfragmenten in dem Satz von bearbeiteten BP-Objektfragmenten; Hinzufügen eines entsprechenden MP-Objektfragments in dem Satz von MP-Objektfragmenten, wenn eine Tiefe des entsprechenden MP-Objektfragments in dem Bildkoordinatensystem innerhalb zumindest eines Bereichs von Tiefen aus dem Satz von Bereichen von Tiefen ist; und Umwandeln des Satzes von BP-Objektfragmenten und des Satzes von MP-Objektfragmenten in einen Satz von Pixeln in einem Bildkoordinatensystem, das zumindest einen Teil des Bildes bildet.
-
Kurzbeschreibung der Zeichnungen
-
1A ist eine schematische Darstellung von beispielhaften Werkzeugen, die zum Bearbeiten eines Objekts verwendet werden, und eine herkömmliche Darstellung eines Teils eines Werkstücks;
-
1B ist eine schematische Darstellung eines abgetasteten Volumens, das durch Abtasten einer 2D-Form entlang eines gekrümmten Pfads bestimmt ist;
-
2A ist eine schematische Darstellung von einem von herkömmlichen unterschiedlichen Pfaden eines Werkzeugs;
-
2B ist eine schematische Darstellung von einem von herkömmlichen unterschiedlichen Pfaden eines Werkzeugs;
-
2C ist eine schematische Darstellung von einem von herkömmlichen unterschiedlichen Pfaden eines Werkzeugs;
-
3 ist eine schematische Darstellung eines herkömmlichen zusammengesetzten ADF, das ein bearbeitetes Werkstück darstellt;
-
4 ist eine schematische Darstellung des herkömmlichen Aufbereitens eines zusammengesetzten ADF durch Bildfolge-Strahlverfolgung;
-
5 ist eine schematische Darstellung einer herkömmlichen Grenzdarstellung eines Tetraeders;
-
6A ist eine schematische Darstellung des Simulierens von Bearbeitungen gemäß Ausführungsbeispielen der Erfindung;
-
6B ist eine schematische Darstellung des Simulierens von Bearbeitungen gemäß Ausführungsbeispielen der Erfindung;
-
6C ist eine schematische Darstellung des Simulierens von Bearbeitungen gemäß Ausführungsbeispielen der Erfindung;
-
7 ist ein Blockschaltbild eines Verfahrens zum Simulieren von Bearbeitungen gemäß Ausführungsbeispielen der Erfindung;
-
8 ist ein Blockschaltbild für ein Verfahren zum Aufbereiten einer Booleschen Überschneidung gemäß Ausführungsbeispielen der Erfindung;
-
9 ist ein Blockschaltbild eines Verfahrens zum Aufbereiten einer Booleschen Überschneidung gemäß Ausführungsbeispielen der Erfindung;
-
10 ist eine schematische Darstellung eines Tiefenbereichs eines Objekts;
-
11 ist ein Flussdiagramm eines Aufbereitungsprozesses gemäß einem Ausführungsbeispiel der Erfindung;
-
12 ist ein Flussdiagramm eines Aufbereitungsprozesses gemäß einem Ausführungsbeispiel der Erfindung;
-
13 ist eine schematische Darstellung einiger Elemente des Aufbereitungsprozesses; und
-
14 ist eine schematische Darstellung eines Computersystems gemäß einem Ausführungsbeispiel der Erfindung.
-
Beschreibung von Ausführungsbeispielen
-
Die Ausführungsbeispiele der Erfindung sehen ein Verfahren zum Simulieren einer numerisch gesteuerten (NC) Bearbeitung vor, z. B. Drehen, Bohren, Aufbohren, Räumen, Sägen, Formen, Aufreiben, Fräsen, Gewindeschneiden, Schleifen.
-
Typischerweise kann entweder das Objekt befestigt sein und nur das Werkzeug bewegt sich, oder das Werkzeug kann befestigt sein und nur das Objekt bewegt sich, oder beide bewegen sich wie beim Drehen mit einer Drehbank, bei der sich das Objekt dreht und das Werkzeug linear bewegt. Daher bezieht sich der Ausdruck ”Bewegung” auf die relative Bewegung zwischen dem Objekt und dem Werkzeug.
-
In dieser Beschreibung wird Fräsen als ein Beispiel für den Bearbeitungsvorgang verwendet. Es ist jedoch darauf hinzuweisen, dass die Erfindung in gleicher Weise auf andere Bearbeitungsvorgänge anwendbar ist.
-
6A–C illustrieren eine Realisierung hinter einigen Ausführungsbeispielen der Erfindung. 6A zeigt ein Verfahren zum Simulieren einer Bearbeitung 620 eines Modells 610 eines Objekts. Insbesondere ist das Modell 610 modifiziert durch einen Satz von abgetasteten Volumen 625, die eine Bewegung eines Werkzeugs darstellen, um ein bearbeitetes Objekts 630 zu simulieren. Jedoch hat die Anmelderin allgemein erkannt, dass für einige Anwendungen das Durchführen der Bearbeitung 620 unerwünscht ist. Beispielseise kann das Bearbeiten 620 versagen, wenn das abgetastete Volumen implizit mit einer impliziten Funktion dargestellt ist, z. B. einem Abstandsfeld, und das Modell des Objekts explizit dargestellt ist, z. B. mit einer Grenzdarstellung.
-
Die Anmelderin hat weiterhin erkannt, dass das Bearbeiten 620 vermieden werden kann durch Verwendung eines Vertreterobjekts 640, wie in 6B gezeigt ist. Beispielsweise kann das Vertreterobjekt dieselbe Oberflächendarstellung wie eine Oberfläche des abgetasteten Volumens haben. Zusätzlich oder alternativ kann das Vertreterobjekt eine Form haben, die vorteilhafter für die Bearbeitungssimulation ist als eine Form des Objekts. Somit wenden einige Ausführungsbeispiele der Erfindung den Satz von abgetasteten Volumen 625 an 650 auf das Vertreterobjekt, um ein bearbeitetes Vertreterobjekt 660 zu erzeugen.
-
Als Nächstes erzeugt, wie in 6C gezeigt ist, eine Boolesche Überschneidung 670 zwischen dem Modell des Objekts 610 und dem bearbeiteten Vertreterobjekt 660 ein Bild eines bearbeiteten Objekts 680, das ähnlich dem bearbeiteten Objekt 630 enthaltend geeignete Okklusionen aussieht. Darüber hinaus kann die Boolesche Überschneidung während des Aufbereitens des Modells des Objekts und des bearbeiteten Vertreterobjekts in das Bild ohne die Modifikation des Modells des Objekts bestimmt werden.
-
Demgemäß führen einige Ausführungsbeispiele der Erfindung anstelle des Durchführens der Bearbeitungssimulation des Modells des Objekts die Bearbeitungssimulation des Vertreterobjekts durch. Daher wird das Problem des Bearbeitens des Modells des Objekts reduziert auf die Bestimmung der Booleschen Überschneidung zwischen dem bearbeiteten Vertreterobjekt und dem Modell des Objekts.
-
Das Vertreterobjekt trennt das Modell des zu bearbeitenden Objekts von den Bearbeitungsbefehlen, d. h., dem Satz von abgetasteten Volumen. Eine derartige Trennung ermöglicht die Durchführung der Bearbeitungssimulation für beliebige Typen der Objekte mit unterschiedlichen Formen und Oberflächendarstellungen. Tatsächlich ermöglicht das Vertreterobjekt die Bearbeitungssimulation ohne vorheriges Vorsehen des Modells des Objekts. Darüber hinaus ermöglicht das Vertreterobjekt die Durchführung der Bearbeitungssimulation, um das bearbeitete Vertreterobjekt zu erzeugen und das bearbeitete Vertreterobjekt für verschiedene zu bearbeitende Objekte wiederzuverwenden.
-
Daher verringert die Verwendung des Vertreterobjekts die Kosten der Simulation, während die Anwendbarkeit und Flexibilität der Bearbeitungssimulation erweitert wird.
-
Verschiedene Darstellungen der Oberfläche des Modells des Objekts und der Oberfläche des Satzes von abgetasteten Volumen sind möglich. Beispielsweise können die Oberflächen eine explizite Darstellung haben, z. B. eine Grenzdarstellung, oder eine implizite Darstellung, z. B. die Verwendung eines Satzes von impliziten Funktionen. Der Satz von impliziten Funktionen kann implizite Funktionen enthalten, die ausgewählt sind aus einer Gruppe bestehend aus: einem Abstandsfeld, einem abgetasteten Abstandsfeld, einem adaptiv abgetasteten Abstandsfeld, einem zusammengesetzten, adaptiv abgetasteten Abstandsfeld, und Kombinationen von diesen.
-
Bei einigen Ausführungsbeispielen der Erfindung sind die Darstellung der Oberfläche des Modells des Objekts und die Darstellung der Oberfläche des Satzes von abgetasteten Volumen verschiedene Typen von Darstellungen. Bei einem alternativen Ausführungsbeispiel sind die Darstellung der Oberfläche des Modells des Objekts und die Darstellung der Oberfläche des Satzes von abgetasteten Volumen derselbe Typ von Darstellung.
-
Auch wird bei einigen Ausführungsbeispielen das Vertreterobjekt so bestimmt, dass eine Form des Vertreterobjekts zumindest eine Form des Modells des Objekts umschreibt. Die Form des Vertreterobjekts ist eine feste Form, z. B. rechteckig, kubisch und sphärisch. Andere Formen des Vertreterobjekts sind möglich.
-
Beispielsweise stellt bei einem Ausführungsbeispiel das Vertreterobjekt ein festes Objekt dar mit derselben Oberflächendarstellung wie der Darstellung der Oberfläche des abgetasteten Volumens, wobei eine Form des Vertreterobjekts zumindest eine Form des BP-Objekts umschreibt. Bei einer Variation dieses Ausführungsbeispiels hat das Vertreterobjekt eine rechteckige Form.
-
7 zeigt ein Blockschaltbild eines Verfahrens 700 zum Simulieren der Bearbeitung eines Objekts gemäß einigen Ausführungsbeispielen der Erfindung. Bei diesen Ausführungsbeispielen enthält die Bearbeitung die Bearbeitung des Objekts mit einer Bewegung des Werkzeugs. Das Objekt wird durch ein Grenzdarstellungs(BP)-Objekt 701 dargestellt, wobei das BP-Objekt eine Grenzdarstellung 714 einer Oberfläche des Objekts enthält. Die Bewegung wird durch einen Satz von abgetasteten Volumen 704 dargestellt, wobei der Satz von abgetasteten Volumen einen ersten Satz von impliziten Funktionen 711, die eine Oberfläche des Satzes von abgetasteten Volumen definieren, enthält. Jedoch ist dieses Ausführungsbeispiel nur für Veranschaulichungszwecke vorgesehen und nicht zur Beschränkung des Bereichs der Erfindung.
-
Am Anfang der Simulation der Bearbeitung des BP-Objekts 701 wird ein Vertreterobjekt 702 bestimmt 730, wobei ein zweiter Satz von impliziten Funktionen 712 eine Oberfläche des Vertreterobjekts definiert. Als Nächstes wird die Bearbeitung des Vertreterobjekts 702 mit dem Satz von abgetasteten Volumen 704 simuliert 740, um ein bearbeitetes Vertreter(MP)-Objekt 703 mit einem dritten Satz von impliziten Funktionen 713, die eine Oberfläche des MP-Objekts definieren, zu erzeugen. Eine Boolesche Überschneidung 705 zwischen dem MP-Objekt 703 und dem BP-Objekt 701 wird aufbereitet 750 in ein Bild 710. Typischerweise wird das Aufbereiten 750 aus einer Betrachtungsrichtung durchgeführt, wie einer Betrachtungsrichtung, die durch einen Strahl 706 illustriert ist. Das Bild 710 stellt ein bearbeitetes BP-Objekt dar, das aus der Betrachtungsrichtung 706 gesehen werden kann. Das Bild 710 kann in einem Speicher 720 zur Speicherung oder weiteren Verarbeitung gespeichert werden.
-
Das Verfahren 700 und/oder andere Ausführungsbeispiele der Erfindung werden durch einen Prozessor 799 durchgeführt. Ein ”Prozessor” oder eine ”zentrale Verarbeitungseinheit (CPU)” bezieht sich auf einen Computer oder eine Komponente eines Computers, der/die Softwarebefehle liest und ausführt. Wie für einen Fachmann offensichtlich ist, können Ausführungsbeispiele der Erfindung als ein System, Verfahren oder ein Computerprogrammprodukt verkörpert werden. Demgemäß können die Ausführungsbeispiele die Form eines gesamten Hardwareausführungsbeispiels, eines gesamten Softwareausführungsbeispiels (enthaltend Firmware, residente Software, Mikrocode, usw.) oder eines Ausführungsbeispiels, das Software- und Hardwareaspekte kombiniert, annehmen, die hier sämtlich allgemein als eine ”Schaltung”, ein ”Modul” oder ”System” bezeichnet werden können. Weiterhin kann die vorliegende Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren (d. h., computerverwendbaren) Medien mit darin verkörpertem computerverwendbarem Programmcode verkörpert sein kann.
-
Ein ”Computer” bezieht sich auf jede Vorrichtung, die in der Lage ist, eine strukturierte Eingabe anzunehmen, die strukturierte Eingabe gemäß vorgegebenen Regeln zu verarbeiten und Ergebnisse der Verarbeitung als Ausgang zu erzeugen. Beispiele eines Computers enthalten einen Computer; einen Universalcomputer; einen Supercomputer; einen Großrechner; einen Superminicomputer; einen Minicomputer; einen Arbeitsplatzrechner; einen Mikrocomputer; einen Server; ein interaktives Fernsehgerät; eine hybride Kombination aus einem Computer und einem interaktiven Fernsehgerät; und anwendungsspezifische Hardware zum Emulieren eines Computers und/oder von Software. Ein Computer kann einen einzelnen Prozessor oder mehrere Prozessoren haben, die parallel und/oder nicht parallel arbeiten können. Ein Computer bezieht sich auch auf zwei oder mehr Computer, die über ein Netz zum Übertragen oder Empfangen von Informationen zwischen den Computern verbunden sein können. Ein Beispiel für einen derartigen Computer enthält ein verteiltes Computersystem zum Verarbeiten von Informationen über durch ein Netz verbundene Computer.
-
Ein ”Speicher” oder ein ”computerlesbares Medium” bezieht sich auf jeden Speicher zum Speichern von Daten, auf die durch einen Computer zugreifbar ist. Beispiele enthalten eine Magnetplatte; eine optische Scheibe wie eine CD-ROM oder eine DVD; ein magnetisches Band; ein Speicherchip; und eine Trägerwelle, die zum Tragen von computerlesbaren elektronischen Daten verwendet wird, wie diejenigen, die zum Senden und Empfangen von E-Mails oder zum Zugriff zu einem Netz verwendet werden; und einen Computerspeicher, z. B. einen Speicher mit wahlfreiem Zugriff (RAM). Ein auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes geeigneten Mediums übertragen werden, enthaltend, aber nicht beschränkt auf drahtlos, Drahtleitung, optisches Faserkabel, HF, usw.
-
Ein Computerprogrammcode zum Durchführen von Operationen der vorliegenden Erfindung können in einer objektorientierten Programmierungssprache wie Java, Smalltalk, C++ oder dergleichen geschrieben werden. Jedoch kann der Computerprogrammcode zum Durchführen von Operationen der vorliegenden Erfindung auch in herkömmlichen prozedurorientierten Programmsprachen geschrieben sein, wie die ”C”-Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf dem Computer eines Benutzers, teilweise auf dem Computer des Benutzers als ein eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. In dem letztgenannten Fall kann der entfernte Computer mit dem Computer des Benutzers durch ein lokales Netzwerk (LAN) oder ein großflächiges Netzwerk (WAN) verbunden sein, oder die Verbindung kann zu einem externen Computer (z. B. durch das Internet unter Verwendung eines Interserviceproviders) hergestellt sein.
-
Das Vertreterobjekt 702 kann beispielsweise ein ADF eines rechteckigen Festkörpers sein, dessen Abmessungen größer als die Abmessungen des BP-Objekts 601 sind, wobei eine Form des Vertreterobjekts zumindest eine Form des BP-Objekts umschreibt. Im Allgemeinen bedeutet die Boolesche Überschneidung, dass ein Punkt nur auf der Grenze der Booleschen Überschneidung von zwei Objekten ist, wenn und nur wenn der Punkt auf der Grenze von einem Objekt und innerhalb des anderen Objekts ist. Das Innere der Booleschen Überschneidung der beiden Objekte ist der Bereich des Raums, der dem Innenbereich beider Objekte gemeinsam ist. Da das Vertreterobjekt größer als das BP-Objekt ist, ist der Bereich des Raums, der innerhalb beider Objekte ist, gleich dem Bereich des Raums, der innerhalb des b-rep-Objekts allein ist.
-
Das Aufbereiten 750 der Booleschen Überschneidung 705 zwischen dem BP-Objekt und dem MP-Objekt kann durch eine Anzahl von Verfahren durchgeführt werden. Die Auswahl des spezifischen Verfahrens kann beispielsweise von dem Typ der Darstellung der Oberfläche des BP-Objekts und des MP-Objekts abhängen.
-
8 zeigt ein Blockschaltbild eines Verfahrens zum Aufbereiten 750 gemäß einigen Ausführungsbeispielen der Erfindung. Die Oberfläche des BP-Objekts enthält BP-Objektfragmente 810 in einem Weltkoordinatensystem 805. In gleicher Weise enthält die Oberfläche des MP-Objekts MP-Objektfragmente 820, ebenfalls in dem Weltkoordinatensystem 805. Jedes BP-Objektfragment und MP-Objektfragment in dem Weltkoordinatensystem entspricht einem Pixel des Bildes 710 in einem Bildkoordinatensystem 815.
-
Ein Satz von BP-Objektfragmenten 835 innerhalb des MP-Objekts wird bestimmt 830. Ein BP-Objektfragment ist innerhalb des MP-Objekts, wenn das BP-Objektfragment auf der Oberfläche des MP-Objekts oder innerhalb des MP-Objekts ist. Anderenfalls ist das BP-Objektfragment außerhalb des MP-Objekts.
-
Da die Oberfläche des MP-Objekts implizit dargestellt ist, ist es möglich, einen Abstand 870 von dem BP-Objektfragment zu der Oberfläche des MP-Objekts zu bestimmen. Der Abstand wird in einem Weltkoordinatensystem 805 bestimmt. Ein Ausführungsbeispiel der Erfindung fügt das BP-Objektfragment in dem Satz von BP-Objektfragmenten 835 hinzu, wenn der Abstand 870 anzeigt, dass das BP-Objektfragment innerhalb des MP-Objekts ist. Anderenfalls ist das BP-Objektfragment außerhalb des MP-Objekts. Typischerweise zeigt ein Vorzeichen des Abstands 870 an, ob das BP-Objektfragment innerhalb oder außerhalb des MP-Objekts ist. Das Vorzeichen kann positiv oder negativ sein in Abhängigkeit von einer Definition der impliziten Funktion. Wenn der Abstand 870 null ist, ist das BP-Objektfragment auf der Oberfläche des MP-Objekts, d. h., innerhalb des MP-Objekts.
-
In gleicher Weise wird ein Satz von MP-Objektfragmenten 845 innerhalb des BP-Objekts bestimmt 840. Ein MP-Objektfragment ist innerhalb des BP-Objekts, wenn das MP-Objektfragment auf der Oberfläche des BP-Objekts oder innerhalb des BP-Objekts ist.
-
Da die Oberfläche des BP-Objekts explizit dargestellt ist, führt ein Ausführungsbeispiel der Erfindung die Bestimmung 840 in dem Bildkoordinatensystem 815 durch. Beispielsweise wird eine Tiefe 880 eines MP-Objektfragments in dem Bildkoordinatensystem bestimmt, und das MP-Objektfragment wird zu dem Satz von MP-Objektfragmenten 845 hinzugefügt, wenn die Tiefe 880 innerhalb zumindest eines Bereichs von Tiefen 885 innerhalb des BP-Objekts ist.
-
10 zeigt ein Beispiel für ein BP-Objekt 1001 in dem Bildkoordinatensystem. Abhängig von der Betrachtungsrichtung hat das BP-Objekt 1001 eine unterschiedliche Anzahl von inneren Tiefenbereichen. Beispielsweise sind für die Betrachtungsrichtung 1002 zwei Tiefenbereiche innerhalb des BP-Objekts vorhanden, d. h., ein Bereich 1003 und ein Bereich 1004. Für die Betrachtungsrichtung 1010 ist nur ein Tiefenbereich 1011 vorhanden.
-
Gemäß 8 werden der Satz von BP-Objektfragmenten 835 und der Satz von MP-Objektfragmenten 845 in einen Satz von Pixeln 860 in einem Bildkoordinatensystem, das zumindest einen Teil des Bildes 710 bildet, umgewandelt 850.
-
Bei einigen Ausführungsbeispielen kann das BP-Objektfragment außerhalb des MP-Objekts dem MP-Objektfragment entsprechen, das für die Aufbereitung der Booleschen Überschneidung geprüft werden sollte. Somit fügt ein Ausführungsbeispiel der Erfindung das BP-Objektfragment in einem Satz von bearbeiteten BP-Objektfragmenten 890 hinzu, wenn der Abstand anzeigt, dass das BP-Objektfragment außerhalb des MP-Objekts ist. Bei diesem Ausführungsbeispiel werden nur MP-Objektfragmente entsprechend BP-Objektfragmenten in dem Satz von bearbeiteten BP-Objektfragmenten für die Auswahl in den Satz von MP-Objektfragmenten geprüft. Eine Entsprechung zwischen dem MP-Objektfragment und dem BP-Objektfragment des Satzes von bearbeiteten BP-Objektfragmenten kann in dem Bildkoordinatensystem bestimmt werden. Beispielsweise setzt ein Ausführungsbeispiel ein Pixelkennzeichen in einem Hilfsgrafikpuffer für ein Pixel entsprechend dem BP-Objektfragment des Satzes von bearbeiteten BP-Objektfragmenten, derart, dass das Pixelkennzeichen die Entsprechung zwischen dem MP-Objektfragment und dem BP-Objektfragment bestimmt.
-
Bei einigen Ausführungsbeispielen wird das Aufbereiten 750 weiterhin beschleunigt durch Setzen eines Flächenkennzeichens für zumindest eine Fläche des BP-Objekts entsprechend dem BP-Objektfragment des Satzes von bearbeiteten Fragmenten, um zumindest eine bearbeitete Fläche zu erzeugen. Bei diesem Ausführungsbeispiel wird der Bereich von Tiefen innerhalb des BP-Objekts nur für die bearbeitete Fläche bestimmt.
-
Einige Ausführungsbeispiele der Erfindung verwenden ein doppeltes Etikettieren, d. h., Setzen sowohl der Pixelkennzeichen als auch der Flächenkennzeichen. Dieses doppelte Etikettieren beschleunigt in großem Maße die Aufbereitung, indem ermöglicht wird, Flächen und Pixel zu überspringen, bei denen gewiss ist, dass kein Fragment in dem Bild vorhanden sein kann, das von dem bearbeiteten Vertreterobjekt kommt.
-
9 zeigt ein Flussdiagramm eines Aufbereitungsprozesses 900 gemäß einem Ausführungsbeispiel der Erfindung. Im Schritt 910 werden BP-Objektfragmente auf einer Oberfläche des BP-Objekts in einem Weltkoordinatensystem bestimmt. Im Schritt 920 wird ein Satz von BP-Objektfragmenten innerhalb des MP-Objekts und im Schritt 930 ein Satz von bearbeiteten BP-Objektfragmenten außerhalb des MP-Objekts in dem Weltkoordinatensystem bestimmt. Im Schritt 940 wird ein Satz von bearbeiteten Flächen des BP-Objekts in einem Bildkoordinatensystem bestimmt, derart, dass jede bearbeitete Fläche zumindest einem BP-Objektfragment in dem Satz von bearbeiteten BP-Objektfragmenten entspricht. Und im Schritt 950 wird ein Satz von Tiefenbereichen innerhalb des BP-Objekts in dem Bildkoordinatensystem bestimmt, wobei zumindest ein Tiefenbereich für zumindest eine bearbeitete Fläche bestimmt wird.
-
Auch werden im Schritt 960 MP-Objektfragmente auf der Oberfläche des MP-Objekts in dem Weltkoordinatensystem bestimmt. Im Schritt 970 werden MP-Objektfragmente entsprechend BP-Objektfragmenten in dem Satz von bearbeiteten BP-Objektfragmenten in dem Bildkoordinatensystem bestimmt. Als Nächstes wird im Schritt 980 ein Satz von MP-Objektfragmenten bestimmt durch Hinzufügen eines entsprechenden MP-Objektfragments in dem Satz von MP-Objektfragmenten, wenn eine Tiefe des entsprechenden MP-Objektfragments in dem Bildkoordinatensystem innerhalb zumindest eines Tiefenbereichs aus dem im Schritt 950 bestimmten Satz von Tiefenbereichen ist. Als Nächstes werden im Schritt 990 der Satz von BP-Objektfragmenten und der Satz von MP-Objektfragmenten in einen Satz von Pixeln in einem Bildkoordinatensystem, das zumindest einen Teil des Bildes bildet, umgewandelt.
-
Ausführungsbeispiel
-
Die 11–12 zeigen Flussdiagramme eines spezifischen, aber nicht als beschränkend anzusehenden Aufbereitungsprozesses in ein Bild gemäß einem Ausführungsbeispiel der Erfindung. Das Bild wird auf einem Schirm einer Anzeigevorrichtung mit einem Schirmkoordinatensystem dargestellt. Das Aufbereiten erfolgt in zwei Phasen. In der ersten Phase wird das BP-Objekt so aufbereitet, dass jedes BP-Fragment des BP-Objekts mit einer Weltraumposition außerhalb des MP-Objekts nicht zu einem Grafikpuffer des Bilds hinzugefügt wird. In der zweiten Phase wird das Aufbereiten des MP-Objekts nur für solche Pixel entsprechend BP-Objektfragmenten außerhalb des MP-Objekts durchgeführt, d. h., aus dem Satz von bearbeiteten BP-Fragmenten.
-
11 zeigt ein Flussdiagramm der ersten Phase des Aufbereitens. Während der ersten Phase wird das Verfahren über alle Flächen des BP-Objekts wiederholt 1101. Jede Fläche wird aus dem Weltkoordinatensystem in das Schirmkoordinatensystem projiziert 1102 und dann gerastert 1103, um ein Fragment entsprechend einem Ort eines Pixels in dem Bild zu bestimmen. Jedes Fragment, das während der Rasterung 1103 erzeugt wird, wird einer z-Pufferprüfung 1104 unterzogen, um eine Sichtbarkeit des Fragments zu bestimmen. Als Nächstes werden Koordinaten der Fragmente in dem Schirmkoordinatensystem in Koordinaten der BP-Fragmente in dem Weltkoordinatensystem zurücktransformiert 1105. Der Wert des Abstandsfelds des MP-Objekts wird bestimmt und geprüft 1106 für Koordinaten der BP-Fragmente in dem Weltkoordinatensystem. Wenn das Vorzeichen des Abstandsfelds anzeigt, dass das BP-Fragment innerhalb des MP-Objekts ist, dann ist das Fragment auf der Grenze der Booleschen Überschneidung des BP-Objekts und des MP-Objekts. Daher werden die Farbe und der z-Wert des BP-Fragments des BP-Objekts in den Farb- bzw. den Z-Puffer geschrieben 1107. Wenn das Vorzeichen des Abstandsfelds des MP-Objekts anzeigt, dass das BP-Fragment außerhalb des MP-Objekts ist, werden die Farbe und der z-Wert des BP-Fragments nicht berechnet oder zu dem Farb- und dem z-Puffer hinzugefügt.
-
Jedoch ist es möglich, wenn das BP-Fragment außerhalb des MP-Objekts ist, dass die Oberfläche, die für dieses Pixel dargestellt werden sollte, dem MP-Objekt entspricht. Daher werden zwei Kennzeichen für ein Pixel entsprechend dem äußeren BP-Fragment gesetzt 1108. Im Speziellen ist ein Flächenkennzeichen mit jeder Fläche des BP-Objekts, die das externe BP-Fragment enthält, assoziiert. Auch wird ein Pixelkennzeichen in einem Hilfsgrafikpuffer für jedes Pixel, das dem äußeren BP-Fragment entspricht, gesetzt. Das Pixelkennzeichen zeigt an, dass für dieses Pixel das MP-Objekt auf der Grenze der Booleschen Überschneidung des BP-Objekts und des MP-Objekts sein kann. Beide Kennzeichen werden während der zweiten Phase des Aufbereitens verwendet. Das Flächenkennzeichen und das Pixelkennzeichen besetzen zwei komplementäre Räume des Aufbereitens: Das Flächenkennzeichen ist eine Objektetikettierung und das Pixelkennzeichen ist eine Bildetikettierung. Diese doppelte Raumetikettierung beschleunigt in großem Maße das Aufbereiten, indem ermöglicht wird, dass die Flächen und die Pixel übersprungen werden, bei denen es gewiss ist, dass dort kein Fragment in dem Bild vorhanden ist, das von dem MP-Objekt kommt.
-
Während der ersten Phase des Aufbereitens speichert das Ausführungsbeispiel auch, zumindest vorübergehend, den z-Wert der äußeren BP-Fragmente in einem z-Hilfspuffer, um eine korrekte Okklusion zu erhalten. Beispielsweise kann die Rasterung 1103 verschiedene Flächen des BP-Objekts BP-Fragmente erzeugen, die demselben Pixel des Bilds entsprechen. Einige, aber nicht notwendigerweise alle dieser BP-Fragmente können außerhalb des MP-Objekts sein. Jedoch kann eine Fläche, die früh gerastert wurde, das äußere BP-Fragment für ein gegebenes Pixel enthalten. Dies führt dazu, dass das Pixelkennzeichen für dieses Pixel gesetzt wird. Ein BP-Fragment einer Fläche, die später gerastert wird, kann das BP der früher gerasterten Fläche aufheben, und somit muss das Pixelkennzeichen für dieses Pixel gelöscht werden.
-
Beispielsweise wird gemäß 13 eine Fläche 1310 früher als eine Fläche 1311 aufbereitet und, wenn sie aus der durch den Pfeil 1312 angezeigten Richtung betrachtet wird, wird ein BP-Fragment 1313 erzeugt. Jedoch ist das BP-Fragment 1313 außerhalb des MP-Objekts 1314, dessen Außenseite durch das Punktmuster angezeigt ist. Daher ist das BP-Fragment 1313 außerhalb der Booleschen Überschneidung des BP-Objekts und des MP-Objekts und trägt nicht zu dem Bild bei.
-
Ein BP-Fragment 1315 wird aus einer Fläche 1311 erzeugt und ist innerhalb des MP-Objekts 1314 und hat auch ein niedrigeres z als das BP-Fragment 1313, so dass das Fragment sichtbar ist und zu dem Grafikpuffer hinzugefügt wird.
-
Der z-Hilfspuffer wird verwendet, um den Fall der Fläche 1311 von dem der Fläche 1316 zu unterscheiden. Die Rasterung der Fläche 1316 erzeugt das Fragment 1317, das auch innerhalb des MP-Objekts ist, so wie es das BP-Fragment 1313 ist, und ist daher potentiell sichtbar. Jedoch besteht in dem Fall des Fragments 1316 keine Möglichkeit, dass das Fragment des MP-Objekts sichtbar ist, da das MP-Objekt durch die Fläche 1311 okkludiert ist. Jedoch ist es noch möglich, dass das MP-Objekt ein Pixel beiträgt, das die Fläche 1316 okkludiert.
-
Gemäß jeweils 11 und 13 wird der z-Wert des äußeren BP-Fragments 1313 gegen den in dem z-Hilfspuffer 1109 gespeicherten Wert z-geprüft. Wenn der z-Wert des BP-Fragments kleiner als der gespeicherte Wert ist, ersetzt 1110 der z-Wert des BP-Fragments 1313 den gespeicherten z-Wert. Ein nächstes inneres BP-Fragment 1315 wird gegen den Wert in dem z-Hilfspuffer z-geprüft 1111. Wenn der z-Wert des Fragments 1315 kleiner als der gespeicherte z-Wert ist, z. B. des BP-Fragments 1313, wird der z-Wert des Fragments 1315 sowohl in dem z-Standardpuffer als auch in dem z-Hilfspuffer gespeichert, die Farbe des BP-Fragments 1315 wird bestimmt und in dem Farbpuffer gespeichert, und das Pixelkennzeichen wird gelöscht 1312.
-
Alternativ wird ein nächstes inneres BP-Fragment wie das BP-Fragment 1317 gegen den Wert in dem z-Hilfspuffer z-geprüft 1111, der in diesem Beispiel den z-Wert des Fragments 1313 hat. Da der z-Wert des Fragments 1317 größer als der z-Wert in dem z-Hilfspuffer ist, wird der z-Wert des Fragments 1317 nur in dem z-Standardpuffer gespeichert, und die Farbe des Fragments 1317 wird bestimmt und in dem Farbpuffer gespeichert. Der z-Wert des Fragments 1317 wird nicht in den z-Hilfspuffer geschrieben und das Pixelkennzeichen wird nicht gelöscht. Bei einem Ausführungsbeispiel werden, nachdem die erste Phase der Aufbereitung beendet ist, die Werte des sekundären z-Puffers verworfen.
-
Während der zweiten Phase des Aufbereitens des BP-Objekts und des MP-Objekts bestimmen einige Ausführungsbeispiele Bereiche von z-Werten, die innerhalb des BP-Objekts sind, nachfolgend als ein Tiefenbereich innerhalb des BP-Objekts bezeichnet. Das Aufbereiten des MP-Objekts wird für Pixel mit dem gesetzten Pixelkennzeichen durchgeführt. Wenn der z-Wert eines MP-Fragments des MP-Objekts für ein Pixel innerhalb zumindest eines Tiefenbereichs innerhalb des BP-Objekts ist, dann ist das MP-Fragment auf der Grenze der Booleschen Überschneidung des BP-Objekts und des MP-Objekts, und die Farbe des MP-Fragments wird bestimmt und in dem Farbpuffer gespeichert.
-
Wie in 10 gezeigt ist, kann das BP-Objekt 1001 abhängig von der Form des BP-Objekts 1001 und der Betrachtungsrichtung einen oder mehrere Tiefenbereiche haben. Beispielsweise gibt es bei Betrachtung aus der Betrachtungsrichtung 1002 zwei Tiefenbereiche innerhalb des BP-Objekts, d. h., den Tiefenbereich 1003 und den Tiefenbereich 1004, die hier gemeinsam als ein Satz von Tiefenbereichen bezeichnet werden. Für jede Fläche mit dem Flächenkennzeichen und für jedes Pixel auf dieser Fläche mit dem Pixelkennzeichen wird der Tiefenbereich bestimmt, der einen Satz von Tiefenbereichen innerhalb des BP-Objekts bildet. Beispielsweise speichert für die Tiefenbereiche 1003 und 1004 ein Ausführungsbeispiel vier z-Werte: den ersten z-Wert für den Eintritt in den Bereich 1003, einen zweiten Wert für den Austritt aus dem Bereich 1003, einen dritten Wert für den Eintritt in den Bereich 1004, einen vierten Wert für den Austritt aus dem Bereich 1004.
-
Die Anzahl von z-Werten, die für jedes Pixel gespeichert werden müssen, ist gleich dem Zweifachen der Anzahl von Tiefenbereichen. Jedoch kann das BP-Objekt mehrere dünne Segmente enthalten, wie Zähne an einem Kamm, derart, dass für einige Betrachtungsrichtungen die Anzahl der Tiefenbereiche sehr groß ist. In derartigen Situationen können die Anforderungen an das Speichern sämtlicher z-Werte untragbar groß sein und können nicht vorhergesagt werden.
-
Daher verwendet ein Ausführungsbeispiel der Erfindung ein Mehrwegverfahren, das die Tiefenbereiche des BP-Objekts nacheinander in der Reihenfolge von vorn nach hinten verarbeitet. Das Verfahren erfordert vier zusätzliche z-Puffer zu dem z-Standardpuffer. Ein Paar von zusätzlichen z-Puffern speichert den Eintritts- und den Austritts-z-Wert für einen gegenwärtigen Tiefenbereich, und das zweite Paar von zusätzlichen z-Puffern speichert den Eintritts- und den Austritts-z-Wert für einen vorhergehenden Tiefenbereich. Das Verfahren wird für die Tiefenbereiche in der Reihenfolge von vorn nach hinten wiederholt, indem gefordert wird, dass der gegenwärtige Eintritts-z-Wert größer als der vorhergehende Austritts-z-Wert ist.
-
Zusätzlich muss der gegenwärtige Austritts-z-Wert größer als der gegenwärtige Eintritts-z-Wert sein. Jedoch ist dieses ein wesentliches Merkmal einer gut gebildeten Grenzdarstellung, dass immer ein Austritts-z-Wert vor dem nächsten Eintritts-z-Wert vorhanden ist, um eine unannehmbare topologische Mehrdeutigkeit zu vermeiden. Nachfolgend werden die vier zusätzlichen z-Puffer als ein vorhergehender vorderer, ein vorhergehender hinterer, ein gegenwärtiger vorderer und ein gegenwärtiger hinterer bezeichnet.
-
Gemäß 12 werden während eines Initialisierungsschritts die Werte jedes Pixels in dem vorhergehenden vorderen z-Puffer und dem gegenwärtigen vorderen z-Puffer auf 0, 0 gesetzt 1201, und die Werte für jedes Pixel in dem vorhergehenden hinteren z-Puffer und dem gegenwärtigen hinteren z-Puffer werden auf 1, 0 gesetzt 1202. Als Nächstes wird das Verfahren wiederholt 1203 über die Flächen des BP-Objekts, und jede Fläche des BP-Objekts mit einem gesetzten Flächenkennzeichen 1204 wird in das Schirmkoordinatensystem projiziert 1205 und gerastert 1206.
-
Die Rasterung der Fläche überspringt alle Pixel, bei denen das Pixelkennzeichen nicht gesetzt ist 1207. Für jedes BP-Fragment einer Fläche des BP-Objekts, bei dem das Pixelkennzeichen gesetzt ist, wird eine z-Prüfung durchgeführt 1208, um zu bestimmen, ob das BP-Fragment durch das Pixel in dem Grafikpuffer okkludiert ist. Wenn das BP-Fragment einen größeren z-Wert als den Wert in dem z-Standardpuffer hat, wird das BP-Fragment okkludiert und erfordert keine zusätzliche Verarbeitung. Wenn alle BP-Fragmente, die mit der Fläche assoziiert sind, okkludiert sind, dann wird das Flächenkennzeichen gelöscht und die Fläche wird nicht wieder verarbeitet.
-
Als Nächstes wird ein Normalvektor der Fläche aus dem Kreuzprodukt eines Paares von Vektoren entlang zweier Kanten der Fläche bestimmt. Der Normalvektor wird transformiert unter Verwendung der Betrachtungsmatrix, und ein Vektorpunktprodukt zwischen der Betrachtungsrichtung und dem Normalvektor der Fläche wird berechnet, um die Orientierung 1209 der Fläche zu bestimmen, d. h., ob die Fläche nach vorn oder nach hinten orientiert ist. Wenn das Punktprodukt positiv ist, ist die Fläche von der Betrachtungsrichtung weg orientiert und eine nach hinten gewandte Fläche, anderenfalls ist die Fläche nach vorn gewandt. Der z-Wert jedes BP-Fragments einer nach vorn gewandten Fläche wird verglichen 1210 mit den Werten in sowohl dem vorhergehenden vorderen z-Puffer als auch dem gegenwärtigen vorderen z-Puffer. Wenn der z-Wert des BP-Fragments größer als der Wert des vorhergehenden vorderen z-Puffers und kleiner als der Wert in dem gegenwärtigen vorderen z-Puffer ist, dann wird der z-Wert in dem gegenwärtigen vorderen z-Puffer gespeichert 1211. Wenn alle Fragmente einer vorderen Fläche einen z-Wert haben, der kleiner als der oder gleich dem Wert in dem vorhergehenden vorderen z-Puffer ist, dann wird das Flächenkennzeichen gelöscht und die Fläche wird nicht wieder verarbeitet.
-
Der z-Wert jedes nach hinten gewandten Fragments wird mit den z-Werten sowohl in dem vorhergehenden hinteren z-Puffer als auch dem gegenwärtigen hinteren z-Puffer verglichen. Wenn der z-Wert des Fragments größer als der Wert in dem vorhergehenden z-Puffer und kleiner als der Wert in dem gegenwärtigen hinteren z-Puffer ist, dann wird der z-Wert des BP-Fragments in dem gegenwärtigen hinteren z-Puffer gespeichert 1213. Wenn alle Fragmente einer rückwärts gewandten Fläche einen z-Wert haben, der kleiner als der oder gleich dem Wert in dem vorhergehenden hinteren z-Puffer ist, dann wird das Flächenkennzeichen für diese Fläche gelöscht und die Fläche wird nicht wieder verarbeitet.
-
Nachdem der Satz von Tiefenbereichen für alle Pixel, bei denen das Pixelkennzeichen gesetzt ist, bestimmt ist, wird die Aufbereitung des MP-Objekts für solche Pixel durchgeführt, aus denen sich MP-Fragmente aus dem MP-Objekt ergeben. Die Aufbereitung wird für die Pixel in dem Hilfsgrafikspeicher wiederholt 1214, und für jedes Pixel, für das das Pixelkennzeichen gesetzt ist 1215, wird die Überschneidung 1216 eines Strahls mit dem MP-Objekt berechnet, wodurch sich ein Satz von MP-Fragmenten des MP-Objekts ergibt. Jedes MP-Fragment des MP-Objekts wird gegen das innere Intervall z-geprüft 1217. Wenn der z-Wert für ein MP-Fragment innerhalb des Tiefenbereichs ist, d. h., der z-Wert des Fragments größer als der z-Wert in dem gegenwärtigen vorderen z-Puffer und kleiner als der z-Wert in dem gegenwärtigen hinteren z-Puffer ist, ist das MP-Fragment auf der Grenze der Booleschen Überschneidung des BP-Objekts und des MP-Objekts. Daher wird die Farbe des MP-Fragments berechnet und die Farbe und der z-Wert des MP-Fragments werden jeweils in dem Farbpuffer bzw. dem z-Standardpuffer gespeichert 1218, und das Pixelkennzeichen wird gelöscht 1219. Wenn alle Pixelkennzeichen in dem Hilfspuffer gelöscht wurden, ist die Aufbereitung des Bildes beendet.
-
Jedoch werden, wenn irgendwelche Pixelkennzeichen in dem Hilfspuffer vorhanden sind, die noch gesetzt sind, nachdem das MP-Objekt aufbereitet ist, die z-Werte in dem gegenwärtigen vorderen z-Puffer und dem gegenwärtigen hinteren z-Puffer in den vorhergehenden vorderen z-Puffer bzw. den vorhergehenden z-Puffer kopiert, und der gegenwärtige vordere z-Puffer und der gegenwärtige hintere z-Puffer werden auf 1, 0 gesetzt zur Verwendung bei der Bestimmung des nächsten Tiefenbereichs innerhalb des BP-Objekts. Dieser Vorgang des Bestimmens des aufeinanderfolgenden Tiefenbereichs nachfolgend der Aufbereitung des MP-Objekts wird wiederholt, bis keine Pixelkennzeichen mehr gesetzt sind 1220.
-
14 zeigt eine schematische Darstellung eines Computersystems gemäß einigen Ausführungsbeispielen der Erfindung. Der Satz von Bearbeitungsbefehlen 1401 wird zu einer NC-Bearbeitungssteuervorrichtung 1402 geliefert, entweder als eine Datei über ein Netzwerk, von einer CD oder DVD, oder durch andere bekannte Mittel. Die Steuervorrichtung 1402 enthält einen Prozessor 1403, einen Speicher 1404 und eine Anzeigevorrichtung 1405, um die Arbeitsweise der Maschine zu zeigen. Auf dem Prozessor läuft ein Bearbeitungssimulator 1406, der die Fräsbefehle 1001 empfangen hat und das Verfahren nach dieser Erfindung anwendet 1450, um ein Bild des simulierten Werkstücks auf der Anzeigevorrichtung 1405 zu erzeugen 1407.
-
Derartige Computer können durch ein oder mehrere Netze in einer geeigneten Form miteinander verbunden sein, enthaltend ein lokales Netz oder ein weiträumiges Netz wie ein Gesellschaftsnetz oder das Internet. Derartige Netze können auf jeder geeigneten Technologie basieren und gemäß jedem geeigneten Protokoll operieren, und sie können drahtlose Netze, verdrahtete Netze oder Faseroptiknetze enthalten.
-
Auch können die hier umrissenen, verschiedenen Verfahren oder Prozesse als Software codiert sein, die mit einem oder mehreren Prozessoren ausführbar ist, die irgend eine von verschiedenen Operationssystemen oder Plattformen verwenden. Zusätzlich kann eine derartige Software unter Verwendung irgendeiner von einer Anzahl von geeigneten Programmiersprachen und/oder Programmier- oder Schriftwerkzeugen geschrieben sein, und kann auch als ausführbarer Maschinensprachcode oder Zwischencode zusammengestellt sein, der auf einem Rahmenwerk oder einer virtuellen Maschine ausgeführt wird.
-
In dieser Hinsicht kann die Erfindung als ein computerlesbares Speichermedium oder mehrere computerlesbare Medien verkörpert sein, z. B. einen Computerspeicher, Kompaktscheiben (CD), optische Scheiben, digitale Videoscheiben (DVD), Magnetbänder und Flashspeicher. Alternativ oder zusätzlich kann die Erfindung als ein computerlesbares Medium verkörpert sein, das ein anderes als ein computerlesbares Speichermedium ist, wie ein sich fortpflanzendes Signal.
-
Die Begriffe ”Programm” oder ”Software” werden hier in einem verallgemeinernden Sinn verwendet, um sich auf jeden Typ von Computercode oder Satz von computerausführbaren Befehlen zu beziehen, die verwendet werden können, um einen Computer oder anderen Prozessor verwendet werden können, um verschiedene Aspekte der vorstehend diskutierten Erfindung zu realisieren.
-
Computer-ausführbare Befehle können in vielen Formen sein, wie Programmmodulen, ausgeführt durch einen oder mehrere Computer oder andere Vorrichtungen. Im Allgemeinen enthalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen, die besondere Aufgaben durchführen oder besondere abstrakte Datentypen implementieren. Typischerweise kann die Funktionalität der Programmmodule wie gewünscht in verschiedenen Ausführungsbeispielen kombiniert oder verteilt sein.
-
Auch können die Ausführungsbeispiele der Erfindung als ein Verfahren verkörpert sein, von dem ein Beispiel gegeben wurde. Die als Teil des Verfahrens durchgeführten Aktionen können in jeder geeigneten Weise geordnet sein. Demgemäß können Ausführungsbeispiele gebildet sein, in denen Aktionen in einer Folge durchgeführt werden, die verschieden von der illustrierten ist, die die gleichzeitige Durchführung einiger Aktionen enthalten kann, obgleich sie in veranschaulichenden Ausführungsbeispielen als aufeinanderfolgende Aktionen gezeigt sind.
-
Die Ausführungsbeispiele der Erfindung sind mit Bezug auf Flussdiagrammdarstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukte beschrieben. Es ist darauf hinzuweisen, dass jeder Block der Flussdiagrammdarstellungen und/oder Blockschaltbilder sowie Kombinationen von Blöcken in der Flussdiagrammdarstellungen und/oder Blockschaltbildern durch Computerprogrammbefehle realisiert werden können. Diese Computerprogrammbefehle können zu einem Prozessor eines Universalcomputers, eines Computers für einen speziellen Zweck oder zu anderen programmierbaren Datenverarbeitungsvorrichtungen geliefert werden, um eine Maschine zu erzeugen, derart, dass die Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Realisieren der Funktionen/Aktionen, die in dem Flussdiagramm und/oder Blockschaltbildblock oder -blöcken bestimmt sind, zu schaffen.
-
Die Computerprogrammbefehle können auch in einen Computer oder andere programmierbare Datenverarbeitungsvorrichtungen geladen werden, um zu bewirken, dass eine Reihe von Operationsschritten in dem Computer oder der anderen programmierbaren Vorrichtung durchgeführt werden, um einen computerimplementierten Progress in der Weise zu erzeugen, dass die Befehle, die in dem Computer oder der anderen programmierbaren Vorrichtung durchgeführt werden, Schritte zum Implementieren der Funktionen/Aktionen, die in dem Flussdiagramm und/oder Blockschaltbildblock oder -blöcken bestimmt sind, zu implementieren.
-
Wirkung der Erfindung
-
Ausführungsbeispiele der Erfindung beschreiben ein System, ein Computerprodukt und ein Verfahren zum Simulieren der Bearbeitung eines Objekts. Ausführungsbeispiele ermöglichen die Bearbeitungssimulation eines Modells eines Objekts ohne Modifizieren des Modells selbst. Weiterhin ermöglichen die Ausführungsbeispiele durch Einführung eines anstelle des Modells des Objekts zu bearbeitenden Vertreterobjekts die Bearbeitungssimulation eines Objekts, das einen Typ von Oberflächendarstellung hat, mit einem Satz von abgetasteten Volumen, die einen anderen Typ von Oberflächendarstellung haben.
-
Gewerbliche Anwendbarkeit
-
Das System und Verfahren und Computerprogrammprodukt nach dieser Erfindung sind auf vielen Arten von Feldern anwendbar.