DE68909094T2 - Modellierung eines Festkörpers. - Google Patents
Modellierung eines Festkörpers.Info
- Publication number
- DE68909094T2 DE68909094T2 DE1989609094 DE68909094T DE68909094T2 DE 68909094 T2 DE68909094 T2 DE 68909094T2 DE 1989609094 DE1989609094 DE 1989609094 DE 68909094 T DE68909094 T DE 68909094T DE 68909094 T2 DE68909094 T2 DE 68909094T2
- Authority
- DE
- Germany
- Prior art keywords
- representation
- logic
- space
- construction
- surface area
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 239000007787 solid Substances 0.000 title claims description 43
- 238000010276 construction Methods 0.000 claims description 65
- 238000000034 method Methods 0.000 claims description 25
- 230000035515 penetration Effects 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 21
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims description 2
- 239000013598 vector Substances 0.000 description 45
- 239000002131 composite material Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
Landscapes
- Physics & Mathematics (AREA)
- Geometry (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Description
- Die vorliegende Erfindung befaßt sich mit dem Modellieren eines Festkörpers und betrifft insbesondere die Festkörperdarstellung eines Objekts.
- Gemäß einer Festkörpermodellierungstechnik, im allgemeinen "Constructive Solid Geometry" [Konstruktive Festkörpergeometrie] oder auch CSG genannt, wird ein dreidimensionales (3-D) Festkörperobjekt in einem Rechner oder dergl. durch eine Boolesche Funktion dargestellt, die bei Berechnung für einen Punkt innerhalb des Objekts ein "Wahr" und sonst ein "Falsch" ausgibt. Die CSG-Technik kann den Begrenzungstechniken gegenübergestellt werden, bei denen die Oberfläche eines Objekts definiert wird anstatt sein Volumen.
- Festkörpermodellierungssysteme auf der Grundlage der CSG- Technik weisen Modellierungssysteme auf der Grundlage der Grenzendarstellungen, oder "B-Reps" (Boundary representations) wie sie allgemein bekannt sind, gegenüber gewisse Vorteile auf. Sobald ein Objekt in einem Festkörpermodellierungssystem einmal definiert ist, muß die Funktion nur mehr für einem bestimmten Punkt ausgewertet werden, um zu bestimmen, ob dieser Punkt innerhalb oder außerhalb des Festkörpers liegt. Im Falle eines B-Rep-Systems ist es viel schwieriger, festzustellen, ob ein Punkt innerhalb oder außerhalb eines Objekts liegt, das in der Form seiner Grenzen anstatt als Volumen definiert ist. Aus diesem Grund können Systeme, die die Grenztechnik allein anwenden, kein "Festkörpermodellieren" von Objekten im Sinne der vorliegenden Abhandlung liefern.
- Einer der Hauptvorteile des B-Rep-Systems ist es, daß die Generierung einer Darstellung eines Objekts verhältnismäßig direkt ist. Es ist im wesentlichen eine Frage der Bestimmung der Oberflächen, die ein Objekt ausmachen, der Kanten, die die Oberflächen begrenzen, und der Punkte, die die Kanten bestimmen, sowie das Aufstellen einer Baumstruktur, um diese Informations-Bits miteinander zu verknüpfen. Obwohl für ein großes Objekt eine ganze Menge Daten ins Spiel kommen und daher eine große Menge von Einzelschritten beim Aufbau der Darstellung nötig sind, sind die Einzelschritte einfach und direkt für die Automatisierung geeignet.
- Als Vergleich hierzu ist die Generierung einer Darstellung vom CSG-Typ, nachstehend "Festkörperdarstellung" genannt, viel schwieriger, insbesondere bei Objekten, die komplexe oder frei gebildete Formen haben. Es ist nämlich die Generierung eines Ausdrucks, der das Volumen eines Objekts definiert, die den Hauptnachteil eines Festkörpermodellierungssystems bildet wegen der Notwendigkeit zu definieren, was innerhalb und was außerhalb eines Objekts liegt.
- In einem CSG-System werden zusammengesetzte Objekte definiert durch die Kombination der funktionellen Darstellungen von grundlegenden Festkörperobjekten oder "Darstellungselementen" wie Halbräume (d.i. der Raum auf einer Seite einer unendlichen Ebene) und möglicherweise auch Kugeln, unendliche Zylinder usw. Die dreidimensionale Körperdarstellung eines Tetraeders kann z.B. aus einem Ausdruck gebildet werden, der festgelegte Durchdringungsoperatoren beinhaltet, die vier geeignete Halbräume kombinieren. Jeder dieser Halbräume hat die gleiche Erstreckung wie eine entsprechende Fläche des Tetraeders und ist ein Festkörper auf der Seite, die der Innenseite des Tetraeders entspricht. Die CSG-Darstellung für andere dreidimensionale Objekte kann auch andere gesetzte Operatoren enthalten wie Vereinigung, Symmetriedifferenzen und Subtraktionsoperatoren. Mit einem gesetzten Subtraktionsoperator ist es z.B. möglich, ein zusammengesetztes Objekt mit einem Ausschnitt oder einem Loch zu definieren. Auf diese Weise können hohle, zusammengesetzte Objekte definiert werden durch Subtraktion eines Objekts von einem größeren. Solche zusammengesetzten Objekte sind "dreidimensional" im Sinne der vorliegenden Unterlage, weil die Darstellung des Objekts für einen bestimmten Punkt im Raum ausgewertet werden kann zwecks Bestimmung, ob er innerhalb oder außerhalb des Objekts liegt.
- Ein zusammengesetztes CSG-Objekt, das aus Darstellungselementen gebildet wird, ist typisch definiert in Form einer Struktur, die den logischen Ausdruck für die Kombination der Darstellungselemente bedeutet, und beinhaltet einen Satz miteinander verknüpfter Knoten (z.B. als Baumstruktur), wobei die Darstellungselemente an ersten Knoten (z.B. Blattknoten des Baums), die Operatoren an zweiten oder Zwischenknoten definiert werden, um die durchzuführenden Kombinationsoperationen zu identifizieren, die zur Konstruktion des Objekts aus den Darstellungselementen und/oder aus den an Knoten niederer Ordnung definierten Teilobjekten in der Struktur erforderlich sind, und das zusammengesetzte Objekt an einem geeigneten der Operatorknoten (z.B. der Wurzel des Baums) definiert wird.
- In der Realität sind die zu modellierenden Körper natürlich viel komplizierter als der oben genannte Tetraeder und dementsprechend ist es sehr schwierig, die Darstellungselemente und gesetzten Operatoren zur korrekten Generierung einer Festkörperdarstellung eines Objekts zu identifizieren. Aus diesen Gründen war die Generierung einer dreidimensionalen Darstellung eines Objekts bis heute ein sehr zeitaufwendiger Prozeß, der einen hohen Grad von Eingriffen durch den Anwender voraussetzt.
- Aufgabe der vorliegenden Erfindung ist es daher, die Generierung einer funktionellen Darstellung eines dreidimensionalen Objekts zu ermöglichen.
- Gemäß einem ersten Aspekt der vorliegenden Erfindung ist vorgesehen ein Objektdefinitionsgenerator für ein dreidimensionales Modellierungssystem, wobei der Generator eine Objektdefinitionslogik zum Bilden der dreidimensionalen Darstellung eines Objekts als Symmetriedifferenz der Konstruktionsfestkörper enthält, die sich auf die entsprechenden Oberflächenbereiche des Objekts gründen und definiert sind im Hinblick auf ein gemeinsames Datum im Objektraum, wobei die Objektdefinitionslogik umfaßt: Eine Darstellungselementdefinitionslogik zum Definieren eines Darstellungselements für jeden Oberflächenbereich auf der Grundlage des Oberflächenbereichs selbst, und Konstruktions-Darstellungselements, jeweils gegründet auf eine entsprechende Kante des Oberflächenbereichs und auf das gemeinsame Datum im Raum; eine Durchdringungslogik zum Ausbilden eines Konstruktionskörpers für jeden Oberflächenbereich, der dargestellt wird durch die Durchdringung des Darstellungselements aufgrund des Oberflächenbereichs selbst mit dem Konstruktionsdarstellungselement auf der Grundlage der Kanten dieses Oberflächenbereichs und des gemeinsamen Datums im Raum; und eine Symmetriedifferenzlogik zum Ausbilden der dreidimensionalen Darstellung des Objekts als Symmetriedifferenz der von der Durchdringungslogik generierten Konstruktionsfestkörper.
- Durch die Definition von Konstruktionskörpern im Hinblick auf ein gemeinsames Datum im Raum und Ausbilden der Symmetriedifferenz der Konstruktionskörper wird automatisch eine funktionelle Darstellung der Innenseite des Objekts generiert. Eine Festkörperdarstellung wird immer generiert, solange die Oberfläche eines Gegenstands durch die Oberflächenbereiche vollständig definiert ist und kann generiert werden, auch wenn die Oberflächendefinition unvollständig ist. Die Symmetriedifferenzoperation eliminiert automatisch alle Volumina außerhalb des Objekts, wie noch erklärt wird. Die Theorie, auf die sich dieser Prozeß gründet, ist ähnlich der, die bestimmte Flächenfüllalgorithmen benutzen (siehe z.B. das IBM Graphical Data Display Manager (GDDM) Base Programming Reference (Dokument Nr. SC33-0101-4) Seite 167) Die Symmetriedifferenzoperation ist das mengentheoretische Äquivalent zur Ausschließlich-ODER-Funktion (EX-OR).
- Die Erfindung ermöglicht die automatische Generierung einer dreidimensionalen Darstellung eines Objekts, unabhängig von der Komplexheit, aus einer Grenz- oder Oberflächendarstellung dieses Objekts. Vorzugsweise enthält daher der Generator Mittel zur ursprünglichen Definition der Oberfläche eines Objekts in der Form dieser Oberflächenbereiche, obwohl dieses Mittel alternativ auch außerhalb des Generators vorgesehen werden kann.
- In einer bevorzugten Ausführungsform des erfindungsgemäßen Generators sind die Mittel zur anfänglichen Definition der Oberfläche eines Objekts vorgesehen in der Form eines Datenspeichers für eine Datenstruktur, die diese Oberfläche in der Form dieses Oberflächenbereichs definiert. Somit ermöglicht die Erfindung die Generierung einer dreidimensionalen Darstellung eines räumlichen Objekts aus der bestehenden Oberflächendarstellung des gleichen Objekts.
- Die Mittel zur anfänglichen Definition der Oberfläche eines Objekts können zusätzlich, oder auch alternativ, eine vorverarbeitende Logik zur externen Verarbeitung der gelieferten Daten für ein Objekt beinhalten zwecks Generierung einer Datenstruktur, die dessen Oberfläche in der Form von Oberflächenbereichen definiert. Somit kann ein erfindungsgemäßer Generator auch die Generierung eines dreidimensionalen Modells aus ersten Anfängen ermöglichen durch Vorabgenerieren einer Darstellung der Oberfläche eines Objekts und anschließende Erzeugung einer dreidimensionalen Darstellung aus dieser Oberflächendarstellung.
- Gemäß CSG-Prinzipien bildet die Objektdefinitionslogik einer besonderen, noch zu beschreibenden erfindungsgemäßen Ausführungsform einen Konstruktionskörper auf der Grundlage eines Oberflächenbereichs durch Darstellung der Durchdringung der dreidimensionalen Darstellungselemente auf dem Oberflächenbereich selbst mit einer oder mehreren Konstruktionsoberflächen auf der Grundlage der Grenzen des Oberflächenbereichs und des gemeinsamen Datums. Die Anzahl und/oder Form der Konstruktionskörper für einen Oberflächenbereich hängt ab von der Form dieses Oberflächenbereichs. Sie hängt ferner davon ab, was als gemeinsames Datum im Raum benutzt wird.
- Dieses Datum im Objektraum könnte z.B. ein bestimmter Punkt im Objektraum sein. Auf diese Weise können die Konstruktionsoberflächen, die generiert werden, so definiert werden, daß sie die Grenze des Oberflächenbereichs und den gemeinsamen Punkt im Raum einschließen.
- Alternativ dazu könnte das Datum im Objektraum z.B. eine bestimmte Richtung im Objektraum sein. Auf diese Weise können die Konstruktionsoberflächen, die generiert werden, so definiert werden, daß sie die Grenze des Oberflächenbereichs einschließen und sich in der gegebenen Richtung erstrecken.
- Das ist gleichbedeutend mit der Wahl eines Datumpunkts im Unendlichen in dieser Richtung.
- Die Generierung der Konstruktionsflächen wird vereinfacht, wenn jeder dieser Oberflächenbereiche planar ist und von einer Vielzahl gerader Kanten begrenzt wird, die durch Unstetigkeiten verbunden sind, weil die Konstruktionsflächen dann planar sind und die Konstruktions-Darstellungselemente in der Form von Halbräumen auftreten.
- Die Generierung der Konstruktionskörper wird weiter vereinfacht, wenn jeder Oberflächenbereich des Objekts dreieckig ist. Das stellt sicher, daß die Basis der Pyramide planar ist und eine konvexe Grenze aufweist und somit den Test auf konkave Oberflächenbereiche überflüssig macht. In diesem Fall, wenn eine Vorverarbeitungslogik vorgesehen ist, enthält sie vorzugsweise eine Facettierungslogik zum Verarbeiten der extern definierten Daten, um eine Definition der Objektgrenzen in der Form von Dreiecksflächenbereichen zu definieren, soweit die extern gelieferten Daten keine Grenze in diesen Begriffen definieren. Die Erfindung beschränkt sich jedoch nicht auf das Benutzen von Oberflächenbereichen dieser Form. Die Erfindung ist anwendbar auf Objekte mit Oberflächenbereichen, die weder planar noch dreieckig sind, obwohl das natürlich die Verarbeitung eines Objekts komplizierter macht.
- Dementsprechend enthält die Objektdefinitionslogik des noch zu beschreibenden Generators in dem besonderen Beispiel, wenn die Oberfläche des zu modellierenden Objekts in der Form dreieckiger Oberflächenbereiche definiert ist:
- - Eine Darstellungselementdefinitionslogik zum Definieren eines Darstellungselements für jeden Oberflächenbereich auf der Grundlage des Oberflächenbereichs selbst, und drei KonstruktionsDarstellungselemente, jeweils gegründet auf eine entsprechende Kante des Oberflächenbereichs und auf das gemeinsame Datum im Raum;
- - eine Durchdringungslogik zum Ausbilden eines Konstruktionskörpers für jeden Oberflächenbereich, der dargestellt wird durch die Durchdringung des Darstellungselements aufgrund des Oberflächenbereichs selbst mit den drei Konstruktionsdarstellungselementen auf der Grundlage der Kanten dieses Oberflächenbereichs und des gemeinsamen Datums im Raum; und
- - eine Symiaetriedifferenzlogik zum Ausbilden der dreidimensionalen Darstellung des Objekts als Symmetriedifferenz der von der Durchdringungslogik generierten Konstruktionskörper.
- Sofern die Oberflächenbereiche dreieckig sind und das gemeinsame Datum ein bestimmter Punkt im Raum ist, ist jeder Konstruktionskörper eine trapezförmige Pyramide, wobei die Spitze der Pyramide als dieser vorgegebene Punkt definiert wird und die Basis der Pyramide als Oberflächenbereich definiert wird, auf den sie sich gründet.
- Das gilt prinzipiell auch, wenn das gemeinsame Datum ein Punkt im Unendlichen in einer bestimmten Richtung (oder in der vorgegebenen Richtung) ist, so daß die Spitze dieser unendlichen Pyramide in dem Punkt im Unendlichen liegt, obwohl in diesem Fall die Pyramide nicht konvergiert infolge der Einschränkung der Endlichkeit in einem realen System.
- Vorzugsweise generiert die Objektdefinitionslogik eine Datenstruktur, die die dreidimensionale Darstellung des Objekts definiert. Diese kann in einem Objektdefinitionsspeicher abgespeichert werden, der Teil des Generators ist oder auch nicht.
- Die dreidimensionale Darstellung, die von einem erfindungsgemäßen Objektdefinitionsgenerator generiert wurde, kann wie eine konventionell generierte dreidimensionale Darstellung weiterverarbeitet werden. Deshalb ist also auch ein dreidimensionales Modellierungssystem vorgesehen, das einen erfindungsgemäßen Objektdefinitionsgenerator und eine Objektdefinitionsverarbeitungslogik zur Weiterverarbeitung der dreidimensionalen Darstellung des von diesem Generator generierten dreidimensionalen Objekts aufweist.
- Gemäß einem zweiten Aspekt der Erfindung ist ein Verfahren vorgesehen zum Generieren einer dreidimensionalen Darstellung eines Objekts für ein dreidimensionales Modellierungssystem durch Bilden der Symmetriedifferenz von Konstruktionskörpern, die sich auf die entsprechenden Flächenbereiche des Objekts gründen und definiert sind in Bezug auf ein gemeinsames Datum im Objektraum, wobei dieses Verfahren für jeden Flächenbereich die Definition eines Darstellungselements auf der Grundlage des Flächenbereichs selbst sowie der Darstellungselemente, jeweils auf der Grundlage einer betreffenden Flächenbereichskante und des gemeinsamen Raumdatums, beinhaltet, die für jeden Flächenbereich einen Konstruktionskörper bilden, der durch die Durchdringung der Darstellungselemente auf der Grundlage des Flächenbereichs selbst und der Konstruktionsdarstellungselemente auf der Grundlage der Kanten des Flächenbereichs und des gemeinsamen Raumdatums dargestellt wird, und Bilden der dreidimensionalen Darstellung des Objekts in der Form als Symmetriedifferenz der Konstruktionskörper, die von der Durchdringungslogik generiert wurden.
- Dieses Verfahren beinhaltet vorzugsweise den Anfangsschritt der Definition der Oberfläche des Objekts in der Form dieses Oberflächenbereichs, wodurch die Generierung eines dreidimensionalen Modells aus den ersten Anfängen ermöglicht wird.
- Nachstehend soll ein bestimmtes Beispiel eines dreidimensionalen Modellierungssystems anhand der begleitenden Zeichnungen beschrieben werden; in diesen sind
- Fig. 1A und 1B eine schrägwinklige und eine Grundrißdarstellung eines Objekts, anhand welcher das Arbeiten eines dreidimensionalen Modellierungssystems gemäß der vorliegenden Erfindung erklärt werden soll.
- Fig. 2 ist eine schematische Illustration einer Oberflächendarstellung des Objekts, das in den Fig. 1A und 1B gezeigt wird;
- Fig. 3 ist ein Blockdiagramm eines dreidimensionalen Modellierungssystems, das einen erfindungsgemäßen Objektdefinitionsgenerator beinhaltet;
- Fig. 4 ist eine schematische Illustration eines Teils einer Datenstruktur zur dreidimensionalen Darstellung eines Objekts;
- Fig. 5 ist ein Venn-Diagramm zur Erklärung der Operation eines Teils des Objektdefinitionsgenerators gemäß Fig. 3;
- Fig. 6 ist ein schematisches Diagramm zur Erklärung der Operation eines Teils des Objektdefinitionsgenerators gemäß Fig. 3; und
- Fig. 7 ist eine schematische Illustration eines weiteren Teils der Datenstruktur zur dreidimensionalen Darstellung eines Objekts.
- Die Fig. 1A und 1B sind eine schrägwinklige und eine Grundrißdarstellung eines Objekts 10, anhand dessen die Arbeitsweise eines erfindungsgemäßen Objektdefinitionsgenerators erläutert werden soll. Wie man aus der Grundriß ersieht, hat das Objekt eine Grundfläche in der Form einer Pfeilspitze, und die Seiten des Objekts 10 treffen sich in einem Scheitel 5.
- Fig. 2 zeigt erste und zweite Datensätze in Tabellenform, die zusammen eine Datenstruktur bilden, die die Oberfläche des Objekts 10 repräsentiert. Die erste Datensatzgruppe (Tabelle 12) stellt die Koordinatenpositionen im Objektraum der fünf Scheitel 1 - 5 des Objekts in den ersten fünf Datensätzen dar (d.i. die ersten fünf Reihen in Tabelle 12) . Die x-, y- und z-Koordinaten sind im ersten, zweiten und dritten Datenfeld (d.i. in den Spalten 1, 2 bzw. 3 der Tabelle 12) abgespeichert. Die zweite Datensatzgruppe (Tabelle 14) definiert sechs Dreiecksflächenbereiche, die die Grenze des Objekts 10 ausmachen, nämlich die Dreiecksflächen mit den Scheiteln 1,2,3; 1,2,4; 1,5,3; 1,5,4; 2,5,3 und 2,5,4. Jeder Datensatz (d.i. jede Reihe in Tabelle 14) definiert einen Flächenbereich. Die drei Scheitel der Dreiecksflächen sind im ersten, zweiten und dritten Feld (d.i. in den Spalten 1, 2 bzw. 3 in Tabelle 14) durch Adressen zu den entsprechenden Datenfeldern im ersten Datensatz (d.i. in Tabelle 12) für die jeweiligen Koordinaten dargestellt.
- Wie man sieht, ist jeder Flächenbereich des in Fig. 1 gezeigten Objekts dreieckig. Zwar hat die Grundfläche des Objekts Pfeilspitzenform, die Grenzdefinition ist jedoch in zwei Dreiecksflächenbereiche unterteilt. Das geschieht deswegen, weil es die Generierung einer dreidimensionalen Darstellung des Objekts erleichtert.
- Zunächst liefert diese Darstellung eine sehr kompakte Wiedergabe der Flächenbereiche, weil drei Punkte unzweideutig eine Fläche bestimmen (unter der Voraussetzung, daß diese planar ist). Im Falle von vier oder noch mehr Punkten sind zusätzliche Angaben über die Verbindungslinien dieser Punkte erforderlich, um die Oberfläche korrekt zu definieren. Zum Beispiel könnten bei den vier Punkten 1, 2, 3, 4 an den Scheiteln der pfeilspitzenförmigen Grundfläche des Objekts drei unterschiedliche, geschlossene Flächen definiert werden. Nämlich die erste mit den Punkten 1, 4, 2, 3, 1 in dieser Reihenfolge. Die zweite und dritte mit den Punkten 1, 3, 4, 2, 1 bzw. 1, 2, 3, 4, 1 in dieser Reihenfolge. Somit vereinfacht die Anwendung der dreieckigen Flächenbereiche die Darstellung der Grenzen des Objekts.
- Zusätzlich vereinfacht die Anwendung dreieckiger, ebener, Flächenbereiche die Generierung von Konstruktionskörpern. Da die Grenze jedes Oberflächenbereichs konvex ist, erübrigt sich eine Prüfung auf konkave Teile der Oberflächenbereichsgrenzen, und ein gültiger Konstruktionskörper mit einer einfachen dreidimensionalen Darstellung kann zuverlässig generiert werden.
- Algorithmen zur Unterteilung der Oberfläche eines Objekts, das durch eine vorhandene Grenzflächendarstellung des Objekts definiert ist, zwecks Ausbildung dreieckiger Oberflächenbereiche sind bekannt. Dieser Prozeß der Unterteilung der Grenzflächendarstellung eines Objekts wird im allgemeinen Facettierung genannt und die entstehenden Oberflächenbereiche werden im allgemeinen als Facetten bezeichnet. Im Falle eines Objekts, dessen Oberfläche nicht aus ebenen Facetten besteht, kann der erste Schritt zur Facettierung des Objekts die Näherung der Fläche des Objekts mit planaren, n-seitigen Facetten und anschließende Unterteilung dieser n-seitigen Facetten in dreieckige Facetten sein. Die Einzelheiten des Prozesses zum Ausbilden dreieckiger Facetten können gemäß einem beliebigen Verfahren durchgeführt werden und sind dem Fachmann bekannt; sie sind nicht Teil der vorliegenden Erfindung.
- Fig. 3 ist ein Funktions-Blockdiagramm und gibt eine Übersicht über die Logik und die Abspeicherung eines dreidimensionalen Modelliersystems einschließlich eines erfindungsgemäßen Objektdefinitionsgenerators 18. Die in Fig. 2 gezeigte Datenstruktur zur Oberflächendarstellung gemäß Fig. 2 ist im Oberflächendarstellungsspeicher (SRS) 20 abgespeichert. Die Objektdefinitionslogik (ODL) 22 greift auf den SRS 20 zu zwecks Generierung einer dreidimensionalen Darstellung des Objekts, das von der Oberflächendarstellung dieses Objekts aus modelliert werden soll. Die ODL 22 speichert das resultierende dreidimensionale Modell des Objekts im Objektdefinitionsspeicher (ODS) 24 ab.
- Der in Fig. 3 illustrierte Objektdefinitionsgenerator beinhaltet ferner eine Vorverarbeitungslogik (PPL) 26 zur Vorverarbeitung der eingegebenen Daten 28 für das zu modellierende Objekt, um die Oberflächendarstellung des Modells zur Abspeicherung im SRS 20 zu generieren. Die Eingangsdaten können auf jede herkömmliche Weise erfaßt werden mittels einer Tastatur, durch direkte Digitalisierung eines Objekts, oder eine maßstabgetreue Zeichnung des Objekts oder aber auf jede sonstige geeignete Weise, und können durch die Vorverarbeitungslogik in eine geeignete Form umgearbeitet werden. Als Alternative können die Eingabedaten die Form einer Datei mit vorverarbeiteten Daten zur direkten Einspeicherung in den SRS 20 annehmen. Die Vorverarbeitungslogik kann auch eine Logik zur Modifizierung einer Grenzdarstellung beinhalten, die nicht in der in Fig. 2 gezeigten Form vorliegt, z.B. zum Facettieren der Oberfläche des Objekts, wie oben beschrieben wurde.
- Die dreidimensionale Modellverarbeitungs- oder Objektdefinitionsverarbeitungslogik (ODPL) 30 gemäß Fig. 3 bildet Teil des dreidimensionalen Modellierungssystems, in das der Objektdefinitionsgenerator eingearbeitet ist. Die ODPL soll die dreidimensionale Darstellung des von der ODL 22 erzeugten Objekts weiterverarbeiten, um jede gewünschte Lösung gemäß den CSG-Prinzipien vorzusehen. Die ODPL kann beispielsweise eine Logik zum Generieren eines 2-D-Bilds des Objekts wie in GB-A-2,194,715 beschrieben ist, umfassen.
- Das Beispiel des Objektdefinitionsgenerators gemäß Fig. 3 in der nachstehenden Beschreibung nimmt an, daß sich die Oberflächendarstellung des zu modellierenden Objekts auf dreieckige Facetten gründet, wie im Hinblick auf Fig. 2 beschrieben ist. Die nachstehende Liste 1 zeigt eine Übersicht der Operationen der ODL 22 gemäß Fig. 3, um die Symmetriedifferenz von Konstruktionskörpern auf der Grundlage der Oberflächenbereiche des Objekts zu bilden. In Fig. 4 wird eine Datenstruktur für die dreidimensionale Darstellung des zu modellierenden Objekts gezeigt.
- 1.1. Dreidimensionale Darstellung (SR) des Objekts auf Leer stellen.
- 1.2. Ersten Oberflächenbereich des Objekts als derzeitige Oberfläche wählen.
- 1.3. Konstruktionskörper (CS) auf der Grundlage des derzeitigen Oberflächenbereichs definieren.
- 1.4. SR aktualisieren durch Bilden der Symmetriedifferenz der vorherigen SR mit dem CS.
- 1.5. Wenn weitere Oberflächenbereiche, dann nächsten Oberflächenbereich als derzeitigen Oberflächenbereich wählen und nach 1.3 gehen, sonst Ende.
- In Schritt 1.1 wird eine Datenstruktur zur dreidimensionalen Darstellung im ODS festgelegt durch Schaffung eines Kopfknotens HN für die Datenstruktur, der auf einen Darstellungselementknoten deutet, der den logischen Zustand EMPTY [LEER] definiert. Mit anderen Worten, das Objekt wird zunächst als leerer Raum definiert.
- Im Schritt 1.2 greift die ODL 22 auf die erste Reihe der zweiten Tabelle 14 zu, um festzustellen, welche der Punkte in der ersten Tabelle 12 die Scheitel des ersten Oberflächenbereichs des Objekts bilden.
- In Schritt 1.3 generiert die ODL eine dreidimensionale Darstellung eines Konstruktionsfestkörpers auf der Grundlage dieses Oberflächenbereichs, wobei der Oberflächenbereich in der nachfolgenden Liste 2 in weiteren Einzelheiten erklärt wird.
- In Schritt 1.4 aktualisiert die ODL die dreidimensionale Darstellung (Fig. 4) des Objekts durch Einführung eines Zwischenknotens (42, 44, 46, 48, 50), der die Symmetriedifferenz SD der vorherigen dreidimensionalen Darstellung des Objekts (42P, 44P, 46P, 48P, 50P) und der dreidimensionalen Darstellung des Konstruktionskörpers (42C, 44C, 46C, 48C, 50C), der in Schritt 1.3 generiert wurde, definiert.
- Jeder der in Fig. 4 gezeigten Blöcke stellt einen Knoten in einer baumförmigen Datenstruktur dar. Jeder Knoten umfaßt ein erstes Feld, das eine Definition des Knotens enthält (z.B., daß es sich um einen Symmetriedifferenzknoten SD handelt), und ein oder mehrere Felder, die Zeiger zu den abhängigen Knoten bilden (z.B. zur vorherigen dreidimensionalen Darstellung (42P, usw.) oder zur Definition eines Konstruktionskörpers (42C, usw.)). Der in Fig. 4 gezeigte Baum ist ziemlich unausgeglichen, weil für viele der Knoten der Unter- Baum, auf den der linke Zeiger zeigt, länger ist als der, auf den der rechte Zeiger zeigt. Die Symmetriedifferenzlogik könnte so eingerichtet werden, daß sie ausgeglichene Unter- Bäume produziert. Wie noch unter Hinweis auf die Liste 2 und Fig. 7 erklärt wird, enthält in der Tat jeder der Knoten, der einen Konstruktionskörper definiert, einen Unter-Baum.
- In Schritt 1.5 greift die ODL, wenn noch ein weiterer Oberflächenbereich verarbeitet werden muß, auf die nächste Reihe der ersten Tabelle zu und gibt die Steuerung an Schritt 3 zurück. Das heißt, daß jeder der Oberflächenbereiche der Oberflächendarstellung des Objekts der Reihe nach behandelt wird und daß ein Konstruktionskörper für jede einzelne Oberfläche generiert und durch Symmetriedifferenzoperatoren mit den anderen auf diese Weise generierten Konstruktionskörpern logisch kombiniert wird.
- Der "Symmetriedifferenzoperator" ist das mengentheoretische Äquivalent zur Ausschließlich-ODER-Funktion in der Mathematik. Somit ist die Symmetriedifferenz zweier Volumina "wahr", wo die zwei Volumina existieren, jedoch nicht koexistent sind. Das wird illustriert durch das Venn-Diagramm in Fig. 5 für die Konstruktionselemente A, B, C und D. Die Bereiche, für die die Symmetriedifferenz von A, B, C und D wahr ist, sind mit T gekennzeichnet. Das sind die Bereiche, für die eine ungerade Anzahl der Konstruktionselemente existiert, wobei 0 für diesen Zweck als gerade gilt. Alle anderen Bereiche sind "falsch" und sind mit F gekennzeichnet.
- Die Wirkung eines Symmetriedifferenzoperators wird auch in Fig. 6 für das Objekt gemäß Fig. 1 illustriert. Fig. 6 zeigt das Objekt der Fig. 1 und überlagert es mit den Kanten der sechs Tetraeder, die jeweils auf einer der dreieckigen Grundflächen des Objekts stehen und in Bezug auf einen gemeinsamen Datumspunkt P im Objektraum definiert sind. Die Logik für die Definition der Tetraeder wird unter Bezugnahme auf Liste 2 und 3 noch beschrieben. Die sechs Tetraeder haben die Scheitel P,1,2,3; P,1,2,4; P,1,5,3; P,1,5,4; P,2,5,3 und P,2,5,4. P soll die Koordinaten (-2, 2, +2) haben. Ein Blick auf die Fig. 6 sollte dem Leser zeigen, daß das Innere des Festkörpers mit den Scheiteln 1, 2, 3, 4 und 5 durch diese Bereiche im Raum definiert wird, in denen eine ungerade Anzahl Tetraeder existieren bzw. koexistieren. Alle Bereiche, in denen eine gerade Anzahl Tetraeder koexistieren oder aber gar kein Tetraeder existiert, liegen außerhalb des Objekts.
- Die nachstehende Liste 2 illustriert die Durchdringungslogik zum Bilden eines Konstruktionskörpers (Schritt 1.3 in Liste 1)
- 2.1. Mit den den vorliegenden Flächenbereich definierenden Scheiteln einen Halb-Raum für den vorliegenden Oberflächenbereich in Bezug auf ein vorgegebenes Datum im Raum definieren.
- 2.2. Mit zwei Scheiteln, die eine erste Kante des vorliegenden Flächenbereichs definieren, einen Halb-Raum einschließlich dieser Kante und des vorgegebenen Datums in Bezug auf den verbleibenden Scheitel des Oberflächenbereichs definieren und mit dem in Schritt 2.1 generierten Halb-Raum zum Schnitt bringen.
- 2.3. Mit zwei Scheiteln, die eine zweite Kante des vorliegenden Flächenbereichs definieren, einen Halb-Raum einschließlich dieser Kante und des vorgegebenen Datums in Bezug auf den verbleibenden Scheitel des Oberflächenbereichs definieren und mit dem Ergebnis in Schritt 2.2 zum Schnitt bringen.
- 2.4. Mit zwei Scheiteln, die die dritte Kante des vorliegenden Flächenbereichs definieren, einen Halb-Raum einschließlich dieser Kante und des vorgegebenen Datums in Bezug auf den verbleibenden Scheitel des Oberflächenbereichs definieren und mit dem Ergebnis in Schritt 2.3 zum Schnitt bringen.
- In Schritt 2.1 greift die ODL auf die Definition der Scheitel in der ersten Tabelle 12 zu, die durch den Inhalt der Oberflächenbereichsdefinition identifiziert sind, die in der zweiten Tabelle 14 adressiert sind. Dann berechnet die ODL eine funktionelle Darstellung des Halbraums auf der Grundlage dieses Oberflächenbereichs. Die wahre durchzuführende Berechnung hängt ab von der Form des benutzten Datums, wie nachstehend unter Bezugnahme auf die Darstellungselement-Definitionslogik, die in Liste 3 bis 5 gezeigt wird, noch erklärt wird. Der hier definierte Halb-Raum bildet einen der ursprünglichen Darstellungselementkörper, d.i. der Darstellungselemente zur dreidimensionalen Darstellung des Objekts, und die Daten, die den Halb-Raum definieren, sind in einem Darstellungselementknoten 52, Fig. 7, abgespeichert.
- In Schritt 2.2 wählt die ODL zwei Scheitel des aktuellen Oberflächenbereichs aus, die eine erste von drei Kanten des dreieckigen Oberflächenbereichs definieren. Die ODL berechnet dann eine Definition des Halb-Raums einschließlich dieser Kante und des gemeinsamen Datums, wie nachstehend unter Hinweis auf die Listen 3 bis 5 erklärt wird. Dieser Halb-Raum bildet ein zweites Darstellungselement, dessen Daten in einem zweiten Darstellungselementknoten 56 sortiert werden. Die ODL bringt die dreidimensionale Darstellung (Fig. 7) des Konstruktionskörpers auf Stand, indem sie die ersten zwei Darstellungselementknoten verbindet unter Benutzung eines Knoten 60, der den Satzdurchdringungsoperator definiert.
- In den Schritten 2.3 und 2.4 wird der Prozeß des Schritts 2.2 für die zweite bzw. die dritte Kante des dreieckigen Oberflächenbereichs wiederholt, um den dritten und den vierten Darstellungselementknoten 56 und 58 zu generieren, die mit Hilfe der Durchdringungsknoten 62 und 64 in die Darstellung des Konstruktionskörpers gemäß Fig. 7 eingebunden werden, wobei diese Fig. 7 eine Darstellung der sich ergebenden dreidimensionalen Darstellung des Konstruktionskörpers ist.
- Wie oben im Hinblick auf Schritt 2.1 erwähnt wurde, hängt die Form der aktuellen Berechnung, die durchgeführt werden muß, um eine funktionelle Darstellung eines Halb-Raums auf der Grundlage eines Flächenbereichs zu berechnen, von der Form des benutzten Datums ab. Die Logik zum Ausbilden des Halb- Raums auf der Grundlage eines Scheitelsatzes eines dreieckigen Flächenbereichs ist in Liste 3 für den Fall beschrieben, daß dieses gemeinsame Datum im Objektraum ein Punkt P in diesem Raum ist.
- Die Eingangsdaten, die von der Darstellungselementlogik gemäß Liste 3 verlangt werden, sind die Koordinaten C von drei Punkten der Grenzen des Halb-Raums J, K und L, sowie die Koordinaten C eines Punkts T innerhalb des Halb-Raums. Bei der Definition eines Halb-Raums auf der Grundlage des Oberflächenbereichs selbst (d.i. Schritt 2.1 in Tabelle 2), bilden die Scheitel des dreieckigen Oberflächenbereichs die Punkte J, K und L und der gemeinsame Punkt im Objektraum bildet den Punkt T. Bei der Definition eines Halb-Raums auf der Grundlage einer der Kanten des Oberflächenbereichs (d.i. Schritte 2.2, 2.3 oder 2.4 in Liste 2) bilden die Scheitel des dreieckigen Oberflächenbereichs die Punkt J, K und T, und der gemeinsame Punkt im Raum bildet den Punkt L.
- 3.1. Definition von 2 Vektoren unter Verwendung der Koordinaten der Punkte J, K und L:
- Vektor JK = C(J) - C(K)
- Vektor JL = C(J) - C(L)
- 3.2. Definition einer Normalen auf die Ebene:
- Normale = Kreuzprodukt aus Vektor JK mal Vektor JL
- 3.3. Definition des Abstands der Ebene vom Ursprung:
- Abstand (d) = Punktprodukt aus Normale mal Punkt J
- 3.4. Definition des Halb-Raums für die Ebene:
- Wenn Punktprodukt aus Normale mal Punkt T kleiner als d, dann
- Halb-Raum := ( Nx, Ny, Nz,-d) sonst
- Halb-Raum := (-Nx,-Ny,-Nz, d),
- wobei Nx, Ny und Nz die Vektorkonstanten in der X-, Y- bzw. Z-Richtung sind und d der Abstand vom Ursprung ist.
- Das Betriebsprinzip für die Darstellungselement-Definitionslogik in Liste 3 ist, daß unter Zugrundelegung der Koordinaten von drei Punkten J, K und L auf einer Ebene, eine mathematische Darstellung der Ebene definiert werden kann aus der Normalen und dem Abstand der Ebene vom Ursprung des Koordinatensystems. Die Normale läßt sich generieren durch Bilden des Kreuzprodukts zweier Vektoren von einem der Scheitel aus zu jedem der anderen Scheitel. Der Abstand vom Ursprung errechnet sich durch das Punktprodukt der Normalen und der Koordinaten eines Ebenenpunkts.
- In Schritt 3.1 werden erste und zweite Vektoren aus den drei angegebenen Punkten generiert, die in der Ebene für den zu generierenden Halb-Raum liegen müssen. Der erste Vektor, JK, wird generiert durch gesonderte Subtraktion der x-, y- und z- Koordinatenwerte des ersten Punkts "J" von den entsprechenden Werten des zweiten Punkts K und gesondertem Abspeichern der Ergebnisse. Der zweite Vektor, JL, wird auf die gleiche Weise, jedoch unter Benutzung der Koordinaten des ersten Punkts J bzw. des dritten Punkts L berechnet und abgespeichert. Die abgespeicherten Werte für jeden Vektor stellen den Gradienten dieses Vektors gegen die x-, y- und z-Achse dar.
- In Schritt 3.2 wird die Normale auf die Oberfläche generiert durch Bilden des Kreuzprodukts des ersten und zweiten Vektors. Das Kreuzprodukt ist definiert als:
- ((JKy*JLz) - (JKz*JLy), (JKz*JLx) - (JKx*JLz), (JKx*JLy) - (JKy*JLx))
- wobei JKx, JKy und JKz die Vektorkonstanten in x-, y- und z- Richtung des Vektors JK, und JLx, JLy und JLz die Vektorkonstanten des Vektors JL in der x-, y- und z-Richtung sind.
- In Abschritt 3.3 wird der Abstand vom Ursprung als das Punktprodukt des Vektors und eines Punkts auf der Ebene berechnet. Das Punktprodukt ist definiert als:
- (Nx * Wx) + (Ny * Wy) + (Nz * Wz)
- dabei sind Nx, Ny und Nz die Vektorkonstanten in der x-, y- und z-Richtung der Normalen N, und Wx, Wy und Wz sind die x-, y- und z-Koordinaten eines Punkts W. Das Punktprodukt ergibt den Abstand der Ebene für jeden Punkt W auf der Ebene.
- Wenn die Gleichung einer Ebene, die sich gleich einer der Flächen des Tetraeders erstreckt, und die Koordinaten eines Punkts auf der festen Fläche der Ebene gegeben sind, ist es möglich, einen Halb-Raum zu definieren, der benutzt werden kann, um eine dreidimensionale Darstellung des Tetraeders zu bilden.
- Das geschieht in Schritt 3.4. Zunächst wird ein Test durchgeführt, um festzustellen, auf welcher Seite der Ebene der restliche Punkt des Tetraeders liegt, und zwar durch Bilden des Punktprodukts zwischen der Normalen und dem vierten Punkt des Tetraeders und Feststellen, ob es größer oder kleiner ist als das Punktprodukt aus der Normalen und einem Punkt auf der Ebene. Dann wird der Halb-Raum durch den x-, y- und z- Gradienten der Normalen auf die Ebene und den Abstand dieser Ebene vom Ursprung definiert, wie im Schritt 3.4 in Abhängigkeit vom Ergebnis dieses Tests gezeigt wird. Diese Definition bildet die funktionelle Definition eines dreidimensionalen Darstellungselements, das im ODS 24 an einem Darstellungselementknoten in der Datenstruktur, die das dreidimensionale Objekt darstellt, abgespeichert wird.
- Hier muß angemerkt werden, wenn das Punktprodukt aus der Normalen und Punkt T gleich d ist, bedeutet das, daß Punkt T auf der Ebene liegt und der Tetraeder dementsprechend flach ist (d.h., der gemeinsame Raumpunkt liegt auf der Ebene, die durch die drei Scheitel des dreieckigen Oberflächenbereichs definiert ist). In einem solchen Fall trägt der Konstruktionskörper für diesen Elächenbereich nichts zur Definition der dreidimensionalen Darstellung des Objekts bei und kann durch ein Darstellungselement ersetzt werden, das EMPTY definiert. Somit, wenn z.B. vor Schritt 2.1 in Liste 2 eine Extralogik vorgesehen wird, die auf einen flachen Konstruktionskörper testet, läßt sich Verarbeitungszeit einsparen und die dreidimensionale Darstellung für das Objekt in diesem Fall vereinfachen. Es muß jedoch bemerkt werden, daß diese Extralogik zwar die Definition des Konstruktionskörpers vereinfachen würde, jedoch für den Betrieb der ODL 22 nicht wesentlich ist.
- In einigen Fällen kann es vorkommen, daß eine Ebene, die sich gleich einem Oberflächenbereich erstreckt, den Datumpunkt enthalten kann und daher zur dreidimensionalen Darstellung eines Objekts nichts beitragen kann, deshalb ist es manchmal möglich, eine gültige dreidimensionale Darstellung eines Objektkörpers zu schaffen, auch wenn die Oberflächendarstellung dieses Objekts unvollständig ist. Dazu wird angenommen, daß das Datum im Raum richtig gewählt wurde.
- Mittels der Durchdringungslogik gemäß Liste 2 wird anerkannt, daß vier solche Darstellungselementknoten definiert und miteinander verknüpft wurden wie in Fig. 7 gezeigt wird, durch Knoten, die die Durchdringung dieser Darstellungselemente für jeden Tetraeder definieren. Die Durchdringung der Darstellungselemente definiert diesen Bereich im Raum, der von allen Darstellungselementen eingenommen wird, d.h. den Raumbereich innerhalb der Pyramide.
- Liste 3 illustriert die Darstellungselement-Definitionslogik zum Generieren des Halb-Raums, wo das Datum ein vorgegebener Punkt im Raum ist. Die Mathematik zur Generierung des Konstruktionskörpers kann jedoch vereinfacht werden, wenn der Punkt in irgendeiner Richtung ins Unendliche verschoben wird. Das hat den Vorteil, daß die Konstruktionsflächen nicht konvergieren, wenn man die Bedingungen eines realen Systems zugrundelegt, und das vorgegebene Datum in dieser Richtung sein kann. Die Logik zum Ausbilden eines Halb-Raums auf einem Satz Scheitel dreieckiger Flächenbereiche wird beschrieben unter Bezug auf Liste 4 und 5 für den Fall, daß das vorgegebene Datum eine gegebene Richtung im Raum ist.
- Die von der Logik gemäß Liste 4 und 5 geforderten Eingabedaten sind die Koordinaten C von zwei Punkten der Begrenzung des Halb-Raums J und K, eine Definition eines Vektors, "Vektor V", für die gegebene Richtung, in der sich die Grenze erstreckt, und die Koordinaten eines Punkts T innerhalb des Halb-Raums.
- Die Logik gemäß Liste 4 wird dazu benutzt, einen Halb-Raum auf der Grundlage des Oberflächenbereichs selbst (d.i. Schritt 2.1 in Liste 2) zu generieren. Diese Logik ist im wesentlichen die gleiche wie die Logik in Liste 3, nimmt jedoch als Eingabeparameter die Scheitel des dreieckigen Oberflächenbereichs als die Punkte J, K und L, und den gemeinsamen Vektor V anstelle des gemeinsamen Punkts im Raum.
- 4.1. Definition von 2 Vektoren unter Verwendung der Koordinaten der Punkte J, K und L:
- Vektor JK = C(J) - C(K)
- Vektor JL = C(J) - C(L)
- 4.2. Definition einer Normalen auf die Ebene:
- Normale = Kreuzprodukt aus Vektor JK mal Vektor JL
- 4.3. Definition des Abstands der Ebene vom Ursprung:
- Abstand (d) = Punktprodukt aus Normale mal Punkt J
- 4.4. Definition des Halb-Raums für die Ebene:
- Wenn Punktprodukt aus Normale mal Vektor V kleiner als 0, dann
- Halb-Raum := ( Nx, Ny, Nz,-d) sonst
- Halb-Raum := (-Nx,-Ny,-Nz, d),
- wobei Nx, Ny und Nz die Vektorkonstanten in der X-, Y- bzw. Z-Richtung sind und d der Abstand vom Ursprung ist.
- Hier wird ersichtlich, daß sich die in Liste 4 gezeigte Logik von der in Liste 3 gezeigten nur dadurch unterscheidet, daß sich die Eingabeparameter unterscheiden und daß der Test in Schritt 4.4 anders ist. Die Bildung des Punktprodukts zwischen der Normalen und dem Vektor V wird benutzt, um festzulegen, welche Seite der Ebene körperlich sein soll. Wenn die Normale und der Vektor senkrecht aufeinanderstehen (d.i. das Ergebnis des Punktprodukts Null ist), dann liegt der Vektor der Halb-Raum-Richtung in der Ebene. Daraus ergibt sich, daß der Konstruktionskörper für den betreffenden Oberflächenbereich flach ist und nichts zur dreidimensionalen Darstellung des Objekts beiträgt. Wie schon im Zusammenhang mit Liste 3 gezeigt, ist eine geeignete Extralogik vorgesehen, um einen Test auf flache Konstruktionskörper vorzunehmen, dann kann für diesen Konstruktionskörper ein Darstellungselement-definierendes EMPTY in die dreidimensionale Darstellung des Objekts eingefügt werden.
- Die Logik gemäß Liste 5 wird benutzt, um einen Halb-Raum auf der Grundlage einer der Kanten des Oberflächenbereichs (d.h. die Schritte 2.2, 2.3 oder 2.4 in Tabelle 2) und eine Richtung im Objektraum festzulegen, in welchem Fall die Punkte J, K und T die Scheitel des Oberflächenbereichs sind und Vektor V die vorgegebene Richtung im Raum ist.
- 5.1. Definition eines Vektors unter Verwendung der Koordinaten des
- Vektors JK = C(J) - C(K)
- 5.2. Definition einer Normalen auf die Ebene:
- Normale = Kreuzprodukt Vektor JK mal Vektor V
- 5.3. Definition des senkrechten Abstands der Ebene vom Ursprung:
- Abstand (d) = Punktprodukt Normale mal Punkt J
- 5.4. Definition des Halb-Raums für die Ebene:
- Wenn Punktprodukt Normale mal Punkt T kleiner als d, dann
- Halb-Raum := ( Nx, Ny, Nz,-d) sonst
- Halb-Raum := (-Nx,-Ny,-Nz, d),
- wobei Nx, Ny und Nz die Vektorkonstanten in der X-, Y- bzw. Z-Richtung sind und d der Abstand vom Ursprung ist.
- Wie man sieht, entsprechen die Schritte 5.1 bis 5.4 im allgemeinen denen der Liste 3 mit der Ausnahme, daß es keine Notwendigkeit zur Berechnung eines zweiten Vektors in Schritt 5.1 gibt, da der Vektor V in Schritt 5.2 als zweiter Vektor benutzt wird.
- Die Anwendung eines Datums in Form einer durch einen Vektor definierten Richtung hat den Vorteil, daß die Konstruktionsflächen der verschiedenen Konstruktionskörper nicht alle in einem Punkt innerhalb eines endlichen Raums konvergieren, wie es der Fall ist, wenn ein Punkt im endlichen Raum als Datum genommen wird. Im letzteren Fall können möglicherweise bei der Auflösung der Konstruktionsflächen infolge der endlichen Lösung realer Systeme in der Nähe dieses Punkts Probleme auftreten, die bei der Benutzung eines Vektors vermieden werden.
- Die dreidimensionale Darstellung des Objekts, das durch die sich ergebende Datenstruktur definiert wird, wird viele Konstruktionselemente enthalten, die zur Definition des dreidimensionalen Objekts erforderlich sind, die aber nicht direkt zur Oberfläche des Objekts selbst beitragen. Diese Situation ist nicht einzigartig für eine dreidimensionale Darstellung, wie sie von einem erfindungsgemäßen Objekt definitionsgenerator generiert wird. In der Tat hat die sich ergebende Datenstruktur eine herkömmliche CSG-Form.
- Die herkömmliche CSG-Aufteilungslogik zur Verarbeitung einer dreidimensionalen Darstellung eines Objekts zwecks Generierung einer räumlichen Darstellung dieses Objekts (z.B. eines 2-D-Bilds) ist in der Lage, Darstellungselemente oder Teile von Darstellungselementen zu eliminieren, die in einer solchen räumlichen Darstellung nicht wiedergegeben werden sollen. Ein Beispiel für die Generierung eines 2-D-Bildes wird in GB-A-2,194,715 beschrieben. Eine solche herkömmliche Logik bedeutet auch, daß eine in Fig. 1 gezeigte Linie, die die Grundfläche in zwei dreieckige Flächenbereiche teilt, im darzustellenden Bild nicht zu erscheinen braucht, wobei die Nachverarbeitungslogik berücksichtigt, daß die Grundfläche des Objekts planar ist.
- Um die Effizienz der Verarbeitung der dreidimensionalen Darstellung eines Objekts zu erhöhen, ist es erwünscht, wenn auch nicht wesentlich, die Konstruktionselemente zu kennzeichnen. Das kann geschehen durch Vorsehen einer Flag in den Darstellungselementknoten, die das Darstellungselement als Konstruktionselement bzw. ggf. als Nichtkonstruktionselement kennzeichnet, je nachdem. Diese Flag kann während der Verarbeitung der dreidimensionalen Darstellung jederzeit gesetzt werden, sowohl während seiner Erzeugung als auch später, sobald bestimmt wird, daß das Darstellungselemente ein Konstruktionselement ist. Die Kennzeichnung der Konstruktionselemente kann die Effizienz der Verarbeitung der dreidimensionalen Darstellung eines Objekts erhöhen, weil es die Beschreibung eines Raumbereichs, d.h. eines Voxel, entweder als 'EMPTY' oder als 'FULL' ermöglicht, wenn bestimmt wird, daß keine Nichtkonstruktionsflächen in diesem Voxel enthalten sind. Die herkömmliche CSG-Unterteilungslogik zählt die Anzahl der Darstellungselemente in einem Voxel und stoppt die Verarbeitung innerhalb des Voxel, sobald diese Zählung den Wert Null erreicht. Durch zusätzliches Durchführen einer zweiten Zählung der Nichtkonstruktionselemente kann die Verarbeitung gestoppt werden, wenn die zweite Zählung den Wert Null erreicht.
- Auch lassen sich bestehende Techniken zur Vereinfachung der durch die Objektdefinitionslogik erzeugten dreidimensionalen Darstellung bevor und/oder während der Verarbeitung dieser dreidimensionalen Darstellung zur Herstellung einer räumlichen Darstellung des Objekts einsetzen. Solche Techniken beinhalten die Identifizierung wiederholter Darstellungselemente und/oder Komplemente von Darstellungselementen zwecks Vereinfachung der Datenstruktur zur Definition der dreidimensionalen Darstellung. Auch können Techniken zur Identifizierung redundanter Darstellungselemente benutzt werden, wie sie in der anhängigen UK-Patentanmeldung des gleichen Antragstellers (IBM-Docket UK9-87-002) beschrieben sind.
- Ein erfindungsgemäßer Objektdefinitionsgenerator und ein Festkörpermodellierungssystem, das diesen verwendet, können durch entsprechende Programmierung eines allgemeinen Rechners wie z.B. eines Personalcomputers oder eins Hauptrechner-Verarbeitungssystems verwirklicht werden. In solchen Fällen kann die in Liste 1 bis 5 beschriebene Logik durch entsprechende Programmierungscodes vorgesehen werden und die Speicherelemente, wie der SRS und die ODL, lassen sich durch geeignete Konfigurierung des Systemspeichers erzeugen. Die definierte Datenstruktur kann in solchen Fällen durch das Betriebssystem und/oder die Programmiersprache verwaltet werden. Auf diese Weise wird die Generierung der Knoten und der Zeiger codeunabhängig. Eine besonders vorteilhafte Implementierung ist möglich, wenn die Logik durch Programmieren des Rechners in einer Sprache vorgesehen wird, die rekursive Verfahrensaufrufe mit Definition örtlicher Variabler innerhalb der Prozeduren sowie auch globale Variable zuläßt. In solchen Fällen kann die in den einzelnen Listen 1 bis 5 gezeigte Logik jeweils als gesonderte Prozedur implementiert werden.
- Die vorliegende Erfindung beschränkt sich jedoch keineswegs auf eine solche Implementierung und kann auch als Spezialprozessor oder als Spezialadapter zum Einsatz in einem Allzweckrechner implementiert werden.
- In einem solchen Fall könnte eines oder mehrere der genannten Speicherelemente durch gesonderte Speichereinheiten ersetzt werden. Auf ähnliche Weise kann auch die Logik ganz oder teilweise durch eine Speziallogik ersetzt werden.
- Hier wird darauf hingewiesen, daß die Aufteilung der Logik in die getrennten Blöcke der Fig. 2 und in die Listen 1 bis 5 nur zwecks Vereinfachung der Erläuterung erfolgt ist und daß verschiedene Logikteile oder auch die gesamte Logik in anderen Beispielen eines erfindungsgemäßen Objektdefinitionsgenerators in anderer Weise angeordnet werden kann. Zusätzlich lassen sich die in bestimmten Logikblöcken durchgeführten Operationen statt dessen oder zusätzlich auch in anderen Logikblöcken durchführen.
- Zwar ist der Objektdefinitionsgenerator in Fig. 2 als Teil eines Körpermodellierungssystems unter Einschluß der Objektdefinitionsverarbeitungslogik dargestellt, das ist jedoch nicht zwingend. Ein Objektdefinitionsgenerator könnte auch als unabhängiges System zur Generierung einer dreidimensionalen Darstellung eines Objekts zur anschließenden Weiterverarbeitung durch ein Körpermodellierungssystem implementiert werden.
- Wie im Zusammenhang mit anderen Beispielen eines erfindungsgemäßen Körpermodellierungssystems schon früher gesagt, gründet sich die im SRS abgespeicherte Oberflächendarstellung des Objekts nicht notwendigerweise auf ebene, dreieckige Flächenbereiche. In solchen Fällen wird die Generierung und Verarbeitung der Konstruktionselemente und -körper jedoch komplizierter.
- Die vorliegende Erfindung stellt ein Körpermodellierungssystem bereit, das zum ersten Mal die automatische Generierung dreidimensionaler Darstellungen von Körperobjekten ungeachtet ihre Komplexheit zuläßt, die mit herkömmlichen CSG-Techniken von einer Oberflächendarstellung dieses Objekts aus weiter verarbeitet werden können. Da eine Grenzendarstellung oder Flächendarstellung eines Objekts durch Digitalisierung eines realen Beispiels oder aus technischen Zeichnungen dieses Objekts verhältnismäßig einfach generiert werden kann, erleichtert die Erfindung die Generierung einer dreidimensionalen Darstellung dieses Objekts beträchtlich.
Claims (13)
1. Ein Objektdefinitionsgenerator für ein dreidimensionales
Modellierungssystem, wobei der Generator eine
Objektdefinitionslogik (22) zum Bilden der dreidimensionalen
Darstellung eines Objekts als Symmetriedifferenz der
Konstruktionsfestkörper enthält, die sich auf die
entsprechenden Oberflächenbereiche des Objekts gründen und
definiert sind im Hinblick auf ein gemeinsames Datum im
Objektraum, wobei die Objektdefinitionslogik umfaßt:
- Eine Darstellungselementdefinitionslogik zum Definieren
eines Darstellungselements für jeden Oberflächenbereich
auf der Grundlage des Oberflächenbereichs selbst, und
Konstruktions-Darstellungselemente, jeweils gegründet auf
eine entsprechende Kante des Oberflächenbereichs und auf
das gemeinsame Datum im Raum;
- eine Durchdringungslogik zum Ausbilden eines
Konstruktionskörpers für jeden Oberflächenbereich, der
dargestellt wird durch die Durchdringung des
Darstellungselements aufgrund des Oberflächenbereichs selbst mit dem
Konstruktionsdarstellungselement auf der Grundlage der
Kanten dieses Oberflächenbereichs und des gemeinsamen
Datums im Raum; und
- eine Symmetriedifferenzlogik zum Ausbilden der
dreidimensionalen Darstellung des Objekts als
Symmetriedifferenz der von der Durchdringungslogik generierten
Konstruktionskörper.
2. Generator gemäß Anspruch 1, der Mittel zur anfänglichen
Definition der Oberfläche eines Objekts in Form der
Oberflächenbereiche aufweist.
3. Generator gemäß Anspruch 2, in dem die Mittel zur
anfänglichen Definition der Oberfläche eines Objekts
Datenspeicher (20) für eine Datenstruktur beinhalten, die die
Oberfläche desselben in der Form dieser
Oberflächenbereiche definiert.
4. Generator gemäß Anspruch 2 oder 3, in dem die Mittel zur
anfänglichen Definition der Oberfläche eines Objekts eine
vorverarbeitende Logik (26) zur Verarbeitung von außen
zugeführter Daten über ein Objekt beinhalten, um eine
Datenstruktur zu generieren, die dessen Oberfläche in der
Form der Oberflächenbereiche definiert.
5. Generator gemäß einem beliebigen der obigen Ansprüche, in
dem das Datum im Objektraum ein Punkt im Objektraum ist.
6. Generator gemäß einem beliebigen der Ansprüche 1 bis 4,
in dem das Datum im Objektraum eine Richtung im
Objektraum ist.
7. Generator gemäß einem beliebigen der obigen Ansprüche, in
dem jeder dieser Oberflächenbereiche planar und von einer
Vielzahl von Kanten begrenzt wird, die durch
Unstetigkeitsstellen verbunden sind.
8. Generator gemäß Anspruch 7, in dem jeder
Oberflächenbereich dreieckig ist.
9. Generator gemäß einem beliebigen der vorstehenden
Ansprüche, in dem die Objektdefinitionslogik (22) eine
Datenstruktur generiert, die die dreidimensionale
Darstellung des Objekts definiert.
10. Generator gemäß Anspruch 9, der einen
Objektdefinitionsspeicher (24) zum Abspeichern der Datenstruktur aufweist,
die die dreidimensionale Darstellung des Objekts
definiert,
das von der Objektdefinitionslogik generiert
wurde.
11. Ein Festkörpermodellierungssystem, das einen
Objektdefinitionsgenerator (18) gemäß einem beliebigen der
obigen Ansprüche und eine Objektdefinitionslogik zur
Verarbeitung der dreidimensionalen Darstellung des von
diesem Generator generierten Objekts aufweist.
12. Verfahren zum Generieren einer dreidimensionalen
Darstellung eines Objekts für ein
Festkörper-Modellierungssystem durch Bilden der Symmetriedifferenz der
Konstruktionsfestkörper, die auf den entsprechenden
Oberflächenbereichen des Objekts gegründet sind und im Hinblick auf
ein gemeinsames Datum im Objektraum definiert sind, wobei
dieses Verfahren das Definieren eines
Darstellungselements für jeden Oberflächenbereich auf der Grundlage
des Oberflächenbereichs selbst, sowie von
Konstruktionselementen, die jeweils auf einer entsprechenden Kante des
Oberflächenbereichs und dem gemeinsamen Datum im Raum
beruhen, beinhaltet;
für jeden Oberflächenbereich Bilden eines
Konstruktionsfestkörpers, der durch die Durchdringung der
Konstruktionselemente auf der Grundlage des Oberflächenbereichs
selbst, und der Konstruktionselemente auf der Grundlage
der Kanten dieses Oberflächenbereichs, und das gemeinsame
Datum im Raum dargestellt wird; und
Bilden der dreidimensionalen Darstellung des Objekts in
der Form der Symmetriedifferenz der
Konstruktionsfestkörper, die durch die Durchdringungslogik generiert
werden.
13. Verfahren gemäß Anspruch 12, enthaltend den ersten
Schritt der Definition der Oberfläche eines Objekts in
der Form dieser Oberflächenbereiche.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB8810301A GB2217958A (en) | 1988-04-29 | 1988-04-29 | Solid modelling |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68909094D1 DE68909094D1 (de) | 1993-10-21 |
DE68909094T2 true DE68909094T2 (de) | 1994-04-21 |
Family
ID=10636181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE1989609094 Expired - Lifetime DE68909094T2 (de) | 1988-04-29 | 1989-03-13 | Modellierung eines Festkörpers. |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP0339778B1 (de) |
JP (1) | JPH0792842B2 (de) |
BR (1) | BR8902035A (de) |
DE (1) | DE68909094T2 (de) |
ES (1) | ES2044090T3 (de) |
GB (1) | GB2217958A (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2253772B (en) * | 1991-03-12 | 1995-01-25 | Honda Motor Co Ltd | Method of creating solid model |
US6735912B2 (en) * | 2001-10-30 | 2004-05-18 | Steve Riggio | Method and apparatus of weather sealing adjacently jointed building panels |
-
1988
- 1988-04-29 GB GB8810301A patent/GB2217958A/en not_active Withdrawn
-
1989
- 1989-03-13 EP EP89302452A patent/EP0339778B1/de not_active Expired - Lifetime
- 1989-03-13 ES ES89302452T patent/ES2044090T3/es not_active Expired - Lifetime
- 1989-03-13 DE DE1989609094 patent/DE68909094T2/de not_active Expired - Lifetime
- 1989-03-31 JP JP1078725A patent/JPH0792842B2/ja not_active Expired - Lifetime
- 1989-04-28 BR BR898902035A patent/BR8902035A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
ES2044090T3 (es) | 1994-01-01 |
DE68909094D1 (de) | 1993-10-21 |
GB2217958A (en) | 1989-11-01 |
JPH01290080A (ja) | 1989-11-21 |
GB8810301D0 (en) | 1988-06-02 |
BR8902035A (pt) | 1989-12-05 |
JPH0792842B2 (ja) | 1995-10-09 |
EP0339778A1 (de) | 1989-11-02 |
EP0339778B1 (de) | 1993-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3789650T2 (de) | Verfahren und System zur Festkörpermodellierung. | |
DE3722444C2 (de) | Verfahren und Vorrichtung zum Erzeugen von Entwurfsmusterdaten | |
DE3872031T2 (de) | Verfahren zum berechnen und zur wiedergabe von sichtbildern eines objektes. | |
DE3889882T2 (de) | Modellierungssystem für Festkörper. | |
DE3889819T2 (de) | 3D-Dimensionierung in rechnerunterstützter Zeichnung. | |
DE3855639T2 (de) | Grafisches Anzeigeverfahren | |
DE69020780T2 (de) | Vielfache Tiefenpuffer für Graphik und Festkörpermodellierung. | |
DE3688918T2 (de) | System für geometrische Verarbeitung. | |
DE69100140T2 (de) | Verfahren zur Anzeige eines Bildteiles einer physikalischen Struktur. | |
DE3587129T2 (de) | Graphische anzeigesysteme. | |
DE3852596T2 (de) | Verfahren zur Erzeugung eines diskreten Netzes zur Simulation mittels finiter Differenzen. | |
DE69916450T2 (de) | Verfahren zum suchen von bildern, basierend auf einer invarianten indizierung der bilder | |
DE4303071A1 (de) | Verfahren und Vorrichtung zur Randbewertung in einer Nicht-Mannigfaltigkeits-Umgebung | |
DE69512262T2 (de) | Verfahren zum erzeugen von räumlich ausgewogenen abgrenzvolumenhierarchien zur anwendung in einer computererzeugten darstellung einer komplexen struktur | |
DE3608438A1 (de) | Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc | |
DE3825891A1 (de) | Verfahren zum entwurf einer gekruemmten flaeche | |
DE19612016A1 (de) | Verfahren zur rechnergestützten Geometriemodellierung | |
DE69232227T2 (de) | Verfahren zur Erzeugung von freigebogenen Linien und modellierten Flächen | |
DE3401060A1 (de) | Verfahren zum grafischen darstellen eines gebildes | |
DE69324363T2 (de) | Verfahren zur Abschrägung der Kanten eines geometrischen Objektes in einem rechnergestützten Entwurfssystem | |
DE69430572T2 (de) | System und verfahren zur parametrischen geometrischen modellierung | |
EP0372107A1 (de) | Verfahren zur Simulation der Bearbeitung eines Werkstückes und Darstellung desselben, sowie Vorrichtung zur Durchführung des Verfahrens | |
DE3789645T2 (de) | Verfahren und System zur Erzeugung von Objekttransformationsbildern. | |
WO2006061185A1 (de) | Verfahren zur ableitung von technischen zeichnungen aus 3d modellen mit mindestens zwei kollidierenden 3d körpern | |
DE68909094T2 (de) | Modellierung eines Festkörpers. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8330 | Complete renunciation |