-
Gebiet der Erfindung
-
Die
illustrative Ausführungsform
der vorliegenden Erfindung betrifft im Allgemeinen CAD (computerunterstützter Entwurf)
und insbesondere reverse Konstruktion (reverse engineering) von
3D-Abtastdaten, um ursprüngliche
Entwurfselemente (design intents) während eines Wiederentwurfsprozesses
eines Teils zu identifizieren.
-
Hintergrund
-
Anwendungen
des computerunterstützten Entwurfs
(CAD) werden benutzt, um Computermodelle von zwei- oder dreidimensionalen
Objekten als Teil des Produktionsprozesses für das tatsächliche physikalische Objekt,
welches modelliert wird, zu erzeugen. Die Modelle umfassen häufig mehrere
Teile, welche individuell entworfen werden müssen. Der Entwerfer der Modellteile
kann spezialisierte Modellierungsmerkmale benutzen, um die Modellteile
zu entwerfen. Beispielhafte Modellierungsmerkmale (welche Entwurfselemente
genannt werden können) umfassen
Extrudieren, Drehen, Enthülsen,
Ausrunden, Schweifen, Lofting, Mischen, Prägen, Musterkopieren, etc. Die
Entwurfselemente können parametrisiert
sein und der Modellentwerfer experimentiert häufig während des Entwurfsprozesses
mit verschiedenen Parameterwerten für die Entwurfselemente. Wenn
der Entwerfer mit dem Entwurf zufrieden ist, kann das tatsächliche
physikalische Objekt unter Benutzung des Modells erzeugt werden.
-
3D-Abtasten
erfasst physikalische Geometrieinformation für ein dreidimensionales Objekt
durch Aufnehmen von hochaufgelösten
Punkten, welche die Form des abgetasteten dreidimensionalen Objektes
repräsentieren.
Wenn sie erfasst sind, können
die 3D-Abtastdaten in ein CAD-Teilmodell konvertiert werden zur
weiteren Verarbeitung, um den Entwurf des dreidimensionalen Objektes
zu replizieren oder zu modifizieren. Diese Prozedur, 3D-Abtastdaten
für ein
dreidimensionales Objekt zu erfassen, um sie einer CAD-Anwendung bereitzustellen,
so dass das Objekt neu entworfen werden kann, wird reverse Konstruktion
genannt.
-
Unglücklicherweise
repräsentieren
die Rohabtastdaten, welche durch einen 3D-Abtaster während eines
reversen Konstruktionsprozesses erfasst sind, nur eine finale Geometrie
des Objekts. Die Tatsache, dass die 3D-Abtastdaten nur eine finale Geometrie
des Objekts repräsentieren,
macht es schwierig, die ursprünglichen
Entwurfselemente und ihre Parameterwerte zurückzuverfolgen. Zum Beispiel
ist es schwierig, von den 3D-Abtastdaten ursprüngliche Entwurfselemente und
ihre Parameterwerte für
Merkmale, wie etwa ein zweidimensionales Extrusionsprofil, eine
Richtung und einen Abstand, ein zweidimensionales Drehprofil, eine
Achse und einen Winkel, einen konstanten oder variierenden Ausrundungsradius,
eine Entwurfsebene und ihren Winkel, eine Schweifwegkurve, Mittellinien
von gekrümmten
Rohren, etc. zu bestimmen. Die Unfähigkeit, die ursprünglichen
Entwurfselemente zu bestimmen, führt
dazu, dass der reverse Konstruktionsprozess weniger präzise und
produktiv ist. Es wäre
wünschenswert,
einen computerisierten Prozess bereitzustellen, welcher mit einem
CAD-System arbeitet, welches den Benutzer programmtechnisch dabei
unterstützt,
ursprüngliche
Entwurfselemente unter Benutzung von Roh-3D-Abtastdaten zu explorieren
und zu berechnen.
-
Kurze Zusammenfassung
-
Die
illustrative Ausführungsform
der vorliegenden Erfindung ermöglicht
einem Benutzer, programmtechnisch Raum- und Oberflächenmodellierungsparameter
von Roh-3D-Rbtastdaten zu extrahieren und zu verwalten. Ein automatisierter
Prozess liest Roh-3D-Abtastdaten und arbeitet in Kommunikation mit
einem CAD-System, welches in der Lage ist, CAD-Teilmodellierung durchzuführen. Dem
Benutzer wird eine automatische Funktion bereitgestellt, ein Gittermodell
(gebildet von den Roh-3D-Abtastdaten) in Dutzende von Gitterbereichen
durch Abschätzen
von geometrischen Werten zu segmentieren, wie etwa Gitternormalen-
oder Krümmungswerten.
In einer Ausführungsform
kann der Ausdruck "Gitter" im Sinne von "Netz" oder "Masche" benutzt sein. In
einer Ausführungsform
kann der Ausdruck "geometrischer
Wert" im Sinne von "geometrischer Eigenschaft" benutzt sein. Eine
grafische Benutzerschnittstelle wird bereitgestellt, welche einem
Benutzer ermöglicht,
einen Typ des Entwurfselements zusammen mit einer oder mehreren
Gitterbereichen auszuwählen,
von welchen das Entwurfselement berechnet wird. Einige Entwurfselemente können auch programmtechnisch
durch wohlgeformte Merkmalsbereiche gefunden werden. Jedes Entwurfselement wird
in einem Vektor, einer Ebene oder einer Polyline abhängig von
dem Typ des Entwurfselements repräsentiert. Unter Polyline wird
in dieser Anmeldung eine Kurve verstanden, die mehrere Liniensegmente
umfasst. Zusätzlich
wird als Antwort auf eine Benutzernachfrage für Parameter des Modellierungsmerkmals
eine beste Approximation des angefragten Parameterwertes durch Verarbeitung
der Roh-3D-Abtastdaten
unter Benutzung eines Satzes von Funktionen berechnet. Der Benutzer
kann dann den approximierten Wert benutzen oder den Wert manuell
modifizieren.
-
In
einem Aspekt der vorliegenden Erfindung umfasst ein Verfahren zum
Approximieren von ursprünglichen
Entwurfselementen während
einer reversen Konstruktion unter Benutzung von 3D-Abtastdaten den
Schritt von Bereitstellen einer Kollektion von 3D-Abtastdaten, welche
die Form eines dreidimensionalen Objekts repräsentiert. Die 3D-Abtastdaten
werden in mehrere Gitter kombiniert, welche in ein Gittermodell
kombiniert werden, welches das dreidimensionale Objekt repräsentiert.
Das Verfahren segmentiert auch das Gittermodell mit einer Segmentierungseinrichtung
in mehrere Gitterbereiche. Zusätzlich
wählt das
Verfahren einen Gitterbereich und einen Typ eines Entwurfselements
aus, wobei das Entwurfselement ein ursprüngliches Entwurfsmerkmal ist.
Ein approximativer Wert des ausgewählten Typs des Entwurfselements
für den
ausgewählten
Gitterbereich wird programmtechnisch berechnet. Die Berechnung benutzt
die 3D-Abtastdaten
für den
ausgewählten
Gitterbereich.
-
In
einem anderen Aspekt der vorliegenden Erfindung umfasst ein System
zum Approximieren von ursprünglichen
Entwurfselementen unter Benutzung von 3D-Abtastdaten eine Segmentierungseinrichtung.
Die Segmentierungseinrichtung segmentiert programmtechnisch ein
Gittermodell, welches von 3D-Abtastdaten eines dreidimensionalen
Objektes gebildet ist, in mehrere Gitterregionen. Das System umfasst
auch eine Benutzerschnittstelle, welche die Auswahl eines Gitterbereichs
und eines Typs eines Entwurfselements gestattet. Das Entwurfselement
ist ein ursprüngliches
Entwurfsmerkmal. Zusätzlich
umfasst das System eine Entwurfselementeinrichtung in Kommunikation
mit einer Anwendung des computerunterstützten Entwurfs (CAD). Die Entwurfselementeinrichtung
berechnet programmtechnisch einen approximativen Wert für den ausgewählten Typ
des Entwurfselements für
den ausgewählten Gitterbereich.
Die 3D-Abtastdaten für
den ausgewählten
Gitterbereich werden beim Berechnen des approximativen Wertes für den ausgewählten Typ des
Entwurfselements benutzt.
-
Kurze Beschreibung der
Zeichnungen
-
Die
Erfindung wird im Besonderen in den angehängten Ansprüchen dargelegt. Die Vorteile
der Erfindung, welche oben beschrieben sind, wie auch weitere Vorteile
der Erfindung, können
besser mit Bezug auf die folgende Beschreibung verstanden werden,
welche in Verbindung mit den angehängten Zeichnungen betrachtet
wird, in welchen:
-
1 eine
Umgebung zeigt, welche geeignet ist, um die illustrative Ausführungsform
der vorliegenden Erfindung zu praktizieren;
-
2 ein
Flussdiagramm einer Folge von Schritten ist, welchen durch eine
Ausführungsform der
vorliegenden Erfindung gefolgt ist, um ursprüngliche Entwurfselemente unter
Benutzung von Roh-3D-Abtastdaten zu identifizieren;
-
3A die
Auswahl eines Gitterbereichs zeigt, um eine Extrusionsrichtung zu
berechnen;
-
3B den
berechneten Extrusionsvektor für
den Gitterbereich, welcher in 3A gewählt ist, zeigt;
-
4A die
Auswahl eines Gitterbereichs zeigt, um ein Drehzentrum zu berechnen;
-
4B den
berechneten Vektor zeigt, welcher das Drehzentrum für den Gitterbereich,
welcher in 4A ausgewählt ist, zeigt;
-
4C ein
berechnetes Drehzentrum für mehrere
ausgewählte
Gitterbereiche zeigt;
-
5A die
Auswahl eines Gitterbereichs zeigt, um ein Extrusionsprofil zu berechnen;
-
5B die
berechnete Polyline zeigt, welche das Extrusionsprofil für den Gitterbereich
ausdrückt,
welcher in 5A ausgewählt ist;
-
6A die
Auswahl eines Gitterbereichs zeigt, um ein Drehprofil zu berechnen;
-
6B die
berechnete Polyline zeigt, welche das Drehprofil für den Gitterbereich,
welcher in 6A ausgewählt ist, ausdrückt;
-
7A die
Auswahl eines Gitterbereichs zeigt, um eine Spiegelebene zu berechnen;
-
7B die
berechnete Ebene zeigt, welche die Spiegelebene für den Gitterbereich,
welcher in 7A ausgewählt ist, ausdrückt;
-
8A die
Auswahl von drei Gitterbereichen zeigt, um eine Schweifwegkurve
zu berechnen;
-
8B die
berechnete Polyline zeigt, welche die Schweifwegkurve für den Gitterbereich,
welcher in 8A ausgewählt ist, ausdrückt;
-
9A die
Auswahl eines Gitterbereichs zeigt, um eine Mittellinie eines gekrümmten Rohrs
zu berechnen;
-
9B die
berechnete Polyline zeigt, welche die Mittellinie eines gekrümmten Rohrs
für den Gitterbereich,
welcher in 9A ausgewählt ist, ausdrückt;
-
9C die
Kreise maximaler Passung und Mittelachse zeigt, welche benutzt sind,
um die Mittellinie des gekrümmten
Rohrs zu bestimmen;
-
9D einen
Baum minimaler Spannweite (MST) und eine Polyline, welche die aufeinanderfolgenden
MST-Punkte verbindet,
zeigt;
-
10 die
Minimierung eines Unterschnitts zeigt, während ein Teilungsrichtungselement
gefunden wird;
-
11A ein Gitter niedriger Qualität zeigt, von
welchem ein inkorrektes CAD-Raummodell erzeugt würde;
-
11B die Daten niedriger Qualität zeigt, welche für das Gitter
niedriger Qualität
der 11A benutzt wurden;
-
11C das Gitter nach einem Editieren des Gitters
zeigt;
-
11D das Gitter nach einem Kombinieren von Sätzen von
Daten zeigt;
-
11E ein wiedererzeugtes CAD-Raummodell zeigt;
-
12A und
-
12B die Berechnung von Drehwinkeln zeigen;
-
13 die
Berechnung eines Extrusionsabstands durch die vorliegende Erfindung
zeigt;
-
14 die
Berechnung von Entwurfswinkeln durch die vorliegende Erfindung zeigt;
-
15A die Berechnung einer lokalen Oberflächennormalen
zeigt;
-
15B ein Raummodell zeigt, welches von dem Äußeren eines
Gitters erzeugt ist;
-
15C einen Querschnitt des Raummodells der 15B zeigt;
-
15D das Raummodell der 15B zeigt,
nachdem eine Aushöhlungsoperation
durch die vorliegende Erfindung ausgeführt ist; und
-
16 die
Ausrundungsoperation der vorliegenden Erfindung zeigt.
-
Detaillierte Beschreibung
-
Die
illustrative Ausführungsform
der vorliegenden Erfindung stellt einem Benutzer Werkzeuge zur Verfügung, um
ursprüngliche
Modellierungsentwurfselemente zu approximieren während reverser Konstruktion
eines dreidimensionalen Objektes von 3D-Abtastdaten. Ein automatisierter
Prozess erlaubt einem Benutzer, auf bestimmte Gitterbereiche abzuzielen
und den besonderen Typ eines ursprünglichen Entwurfsmerkmals zu
spezifizieren, für
welchen der Benutzer interessiert ist, einen Parameterwert zu erhalten.
Die vorliegende Erfindung analysiert programmtechnisch die darunter
liegenden Gitterdaten, um das ursprüngliche Entwurfselement abzuleiten und
dem Benutzer eine beste Abschätzung,
wie eines Wertes des ursprünglichen
Entwurfselements, zu präsentieren.
Der Benutzer ist dann in der Lage, die Approximation zu benutzen
oder sie zu modifizieren, wie erforderlich, während er Raummodellteile erzeugt.
-
1 zeigt
eine Umgebung, welche geeignet ist, die illustrative Ausführungsform
der vorliegenden Erfindung zu praktizieren. Ein Rechengerät 2 umfasst
eine Kollektion von Roh-3D-Abtastdaten 4 für ein abgetastetes
dreidimensionales Objekt. Die Roh-3D-Abtastdaten 4 sind
von einem dreidimensionalen Abtaster gesammelt. Das Rechengerät 2 umfasst
auch eine CAD-Anwendung 6, eine Entwurfselementeinrichtung 8 und
eine Segmentierungseinrichtung 10. Das Rechengerät 2 kann
eine Arbeitsstation sein, ein Server, ein Laptop, ein Mainframe-Computer, ein PDA,
ein Cluster von Geräten, welche
zusammenarbeiten, ein virtuelles Gerät sein oder ein anderes Rechengerät sein,
welches in der Lage ist, die CAD-Anwendung 6,
die Entwurfselementeinrichtung 8 und die Segmentierungseinrichtung 10,
welche hierin diskutiert sind, zu unterstützen. Die Entwurfselementeinrichtung 8 und
die Segmentierungseinrichtung 10 sind ausführbare Softwareprozesse,
welche weiter unten beschrieben werden. Die Entwurfselementeinrichtung 8 und
die Segmentierungseinrichtung 10 können als Anwendungsprozesse
implementiert sein, als Anwendungs-Plug-Ins oder als eigenständige Anwendungen.
In einer Implementierung der vorliegenden Erfindung ist die Entwurfselementeinrichtung 8 in
die CAD-Anwendung 6 als ein Werkzeug integriert. In einer
weiteren Implementierung ist die Entwurfselementeinrichtung 8 in
Kommunikation mit der CAD-Anwendung 6,
ist aber kein Teil der CAD-Anwendung. In einer weiteren Implementierung,
ist die Segmentierungseinrichtung Teil der Entwurfselementeinrichtung 8.
-
Die
Rohabtastdaten 4 sind eine Kollektion von hochaufgelösten Punkten
in drei Dimensionen, welche die Form eines abgetasteten Objekts
repräsentiert.
In einer Implementierung sind die Rohabtastdaten 4 ein
Satz von dreieckigen Gittern, aber die Benutzung von anderen Formen
von Abtastdaten wird auch als innerhalb des Geltungsbereichs der vorliegenden
Erfindung betrachtet. Zum Beispiel können die Rohabtastdaten 4 Punkte
sein, viereckige Gitter, Tetraeder-Gitter oder Hexaeder-Gitter.
Kollektiv bildet der Satz von Gittern ein Gittermodell, welches
die Oberfläche
des abgetasteten Objekts repräsentiert.
Die Segmentierungseinrichtung 10 erlaubt einem Benutzer,
das Gittermodell 12 programmtechnisch in Gitterbereiche 14, 16 und 18 gemäß von Krümmungswerten
zu segmentieren. Es wird erkannt werden, dass mehrere gekrümmte Segmente
des Gittermodells zu einer größeren Zahl
von Gittern führt,
um so die Illusion einer glatten Oberfläche zu erzeugen. Die Entwurfselementeinrichtung 8 erzeugt eine
grafische Benutzerschnittstelle (GUI) 32 auf einer Anzeige 30,
welche in Kommunikation mit dem Rechengerät 2 ist. Die GUI 32 ermöglicht einem
Benutzer 20, einen bestimmten Gitterbereich 12, 14 und 16 in
dem Gittermodell und einen bestimmten Typ eines Entwurfselements
auszuwählen,
für welches
der Benutzer den ursprünglichen
Parameterwert zu berechnen wünscht.
Die Entwurfselementeinrichtung 8 analysiert die Rohabtastdaten 4 mit
einem Satz von Funktionen, wie weiter unten ausgeführt ist,
und berechnet einen approximativen Wert für das Entwurfselement, welches
durch den Benutzer 20 angefordert ist.
-
2 ist
ein Flussdiagramm einer Folge von Schritten, welchen durch eine
Ausführungsform
der vorliegenden Erfindung gefolgt wird, um ursprüngliche
Entwurfselemente unter Benutzung von Roh-3D-Abtastdaten zu identifizieren.
Die Folge von Schritten beginnt mit der Bereitstellung einer Kollektion
von Roh-3D-Abtastdaten 4 (Schritt 110). Die Roh-3D-Abtastdaten
können
als ein dynamischer Teil des Prozesses der Bestimmung eines Entwurfselements
erfasst werden oder können
vorher gespeicherte Abtastdaten sein. Ein Gittermodell 12 wird
von den Abtastdaten 4 erzeugt, wenn die Daten nicht vorher
in ein Modell kombiniert worden sind (Schritt 112). Die
Segmentierungseinrichtung 10 kann als Antwort auf einen
Benutzerbefehl benutzt werden, um programmtechnisch das Gittermodell 12 in
mehrere Gitterbereiche 14, 16 und 18 zu
segmentieren (Schritt 114). Die Entwurfselementeinrichtung
kann dann einige Entwurfselemente automatisch von Bereichen finden,
wo Merkmale gut erhalten sind. Ein Benutzer 20, welcher
das Gittermodell 12 auf der Anzeige 30 betrachtet,
kann dann eine GUI 32 benutzen, um einen oder mehrere Gitterbereiche 14, 16 und/oder 18 und
einen Typ eines Entwurfselements auszuwählen, für welchen er wünscht, dass
die Entwurfselementeinrichtung eine Approximation des ursprünglichen
Entwurfsparameterwertes berechnet (Schritt 116). Die Entwurfselementeinrichtung 8 analysiert
dann die Rohabtastdaten 4, wie weiter unten ausgeführt ist,
um einen wert für
den Typ des Entwurfselements für
den ausgewählten
Gitterbereich 14, 16 und/oder 18 zu berechnen
(Schritt 118).
-
Wie
oben bemerkt, erlaubt die vorliegende Erfindung einem Benutzer,
einen Gitterbereich auszuwählen,
für welchen
der Benutzer wünscht,
dass die Entwurfselementeinrichtung 8 einen Wert für ein ursprüngliches
Entwurfselement bestimmt. Um die vorliegende Erfindung besser zu
erklären,
wird die Bestimmung einer Zahl von verschiedenen Typen von Entwurfselementen
diskutiert werden. Es wird geschätzt
werden, dass die unten diskutierte Liste illustrativ ist und dass
andere Entwurfselemente, welche nicht spezifisch diskutiert sind,
auch innerhalb des Geltungsbereichs der vorliegenden Erfindung sind.
-
Die
berechneten Entwurfselemente werden durch einen oder mehrere eines
Vektors, einer Ebene oder einer Polyline abhängig von dem Typ des Entwurfselements
repräsentiert.
Zum Beispiel sind Extrusionsrichtungen, Drehzentren und Teilungsrichtungen
durch einen Vektor repräsentiert,
Teilungsrichtungen sind durch einen oder mehrere Vektoren repräsentiert,
Extrusionsprofile, Drehprofile, Schweifungswegkurven (sweeping path
curve), Mittellinien von gekrümmten
Rohren, Ausrundungszentren, virtuelle scharfe Kanten, Walzlinien,
Silhouettenkurven und Teilungskurven sind durch Polylines repräsentiert,
und orthogonale Ebenen und Spiegelebenen sind durch Ebenen repräsentiert.
Die Entwurfselementeinrichtung führt
Fehlerminimierungsroutinen durch, um Vektor-, Ebene- oder Poyline-Orientierungen
von dem Gitter zu bestimmen. Vektoren haben die variablen Positionen
X, Y, Z und Richtung I, J, K. Ebenen haben die variablen Positionen
X, Y, Z und Normalenrichtung I, J, K. Polylines sind viele Segmente
von geraden Linien, welche von Polygonkanten abgeleitet sind (das
ist von einer Silhouetten-Polyline-Erzeugung, welche eine Projektion der
Polygonkante auf eine Ebene ergibt).
-
Die
Entwurfselementeinrichtung 8 führt Fehlerminimierungsroutinen
durch, um Entwurfselemente von dem Gitter zu bestimmen. Ein Beispiel
für eine rechteckige
Form wird unten aufgelistet:
- 1) Eine Extrusion
wird unter Benutzung eines Basisentwurfs erzeugt. Von der Form ist
bekannt, dass sie rechteckig ist. Die Dimensionen des Rechtecks
können
X & Y genannt
werden, und der Extrusionsabstand Z. X, Y & Z sind die Breite, Tiefe und Höhe der rechteckigen
Schachtel. Dieses sind die Parameter des Modells.
- 2) Die Nebenbedingung, dass die Entwurfslinien senkrecht zueinander
sind, wird inhärent
erzwungen, weitere Nebenbedingungen könnten hinzugefügt werden.
- 3) Der Benutzer kann wünschen,
den Fehler über das
ganze Gitter zu minimieren (die Abweichung zu minimieren) oder alternativ
kann der Benutzer wünschen,
den Fehler über
ausgewählte
Gitterbereiche zu minimieren.
- 4) Die Parameter X, Y, Z werden unter Benutzung eines multivariablen
Optimierungsprozesses und mit automatischen Ausreißer (Rauschdaten)-Entfernungstechniken
eingestellt, um die Abweichung zu minimieren.
- 5) Eine multivariable Optimierung kann in vielen numerischen
Einstellungen benutzt werden. Zum Beispiel startet der Benutzer,
um eine gerade Linie an Daten anzupassen, mit der Geradengleichung
y = m·x
+ b, wobei b und m Variablen sind und y und x die zwei Datensätze sind.
Der Benutzer wählt
Startwerte für
m & b. Der Fehler
ist die Differenz (oder ein "quadratischer" Abstand; Summe von
quadratischen Abständen)
zwischen den Datensätzen
y und den berechneten y unter Benutzung der Startwerte m & b und x. m & b werden dann
eingestellt, bis der Fehler minimiert wird. Dies ist die Minimierung
des Fehlers der kleinsten Quadrate, oder eine multivariable Optimierung.
-
Die
Entwurfselementeinrichtung 8 kann dazu benutzt werden,
eine Extrusionsrichtung eines Entwurfselements zu bestimmen. Der
Benutzer wählt
einen Gitterbereich oder -bereiche aus, welche Seitenflächen sein
können,
wenn ein ebenes Profil extrudiert wird. Die Entwurfselementeinrichtung 8 berechnet
dann einen Vektor, welcher am besten die Extrusionsrichtung ausdrückt. Dieser
Prozess kann mit Bezug auf die 3A und 3B gesehen
werden. In 3A wählt der Benutzer durch ein
Steuerelement 180 in der grafischen Benutzerschnittstelle 32 die
vorderen vier zylindrisch geformten Bereiche 202, 204, 206 und 208 in
dem Gittermodell 200 aus. Der Benutzer wählt auch
durch ein weiteres Steuerelement 190 das "Extrusionsachse"-Verfahren aus. Durch
Beginnen mit einer Schätzung
für die
Extrusionsachse (A) und Bestimmen des Winkels zwischen der Achse
und allen normalen Vektoren aller Flächen in dem Bereich (N) wird
ein Wert AN für
alle Flächen in
dem Bereich erhalten (dies ist der Winkel zwischen der Normalen
der Polygonfläche
und der momentan besten Schätzung
für die
Extrusionsachse). Eine Minimierungsprozedur wird dann durchgeführt, um
die Unterschiede zwischen dem Satz von AN-Messungen zu minimieren.
Nach der Minimierungsprozedur wird ein mittlerer AN-Wert erzeugt.
AN = 90 Grad – Winkel
der Aushebeschräge
(daher, wenn AN = 90 Grad ist, gibt es keine Aushebeschräge in dem
extrudierten Teil). Zusätzliche
Optionen, welche die Achse betreffen, wie etwa Entfernen von Ausreißern, Abtastraten
und der maximale Winkel für
den Extrusionsvektor, können
auch durch den Benutzer durch ein drittes Steuerelement 195 konfiguriert
werden. Auf die Auswahl der vier Bereiche 202, 204, 206 und 208 folgend,
berechnet die Entwurfselementeinrichtung 8 einen Vektor
für die
Extrusionsrichtung. Der Algorithmus für die Extrusionsrichtung für Gitterdaten
wird benutzt, welcher die Lösung
einer Matrixgleichung umfasst. Der berechnete Extrusionsrichtungsvektor 220 für den benutzerausgewählten Gitterbereich
ist in 3B umkreist. Der Teil des Extrusionsrichtungsvektors 220,
welcher innerhalb des Körpers
des Gitterbereichs ist, ist durch eine gestrichelte Linie gekennzeichnet.
-
Der
Prozess, ein Entwurfselement eines Drehzentrums zu bestimmen, ist ähnlich.
Der Benutzer wählt
einen oder mehrere Gitterbereiche aus (welche Seitenflächen sein
können,
wenn ein ebenes Profil gedreht wird). Die Entwurfselementeinrichtung 8 berechnet
dann einen Vektor, welcher am besten die Drehmittelachse ausdrückt. Dieser
Prozess kann mit Bezug auf die 4A, 4B und 4C gesehen
werden. In 4A wählt der Benutzer den ersten
skizzierten Zylinder 202 (Bereich 2) unter Benutzung der
Auswahlsteuerung 180 aus, welcher kegelförmig ist.
Es wäre
wünschenswert,
die Drehachse dieses Zylinders zu schätzen.
-
Der
Benutzer benutzt die Verfahrenssteuerung 190 in der grafischen
Benutzeroberfläche
32, um das "Drehachsen"-Verfahren auszuwählen. Der Drehvektoralgorithmus
wird benutzt, welcher die Lösung
einer Matrixgleichung umfasst. Für
den in 4A ausgewählten Bereich zeigt die umkreiste gestrichelte
Linie in 4B das berechnete Drehzentrum 230.
Das Drehzentrum kann auch für
mehrere Bereiche detektiert werden. In 4C wählt der Benutzer
Bereich 1 (242), 2 (244) und 3 (246)
in Gittermodell 240 mit der Auswahlsteuerung 180 aus. Die
Entwurfselementeinrichtung 8 berechnet das gezeigte Drehzentrum 250 für die benutzerausgewählten drei
Bereiche 242, 244 und 246.
-
Die
Entwurfselementeinrichtung 8 kann auch dazu benutzt werden,
ein Entwurfselement eines Extrusionsprofils zu bestimmen. Der Benutzer
wählt einen
Gitterbereich oder -bereiche (welche Seitenflächen sein können, wenn ein ebenes Profil
extrudiert wird) aus und eine Entwurfsebene, auf welcher das Profil
erzeugt wird. Die Entwurfselementeinrichtung 8 erzeugt
eine Silhouettenkurve der Bereichsdaten eines extrudierten Raumbereichs
und projiziert die Silhouettenkurve auf die Entwurfsebene (mit der
Extrusionsachse als Normale). Eine Folge von linearen Segmenten
auf der Ebene (die Projektion der Silhouettenkurve) wird in einer
Polyline (dem Extrusionsprofil) repräsentiert. Der Prozess kann
mit Bezug auf die 5A und 5B gesehen
werden. Wenn der Benutzer in 5A die
vier vorderen zylindrischen Bereiche 202, 204, 206 und 208 und
die vier hinteren zylindrischen Bereiche 201, 203, 205 und 207 auswählt und
einen "Extrusionsprofil"-Befehl auswählt, wird
das Entwurfselement eines Extrusionsprofils 260, welches
in 5B gezeigt ist, erzeugt. Die Entwurfselementeinrichtung 8 bestimmt
intern die Extrusionsrichtung unter Benutzung des Extrusionsrichtungsbefehls.
Unter Benutzung aller abgeflachten (projizierten) Daten passt die
Entwurfselementeinrichtung 8 eine Folge von Linien an diese
Daten auf die beste Weise an, um die Polyline zu erzeugen, welche
das Extrusionsprofil ist. Das Ergebnis ist eher eine Polyline als
exakte Kreise.
-
Um
ein Entwurfselement eines Drehprofils zu bestimmen, wählt der
Benutzer einen Gitterbereich oder -bereiche (welche Seitenflächen sein
können,
wenn ein ebenes Profil gedreht wird) und eine Drehmittelachse aus.
Die Entwurfselementeinrichtung 8 erzeugt ein gedrehtes
Bild des Gitterbereichs oder der -bereiche, welche ausgewählt sind,
und erzeugt eine Querschnittspolyline zwischen dem gedrehten Bild
und einer Ebene, welche in der Drehachse liegt. Dieser Prozess kann
mit Bezug auf die 6A und 6B gesehen
werden. In 6A wählt der Benutzer drei Bereiche 242, 244 und 246 von
dem Modell 240 aus und benutzt einen "Drehprofil"-Befehl, welcher durch die Entwurfselementeinrichtung 8 durch
die grafische Benutzeroberfläche 32 verfügbar ist,
um den Drehabschnitt oder das "Drehprofil" zu bestimmen. Das
Drehprofil ist eine Schätzung
des 2D-Entwurfs, welcher dazu benutzt werden könnte, um eine Drehachse gedreht
zu werden und ein Raummodell zu erzeugen. Das Drehprofil 270, welches
für die
ausgewählten
Bereiche in dem Modell 240 in 6A berechnet
ist, ist in 6B gezeigt. Drehen des Musters 270 der 6B um
eine mittlere Achse würde
die ausgewählten
Bereiche 242, 244 und 246 am besten anpassen.
Um das Drehprofil 270 zu bestimmen, führt die Entwurfselementeinrichtung
Operationen in derselben Weise aus wie für das Extrusionsprofil, welches
oben diskutiert ist, mit Ausnahme, dass ein "Drehzentrum"-Befehl benutzt wird und die gesamten
Bereichsdaten, welche einem gedrehten Raummodell entsprechen, entlang
einer Drehung um dieses Zentrum auf eine Entwurfsebene projiziert
werden, welche in der gleichen Ebene mit der Drehachse liegt (im
Gegensatz zur Benutzung einer "Extrusionsrichtungs"-Funktion und Projektion
von Bereichsdaten). Die Punkte werden ausgedünnt und ein Verfahren eines
Baums mit minimaler Spanne wird benutzt, um eine Polyline zu bilden.
Ein exemplarisches Verfahren eines Baums mit minimalem Spann kann
in "Curve Reconstruction from
Unorganized Points",
In-Kwon Lee, POSTECH Information Research Laboratories gefunden
werden.
-
Die
Entwurfselementeinrichtung 8 kann auch dazu benutzt werden,
ein Entwurfselement einer Spiegelebene zu bestimmen, wenn gegebene
Gitterbereiche symmetrisch zu einer bestimmten Ebene sind. Um die
Spiegelebene zu identifizieren, wählt der Benutzer einen Gitterbereich
oder -bereiche aus und spezifiziert eine Ebene als eine anfängliche
Approximation, welche grob nahe der Spiegelebene ist. Die Entwurfselementeinrichtung 8 kopiert
den gegebenen Gitterbereich oder -bereiche und transformiert ihn/sie
symmetrisch zu der gegebenen Ebene. Die Entwurfselementeinrichtung 8 transformiert
den kopierten Gitterbereich oder -bereiche, um die Summe der Abstände zwischen
Punkten in überlappenden Teilen
durch einen ICP (iterative nächste
Punkte)-Algorithmus zu minimieren und die resultierende Transformationsmatrix
von dem ICP-Algorithmus wird dazu benutzt, die Spiegelebene einzustellen.
Die Entwurfselementeinrichtung 8 speichert die Transformationsmatrix
und wendet sie iterativ auf die gegebene Ebene an, bis der Algorithmus
konvergiert und gibt dann das Resultat an den Benutzer 20 aus.
-
Der
Prozess, eine Spiegelebene zu bestimmen, kann mit Bezug auf die 7A und 7B gesehen
werden. In 7A ist eine Spiegelebene 302 für ein Modell 300 gezeigt.
Die Spiegelebene 302 repräsentiert die initiale Approximation,
welche durch den Benutzer gegeben ist. Die Ausführung eines "Spiegelebene"-Befehls unter Benutzung
der Entwurfselementeinrichtung 8 der vorliegenden Erfindung
für alle
Bereiche führt
dazu, dass die Spiegelebene 304 für das Modell 300,
welches in 7B gezeigt ist, berechnet wird.
Die Spiegelebene 304 wird durch Anwenden der Transformationsmatrix
auf die approximierte Ebene 302, welche durch den Benutzer
bereitgestellt ist, berechnet.
-
Um
ein Entwurfselement einer Schweifwegkurve zu bestimmen, wählt der
Benutzer einen Gitterbereich oder -bereiche (welche Seitenflächen sein können) aus,
wenn eine Profilkurve geschweift wird. Dieser Prozess kann mit Bezug
auf 8A und 8B gesehen
werden. In 8A werden die drei Bereiche 312, 314 und 316 für das Modell 310 (nur der
obere Bereich/die obere Fläche 312 ist
direkt in 8A sichtbar), welche die geschweifte
Oberfläche umfassen,
durch den Benutzer ausgewählt.
Die Entwurfselementeinrichtung schätzt dann eine Schweifkurve 318 für das Modell 300,
wie in 8B gezeigt. Die Oberfläche kann
dann dadurch erzeugt werden, dass das dreiseitige Profil entlang
der gezeigten Polyline 318 geschweift wird. Dem Algorithmus
wird ein Startpunkt auf dem Schweifprofil gegeben (die Führungslinie
ist, was der Benutzer am Ende zu bestimmen wünscht). Eine Krümmung eines
Schnitts (die Krümmung
ist abhängig
von der Schnittrichtung und ist eine diskrete Berechnung) wird lokal
bestimmt (an diskreten Punkten) auf der Gitteroberfläche. Die Schnittrichtungen,
welche zu der lokalen minimalen und maximalen Krümmung führen, werden berechnet und
sind die Hauptkrümmungsrichtungen.
Die Schnittrichtungen sind orthogonal zueinander bei einem gegebenen
Punkt. Die Software verfolgt den Krümmungsfluss basierend auf den
Hauptkrümmungsrichtungen
(basierend auf den diskreten Schnittkrümmungsbestimmungen). Eine Führungskurve
wird basierend auf der initialen Suchstellung berechnet (da es eine
unendliche Zahl von Führungskurven
für eine
gegebene Oberfläche
gibt).
-
Die
Entwurfselementeinrichtung 8 kann auch dazu benutzt werden,
eine Mittellinie eines Entwurfselements eines gekrümmten Rohrs
zu bestimmen. Diese Einrichtung benutzt einen zu dem Entwurfselement
einer Schweifführungskurve ähnlichen
Arbeitsablauf. Der Benutzer 20 wählt einen Gitterbereich oder
-bereiche (welche Seitenflächen
sein können) aus,
wenn ein kreisförmiges
Profil geschweift wird. Der Prozess arbeitet ähnlich wie der für die Schweifführungskurve,
welcher oben diskutiert ist. Dieser Prozess kann mit Bezug auf die 9A und 9B gesehen
werden. In 9A sind Daten von einer unvollständigen Abtastung
eines Rohrs mit einer Krümmung
in der Mitte 350 gezeigt. Die Entwurfselementeinrichtung
kann das ursprüngliche
Entwurfselement dadurch berechnen, dass die Mittellinie des Rohrs 350 bestimmt
wird, und erzeugt eine Kurve 352 einer besten Anpassung,
welche durch die Mittellinie tritt, wie in 9B gezeigt.
Der Prozess, die Mittellinie zu bestimmen, wird weiter in 9C und 9D erklärt und beginnt
mit der Bestimmung einer "medialen Achse" für den ausgewählten Bereich,
wie in 9C gezeigt. Eine mediale Achse
ist ein Satz von Punkten (Stellen), wo der Punkt 255 ein
Mittelpunkt einer Sphäre
ist, welche in den Bereich (maximale Sphäre) 353 eingeschrieben
ist. Die Punkte der medialen Achse sind ausgedünnt und ein Baum eines minimalen
Spanns (MST) wird berechnet 357, wie in 9D gezeigt.
Eine Polyline wird erzeugt, welche ein Satz von Liniensegmenten
ist, welche die MST-Punkte nachfolgend verbinden. Die ursprüngliche
Punktwolke wird ausgedünnt
unter Benutzung eines Verfahrens einer medialen Achse unter Benutzung
von maximalen Sphären
und ein Baum eines minimalen Spanns wird von den Punkten der medialen
Achse erzeugt. Das aufeinanderfolgende Segment ist in der unteren
Figur umkreist und ist die Polyline 359, welche die Mittellinie
des gekrümmten
Rohrs repräsentiert.
-
Die
Entwurfselementeinrichtung kann auch ein Element einer Teilungsrichtung
berechnen. Wenn ein Formteil mit zwei Formen (etwa durch Gießen) erzeugt
wird, eine für
das Oberteil und eine für
das Unterteil, müssen
die Formen auseinandergleiten können
und dürfen
nicht durch das geformte Teil aufgehalten werden. Zum Beispiel kann
man ein Stundenglas (oder dessen äußere Oberfläche) nur durch Setzen zweier
Formen an den Seiten bilden. Wenn Formen oben oder unten wären, wäre es nicht
möglich, sie
zu entfernen. Die Software berechnet eine oder viele mögliche Richtungen
zum Teilen (Teilungsrichtungen). Diese können als ein oder viele Vektoren oder
ein Kegel visualisiert werden, wobei all diese mögliche Teilungsrichtungen anzeigen.
Die Teilungsrichtung wird derart bestimmt, um zu versuchen, einen
Unterschnitt des Teils zu minimieren. Toleranzparameter betreffend
den Grad von erlaubtem Unterschnitt sind mit dieser Einrichtung
anwendbar. Die Minimierung eines Unterschnitts kann mit Bezug auf 10 gesehen
werden. Ein gegossenes Teil 360 umfasst Oberflächen 362, 364, 366, 368, 370, 372, 374 und 376.
Die Entwurfselementeinrichtung 8 versucht, eine Teilungsrichtung
zu finden, welche die kleinste Zahl von Oberflächen schneidet. Die Richtung 380 der
vertikalen Linie wird zu einem großen Grad von Unterschnitt führen, wenn
sie als die Teilungsrichtung benutzt wird, weil Vektoren in dieser Richtung
mehr als zwei Oberflächen
schneiden (sie wird Oberflächen 362, 364, 366 und 368 schneiden). Im
Gegensatz dazu wird die Richtung 390 der horizontalen Linie
zu weniger Unterschnitt führen
und wäre
ein wahrscheinlicherer Kandidat für eine Teilungsrichtung (weil
sie nur die Oberflächen 374 und 376 schneidet).
Die Berechnung von normalen Winkeln auf dem Gitter in Bezug auf
eine mögliche
Teilungsrichtung wird benutzt, um die eine (und später viele)
mögliche
Richtungen für
die Teilungsrichtung zu bestimmen. Die vorliegende Erfindung wird
auch Teilungskurven erzeugen, welches Kurven sind, um ein Modell
in zwei unterschnittfreie Modelle zu trennen, wenn das Modell entlang
der gegebenen Teilungsrichtung und Aushebeschrägewinkels bewegt wird.
-
Zusätzlich kann
die Entwurfselementeinrichtung 8 auch dazu benutzt werden,
um ein Entwurfselement einer Achse eines kreisförmigen Musters zu bestimmen.
Um ein Entwurfselement einer Achse eines kreisförmigen Musters zu bestimmen,
wählt der Benutzer
einen Gitterbereich oder -bereiche aus, welche durch das kreisförmige Muster
erzeugt werden können.
Die Entwurfselementeinrichtung berechnet dann Transformationsmatrizen
durch Registration zwischen Bereichen. Die Registration zwischen
Bereichen passt geometrisch ein dreidimensionales Modell an. Der
Registrationsprozess benutzt einen PAT (Hauptachsentransformation)
und ICP (interative nächste
Punkte)-Algorithmus. Der PAT-Algorithmus richtet den Schwerpunkt
und die Hauptachse des Modells aus. Der ICP-Algorithmus minimiert iterativ die Summe
von Abständen
zwischen übereinstimmenden
Punkten mit Kriterien von transformierten Modellen. Der PAT wird
als initiale Grobausrichtung verwendet und ICP wird als feine Ausrichtung benutzt.
Das Ergebnis des Registrationsprozesses wird durch eine Transformationsmatrix
(Rotation, Translation) ausgedrückt.
Die Entwurfselementeinrichtung 8 wählt einen Referenzbereich von
einer Eingabe von n-Bereichen aus. n-1-Transformationsmatrizen werden durch
n-1-Registrationen von jedem der n-1-Bereiche zu dem Referenzbereich
berechnet. Die Anwendung extrahiert dann eine Drehmittelachse von
den berechneten Transformationsmatrizen.
-
Ähnlich kann
die Entwurfselementeinrichtung 8 auch dazu benutzt werden,
ein Entwurfselement einer Achse eines linearen Musters zu bestimmen.
Um ein Entwurfsmuster einer Achse eines linearen Musters zu bestimmen,
wählt der
Benutzer einen Gitterbereich oder -bereiche aus, welche durch das
lineare Muster erzeugt werden können.
Die Entwurfselementeinrichtung berechnet dann Transformationsmatrizen
durch Registration zwischen Bereichen, welche durch eine gesperrte
Drehung eingeschränkt
sind. Der Registrationsprozess, welcher durch gesperrte Drehung
eingeschränkt
ist, arbeitet in derselben Weise wie der Registrationsprozess, welcher
oben beschrieben ist, außer
dass er den Rotationsterm der Transformation ignoriert (das ist
nur eine Translationstransformation) bei der Registration. Die Anwendung
extrahiert dann eine Achse eines translationalen Musters von den
berechneten Transformationsmatrizen.
-
Zusätzlich kann
die Entwurfselementeinrichtung 8 dazu benutzt werden, ein
Ausrundungszentrum, eine virtuelle scharfe Kante, eine Wulstlinie
und eine Silhouettenkurve, welche als Polylines repräsentiert
sind, zu bestimmen. Für
ein Ausrundungszentrum wählt
der Benutzer einen Gitterbereich oder -bereiche, welche durch Ausrunden
erzeugt werden können.
Die Entwurfselementeinrichtung 8 berechnet Polylines unter
Benutzung von Zentren, welche von Ausrundungsbereichen extrahiert
sind. Für
virtuelle scharfen Kanten wählt
der Benutzer einen Gitterbereich oder -bereiche aus und die Entwurfselementeinrichtung
berechnet eine vergrößerte angepasste Oberfläche oder
Gitter. Die Entwurfselementeinrichtung berechnet dann Polylines
eines Schnitts zwischen vergrößerten Entitäten. Für eine Wulstlinie wählt der
Benutzer einen Gitterbereich oder -bereiche aus, welche einen Wulstlinienbereich
umfassen. Die Entwurfselementeinrichtung 8 extrahiert dann Nutbereiche
von den Gitterbereichen und berechnet Polylines, welche durch die
Mittellinie der Nut laufen. Für
eine Silhouettenkurve wählt
der Benutzer einen Gitterbereich oder -bereiche aus und einen Richtungsvektor
(oder Ebene). Wenn eine Ebene ausgewählt ist, projiziert die Entwurfselementeinrichtung
einen Gitterbereich oder -bereiche auf die ausgewählte Ebene.
Die Entwurfselementeinrichtung erzeugt dann Polylines von Begrenzungsschleifen
des projizierten Gitterbereichs oder der Gitterbereiche. Wenn ein
Vektor ausgewählt
ist, berechnet die Entwurfselementeinrichtung Polylines als Teilungslinien.
-
Wenn
die illustrative Ausführungsform
der vorliegenden Erfindung ein angefragtes Entwurfselement berechnet
hat, kann der Benutzer den Gitterbereich dadurch modifizieren, dass
mehr Gitter in ihn einbezogen werden, dass Gitter von ihm ausgeschlossen
werden, dass die Geometrie geglättet wird,
oder dass andere Gittereditierwerkzeuge benutzt werden. Wenn ein
Gitter hinzugefügt
wird, erlaubt die vorliegende Erfindung einem Benutzer, die Datei
des Gitters auszuwählen
und sie in das Programm zu importieren. Bereiche können von
diesem neu importierten Gitter erzeugt werden und der Benutzer kann
dann einen "Vereinige
Bereich"-Befehl benutzen,
um es zu einem Bereich hinzuzufügen. Der
Benutzer ist auch in der Lage, elementare Gitteroperationen, wie
etwa "Vereinige
Gitter" und "Kombiniere Gitter" auszuführen. Die "Vereinige Gitter"-Operation vereinigt die Gitter in ein
Gitter durch Ausführen
von Mittelungsoperationen auf überlappende
Bereiche. In dem Beispiel unten, wo es Löcher in dem Startgitter gibt,
ist dann das "Vereinigte
Gitter", wenn der
Benutzer eine Vereinigungsoperation unter Verwendung eines importierten
Gitters durchführt,
welches keine Löcher
hat, eine Mittelung des Startgitters, welches Löcher hat, und des importierten
Gitters, welches keine Löcher
hat. Die Daten von dem importierten Gitter werden benutzt, um die Öffnungen
in dem Startgitter zu füllen.
die "Kombiniere Gitter"-Funktion arbeitet ähnlich aber
ohne Mittelung.
-
Nachfolgend
auf die Gittereditierschritte berechnet die Entwurfselementeinrichtung 8 automatisch
erneut Entwurfselemente. Der Entwurfselementbestimmungsprozess,
welcher oben diskutiert ist, wird dann für die neuen Daten ausgeführt. Die Entwurfselementeinrichtung 8 propagiert
die Änderungen
durch Verfolgen von Assoziationen mit allen anderen Entitäten, wie
etwa 3D-Körper-Modellierungsmerkmalen,
Ausrichtungen, und 2D-Entwurfsprofilen.
-
Der
Nutzen der oben bemerkten Merkmale kann mit Bezug auf die 11A–11E gesehen werden. Wenn mit Abtastdaten von niederer
Qualität gestartet
wird und keine Modifikationen vorgenommen werden, führt es zu
einem CAD-Raummodell, welches
nicht korrekt ist. 11A zeigt ein Gitter 400 von
niederer Qualität,
von welchem ein inkorrektes CAD-Raummodell erzeugt würde. 11B zeigt Daten 402 von niederer Qualität, welche
benutzt werden, um das inkorrekte CAD-Raummodell zu erzeugen. Die
vorliegende Erfindung erlaubt dem Benutzer jedoch, die Abtastdaten
durch Ausführen
von Gitteroperationen, wie etwa "Glätten" und "Ausfüllen von Löchern" auszubessern, oder
Gitter hinzuzufügen oder
zu entfernen, um ein besseres Gitter zu erzeugen. Ein verbessertes
Gitter, nachdem Gittereditieroperationen auf den Abtastdaten 402 von
niederer Qualität
durchgeführt
worden sind, ist in dem Modell 404, welches in 11C gezeigt ist, gezeigt. wie oben diskutiert,
erlaubt die illustrative Ausführungsform
der vorliegenden Erfindung, dass Abtastdaten vereinigt werden können, wie
in dem Modell 410, welches in 11D dargestellt
ist, gezeigt ist. Die kombinierten Sätze von Daten werden dazu benutzt,
die Leerstellen 412, 414, 416 und 418 in
dem Gitter zu füllen,
das Rauschen auszumitteln, oder die schlechten Daten zu entfernen.
Gitteroperationen, welche Hinzufügen
oder Entfernen von Daten des Gitters umfassen, werden automatisch
durch die Entwurfselementeinrichtung verfolgt, welche das Entwurfselement
erneut berechnet. Diese Änderungen
beeinflussen die Berechnung von Vektoren, Ebenen und Polylines.
Die erneute Berechnung beeinflusst andere Entitäten, wie etwa 3D-Körper-Modellierungsmerkmale,
Ausrichtungen, 2D-Entwurfsprofile und andere Entitäten, wie
ersichtlich in der automatischen erneuten Erzeugung eines aktualisierten
CAD-Raummodells 420, welches in 11E gezeigt
ist.
-
Für "Drehwinkel"- und "Extrusionsabstand"-Merkmale wird ein
Satz von Messungen von individuellen Polygonen in der kreisförmigen Richtung
der Drehung oder der linearen Richtung der Extrusion erzeugt, um
diese Maße
(Winkel oder Abstand) zu bestimmen. Beide diese Maße erfordern eine
initiale Entwurfsebene (und der Drehwinkel erfordert zusätzlich eine
Drehmittellinie). Die Bestimmung des Drehwinkelmerkmals kann mit
Bezug auf die 12A und 12B gesehen
werden. Der Winkel zwischen der Entwurfsebene 434 und der
Mitte jeder Fläche
in einem Bereich 432 in einem Modell 430 wird
gemessen (Winkel 1 (440), Winkel 2 (442), und
Winkel 3 (444). Ausreißer
werden basierend auf der Normalen jeder Polygonfläche und
der Normalen der Entwurfsebene und der Drehachse 436 gefiltert. Eine
Drehachse ist durch eine Linie definiert, welche alle Positionsnormalenvektoren
bei Datenpunkten schneidet (alle Punkte in dem ausgewählten Bereich).
Ein "Positionsnormalenvektor
bei einem Datenpunkt" ist
ein Richtungsvektor, welcher von einem Abtastdatenpunkt zu der Normalenrichtung
ausgeht. Brauchbare Winkelmessungen der Flächen in dem Bereich (diese,
welche nicht durch den Ausreißerfilterungsprozess
entfernt worden sind) werden zusammen gemittelt (der maximale und
minimale Winkel der brauchbaren Flächen wird auch gespeichert). Der
Mittelwert (mittlerer Winkel von brauchbaren Flächen) wird dem Benutzer 20 vorgeschlagen,
wie der maximale/minimale Winkel, welcher als der Drehwinkel für den Entwurf
zu benutzen ist.
-
Die
Berechnung des Extrusionsabstandsmerkmals wird mit Bezug auf die 13 diskutiert. Ähnlich zu
der oben diskutierten Berechnung des Drehwinkels wird der Extrusionsabstand 550, 552 und 554 von
jeder Flächenmitte 542, 544 und 546 zu der
Entwurfsebene 540 berechnet. Ausreißer werden herausgefiltert
basierend auf der Normalen jeder Polygonfläche und der Entwurfsnormalen 540 (sie
müssen
innerhalb einer erlaubten Fehlertoleranz parallel sein). Brauchbare
Abstandsmessungen der Flächen in
dem Bereich (die, die nicht durch den Filterprozess der Ausreißer entfernt
wurden) werden zusammen gemittelt (der maximale und minimale Abstand
der brauchbaren Flächen
wird auch gespeichert). Der Mittelwert (mittlerer Abstand von brauchbaren
Flächen)
wird dem Benutzer 20 vorgeschlagen, wie der maximale/minimale
Abstand, welcher als der Extrusionsabstand für den Entwurf zu benutzen ist.
-
Die
illustrative Ausführungsform
der vorliegenden Erfindung berechnet auch für den Benutzer eine beste Schätzung, wenn
er Dimensionen festlegt, welche für Aushebeschräge-, Aushöhlen-, und
Ausrundungsmerkmale erforderlich sind.
-
Wenn
ein Benutzer ein Aushebeschrägemerkmal
hinzufügt,
taucht ein Aushebeschrägedialogfenster
auf. In dem Dialogfenster kann der Benutzer einen grafischen Knopf
klicken, um den Aushebeschrägewinkel
zu berechnen, welcher der geeignetste Winkel für die Roh-3D-Abtastdatengeometrie
ist. Die vorliegende Erfindung berechnet die Schnittkurve zwischen
den Roh-3D-Abtastdaten und einer Ebene, welche leicht nach oben
von der neutralen Ebene bewegt ist, von welcher der Aushebeschrägewinkel berechnet
ist. Bei abgetasteten Punkten auf der Schnittkurve werden Ebenen
erzeugt, deren Normalenvektoren tangential an die Schnittkurve sind.
Die Schnittlinien zwischen diesen Ebenen und den Roh-3D-Abtastdaten
werden dann berechnet. Winkel werden zwischen Normalenvektoren der
neutralen Ebene und definierten Ebenen gemittelt (die Ebenen, deren
Aushebeschrägewinkel
fraglich ist). Die vorliegende Erfindung schlägt dem Benutzer drei Winkelwerte
vor: Den minimalen, den maximalen und den mittleren Winkel.
-
Der
Prozess, Aushebeschrägewinkel
zu berechnen, ist in 14 dargestellt. Durch Auswählen zweier
Bereiche 502 und 504 in dem Modell 500 (der normale
Bereich – flacher
Basisbereich 502 in 14; und
der abgeschrägte
Bereich – der
gewinkelte, geneigte Bereich 504 in 14) können die zwei
Bereiche an zwei ebene Oberflächen 506 und 508 angepasst
werden. Es wird anerkannt werden, dass die Operation nicht auf ebene
Anpassoberflächen
beschränkt
ist, da die Anpassoberflächen
gekrümmte
Oberflächen
sein könnten.
Unter Benutzung des Schnittes der Ausdehnung dieser Oberflächen wird
eine Schnittlinie 510 bestimmt (für nicht ebene Oberflächen würde eine
Kurve bestimmt werden). Der Aushebeschrägewinkel wird zweimal abgetastet
durch Erzeugen von zwei Ebenen 512 und 514 senkrecht
zu der Schnittkurve und auf jeder Ebene, wodurch zwei Linien 516 und 518 bzw. 520 und 522 angepasst
werden, und Bestimmen des Winkels eines Schnittes dieser Linien
(oder des Aushebeschrägewinkels) 524 und 526.
Der Benutzer kann den mittleren, maximalen oder minimalen Schnittwinkel
(Aushebeschrägewinkel)
benutzen, um einen Aushebeschrägewinkel
in dem reversen Entwurfsprozess auszuwählen. Schnittdaten werden unter
Benutzung der Ebenen erzeugt, um Datenerfassen zu orientieren (es
gibt zwei Ebenen, wo die Winkel in 14 berechnet
werden). Vektoren (Linien) werden an diese Schnittdaten unter Benutzung
einer Fehlerminimierungstechnik angepasst. Die Winkel werden basierend
auf diesen Vektoren berechnet. Die Anpassung von Ebenen folgt Fehlerminimierungstechniken.
Es sollte bemerkt werden, dass zwei nicht parallele Linien sich
auf einer geraden Linie oder einem Vektor schneiden werden.
-
Wie
oben bemerkt, kann die illustrative Ausführungsform der vorliegenden
Erfindung dazu benutzt werden, um Aushöhlungs- (oder Enthülsungs-)dicken zu bestimmen,
wie in 15A–15C illustriert.
Wenn ein Benutzer ein Aushöhlungsmerkmal
hinzufügt,
taucht ein Aushöhlungsdialogfenster
auf. In dem Dialogfenster kann der Benutzer einen grafischen Knopf
klicken, um die Wanddicke zu berechnen, welche die geeignetste ist, der
Roh-3D-Abtastdatengeometrie zu folgen.
-
Die
Entwurfselementeinrichtung 8 tastet Punkte auf dem Körper ab,
von welchem das Aushöhlungsmerkmal
hinzugefügt
werden soll und erzeugt dann Strahlen entlang der Normalenrichtung, welche
durch Bestimmen eines Vektorkreuzproduktes von lokalen Oberflächenrichtungen
U & V (dU × dV) abgeschätzt werden
kann. Dieser Prozess ist in 15A dargestellt.
Der Abstand zwischen abgetasteten Punkten 580 und 590 wird
gemittelt und die Schnittpunkte zwischen Strahlen 582 und 592 und den
Roh-3D-Abtastdaten werden bestimmt. Es sollte bemerkt werden, dass
Fehlerminimierung benutzt werden könnte anstatt von Abstandsmittelung,
wobei die Fehlerminimierung auf der Abweichung zwischen der ausgehöhlten Schale
und einem Einstellen des Hohlabstandes basiert, bis die Abweichung
minimiert ist. Drei Dickenwerte werden dem Benutzer vorgeschlagen:
Die minimale, die maximale und die mittlere Dicke. Ausreißer können basierend
auf der Winkeldifferenz zwischen dem Strahl und dem Normalenvektor
des Schnittpunkts entfernt werden. Wenn der Winkel größer als
eine bestimmte erlaubte Toleranz ist, wird er nicht in der Höhlungsdickenberechnung
betrachtet.
-
Die
Höhlungstechnik
benutzt zuerst die äußere Oberfläche des
Gitters, um ein Raummodell zu erstellen, welches nicht ausgehöhlt ist.
Es gibt innere Teile des Gitters, welche nicht für die äußere Oberfläche benutzt werden. Die inneren
Teile des Gitters werden dazu benutzt, die Aushöhlungsdicke zu bestimmen. Berechnung
der Dicke wird zuerst dadurch bestimmt, dass der lokale Normalenvektor
der Oberfläche
berechnet wird (senkrecht zu lokalen UV-Achsen-Richtungen auf der/dem
lokalen erzeugten Oberfläche/Raummodell).
Der Abstand zwischen Oberfläche
und Rohgitter (Roh-3D- Abtastdaten)
in dieser Normalenrichtung ist der lokale Aushöhlungsabstand. Das vollständige Aushöhlungsfeld
(alle Abstandsmessungen) wird von diesen lokalen Aushöhlungsabständen (Dicke)
erzeugt. Der Benutzer kann auswählen,
eine gleichförmige
Aushöhlungsdicke der
mittleren, maximalen, oder minimalen Dicke des Aushöhlungsfelds
zu haben. Eine neue Oberfläche wird
auf der Innenseite des/der existierenden Raummodells/Oberfläche erzeugt,
um ein neues Raummodell zu erzeugen, welches das/die ursprüngliche Raummodell/Oberflächen und
die neu erzeugten ausgehöhlten
Oberflächen
umfasst. 15B stellt ein Raummodell 600 dar,
welches von der Außenseite
eines Gitters erzeugt wurde. 15C stellt
einen Querschnitt 610 des Raummodells 600 der 15B dar. Der Querschnitt 610 zeigt lokale
UV-Achsen 612 und 614, eine Normalenrichtung 616 und
den lokalen Schnitt 618 zwischen der Normalenrichtung 616 und dem
Gitter 620 an. 15D stellt
das Raummodell 630 der 15B dar,
nachdem eine Aushöhlungsoperation
durch die vorliegende Erfindung ausgeführt wurde.
-
Eine
Ausrundung ist eine konkave oder konvexe Glättung einer Kante. Die vorliegende
Erfindung kann auch benutzt werden, um Ausrundungsradien zu berechnen.
Die Ausrundungsradien können
konstant oder veränderlich
sein. Wenn ein Benutzer ein Ausrundungsmerkmal hinzufügt, taucht
ein Ausrundungsdialogfenster auf. In dem Dialogfenster kann der
Benutzer einen grafischen Knopf klicken, um den Ausrundungsradius
zu berechnen, welcher der geeignetste ist, um der Roh-3D-Abtastdatengeometrie zu
folgen. Die vorliegende Erfindung tastet Punkte von den Kanten ab,
welche durch den Benutzer für das
Ausrunden spezifiziert sind. Dann definiert es Ebenen, für welche
der Normalenvektor tangential an die Kanten bei den Punkten ist.
Die Entwurfselementeinrichtung 8 berechnet Schnittkurven
zwischen den Roh-3D-Abtastdaten und den Ebenen, welche den Normalenvektor
tangential zu Kanten bei diesen Punkten haben. Jede Schnittkurve
wird automatisch in kreisförmige
Bögen und
Linien zerlegt. Die Anwendung mittelt Radien des Mittelbogens von
den zerlegten Schnittkurven für
alle Schnittkurven, welche zwischen den Roh-3D-Abtastdaten und den
definierten Ebenen, wie oben diskutiert, berechnet wurden. Wenn
die Ausrundungsoption ein konstanter Wert ist, werden drei Radiuswerte
dem Benutzer vorgeschlagen: Der minimale, der maximale und der mittlere
Radius. Wenn die Ausrundungsoption veränderliche Radien hat, werden
Radien in einem neuen 2D-Graphen-Fenster gezeichnet, was dem Benutzer
erlaubt, über
die Tendenz einer Radiusveränderung
informiert zu werden. Der Benutzer kann auch mehrere Radien interaktiv
in dem 2D-Graph aussuchen. Die Entwurfselementeinrichtung 8 kann
auch die am besten approximierende Kurve von dem 2D-Graphen automatisch
anpassen.
-
Der
Prozess, Ausrundungsradien zu berechnen, ist in 16 dargestellt.
Ein Bereich des Teils 650, welches eine Ausrundung hat,
wird ausgewählt. Eine
Kurve wird an diesem Teil gezeichnet und Ebenen 662, 664, 666, 668 und 670 werden
senkrecht zu der Kurve erzeugt. Die Kurve wird von einer Interpolation
durch Auswahl von einigen Punkten um die Ausrundung herum erzeugt.
Der Benutzer könnte eine
Kurve auswählen
und die Zahl von Teilungen, welche gleichmäßig entlang der Kurve verteilt
sind (wie gezeigt) spezifizieren oder der Benutzer könnte individuelle
Punkte entlang der Kurve auswählen,
um Ausrundungsradien zu untersuchen. In 16 sind fünf Stichprobenbereiche
untersucht, um ein Ausrundungsprofil für diese nicht gleichförmige Ausrundung zu
bestimmen. Die resultierenden Radien, welche für die Ausrundung ausgewählt sind,
können
der Mittelwert von allen Ausrundungsmessungen, das Maximum, das
Minimum sein, oder es wird in dem Fall von nicht gleichförmigen Ausrundungsradien
die folgende Interpolation (wie in dem Graph 680 gezeigt)
als eine Ausrundung mit veränderlichem
Radius benutzt.
-
Die
vorliegende Erfindung kann als ein oder mehrere computerlesbare
Programme bereitgestellt sein, welche auf oder in einem oder mehreren
Medien umfasst sind. Die Medien können eine Floppy-Disk, eine
Festplatte, eine Kompakt-Disk,
eine digitale vielfältige
Platte, eine Flash Memory Card, ein PROM, ein RAM, ein ROM, oder
ein Magnetband sein. Im Allgemeinen können die computerlesbaren Programme
in irgend einer Programmiersprache implementiert sein. Einige Beispiele
von Sprachen, welche benutzt werden können, umfassen FORTRAN, C,
C++, C#, oder JAVA. Die Software-Programme können auf
oder in einem oder mehreren Medien als Objektcode gespeichert sein.
Hardwarebeschleunigung kann benutzt werden und der gesamte Code oder
ein Teil des Codes kann auf einem FPGA oder auf einem ASIC laufen.
Der Code kann in einer virtualisierten Umgebung, wie etwa in einer
virtuellen Maschine, laufen. Mehrere virtuelle Maschinen, welche den
Code ausführen,
können
auf einem einzelnen Prozessor ansässig sein.
-
Da
gewisse Änderungen
gemacht werden können,
ohne von dem Geltungsbereich der vorliegenden Erfindung abzuweichen,
ist es beabsichtigt, dass alle Materie, welche in der obigen Beschreibung beinhaltet
ist oder in den begleitenden Zeichnungen gezeigt ist, als illustrativ
und nicht in einem wörtlichen Sinne
interpretiert werden soll. Fachleute der Technik werden realisieren,
dass die Folge von Schritten und Architekturen, welche in den Figuren
dargestellt ist, verändert
werden kann, ohne von dem Geltungsbereich der vorliegenden Erfindung
abzuweichen und dass die Illustrationen, welche hierin umfasst sind, einzelne
Beispiele von einer Vielzahl von möglichen Darstellungen der vorliegenden
Erfindung sind.
-
Bedeutung
englischer Begriffe in den Figuren
-
- Selection – Auswahl
- Region – Bereich
- Axis Option – Achsenoption
- Remove Outliers – Entferne
Ausreißer
- Sampling Ratio – Abtastrate
- Use Normal – Benutze
Normale
- Revolving Axis – Drehachse