-
HINTERGRUND
-
1. Gebiet der Erfindung
-
Diese
Anmeldung betrifft Rechner-Datenaustausch und insbesondere Techniken,
um Muster in unterschiedlichen Systemen zum rechnergestützen Entwurf
in Übereinstimmung
zu bringen.
-
2. Hintergrundinformation
-
Moderne
Ingenieure und insbesondere Ingenieure, die mechanische Vorrichtungen
entwerfen, verwenden, um im Entwurfsprozess zu helfen, Ausrüstung zum
rechnergestützen
Entwurf. Diese Ausrüstung
besteht typischerweise aus einer UNIX-basierten oder Microsoft Windows
NT (TM)-basierten Workstation oder Rechner, der eine Tastatur, eine Anzeige
und eine Zeigeeinrichtung, wie zum Beispiel eine Maus, aufweist.
Insbesondere weist die Ausrüstung
Software zum rechnergestützten
Entwurf (nachstehend "CAD") auf, die es dem
Ingenieur erlaubt, zwei- oder dreidimensionale Zeichnungen der Vorrichtungen,
die der Ingenieur entwirft, zu erzeugen.
-
Gelegentlich
erlaubt die CAD-Software dem Ingenieur mehr als einfach das Erzeugen
von Zeichnungen dieser Vorrichtungen. Die CAD-Software könnte auch
verschiedene Festkörpermodell-basierte
und/oder Maschinenbau-Herstellungs-basierte Analysen des CAD-Modells des
Ingenieurs ausführen,
genauso wie bestimmte Versorgungsketten-Funktionalitäten – zum Beispiel
durch Integrieren des CAD-Modells in ein fortschrittliches Produktdatenmanagement
("PDM")-, Herstellungsressourcenplanungs
("MRP")-, oder Unternehmensressourcen-Planungs
("ERP")-Datenbanksystem.
-
Es
gibt zwei Standard-Paradigma gemäß denen
Ingenieure Daten in ein CAD-System eingeben. Aus Gründen der
Einfachheit, wird ein Paradigma als das "explizite Geometrie"-Paradigma bezeichnet und das zweite
wird als das "parametrische
merkmalbasierte"-Paradigma
bezeichnet.
-
1 zeigt ein System mit expliziter
Geometrie, während 2 ein parametrisches merkmalbasiertes
System zeigt.
-
In
alten CAD-Systemen wird eine Spezifikation von Teilen mit expliziter
Geometrie ausgeführt. Zum
Beispiel werden Bilder erzeugt, manchmal in unterschiedlichen Schichten,
wo Rechteck- oder Polar-Koordinaten für jeden Punkt und jede Linie
spezifiziert sind. Während
dieses Verfahren mühsam
und akribisch detailliert ist, ist es oft ein bevorzugtes Dateneingabe-Paradigma
für Ingenieure,
die komplexe Freiformflächen
entwerfen. Die Stärke
dieses Paradigmas ist auch seine Schwäche: Nämlich die starren und oft nicht
verzeihenden Beziehungen zwischen Kanten, Verbindungen, Leerräumen und
räumlicher Geometrie.
Zum Beispiel kann das Bewegen einer einzelnen Linie oder eines einzelnen
Punkts das gesamte Modell stören.
-
In
der nicht zu weit entfernten Vergangenheit wurde ein neuer Ansatz
für CAD-Entwurf,
der parametrischer merkmalbasierter ("PFB",
parametric feature-based) Entwurf genannt wurde, eingeführt. Der parametrische
merkmalbasierte Entwurf ist aktuell das führende Entwurfs-Paradigma in
der CAD-Industrie. In diesem Paradigma, bei dem Unternehmen wie zum
Beispiel die Parametric Technology Corporation ("PTC")
Vorarbeit geleistet haben, beginnen Ingenieure, eher als geometrische
Punkte und ähnliches explizit
aufzuzählen,
mit bestimmten Formen und definieren Parameter für diese Formen. Nachfolgende Merkmale
werden zu der Form hinzugeführt,
die wenn sie vereinigt sind, ein vollständiges CAD-Modell bilden. Mit
Bezugnahme zu 2 ist
eine beispielhafte Merkmalsliste 4 für ein Objekt und die resultierende
Skizze 8 des Objekts gezeigt.
-
Falls
zum Beispiel ein Ingenieur ein neues Rad für ein Auto entwirft, könnte er
mit einem Kreis beginnen. Als Nächstes
wird ein Merkmal dem Kreis hinzugefügt, wodurch es zu einem Zylinder
gemacht wird (z.B. eine Ausweite-Operation).
Ein Mantel könnte
dann von dem Zylinder subtrahiert werden, wodurch eine Gesamtkontur
für den
sichtbaren Teil des Rads geschaffen wird. Schließlich könnte ferner eine Matrix von
kleinen Zylindern von dem sichtbaren Teil des Rads subtrahiert werden,
so dass Öffnungen geschaffen
werden, durch die das Rad an das Auto angebracht werden kann. Mit
jedem zu dem Entwurf hinzugefügten
Merkmal spezifiziert der Ingenieur eine Basisgeometrie und einen
oder mehrere Parameter für
die Geometrie (zum Beispiel Radius, Länge, Breite, Tiefe, Material,
usw.). In einem konkurrenzfähigen
System können
jedoch komplexere Formen modelliert werden. Zum Beispiel kann das
konkurrenzfähige
System erlauben, eher als mit einem geometrischen Basismerkmal zu
beginnen, Zylinder, Kegelstümpfe
oder andere komplexe dreidimensionale Merkmale zu spezifizieren.
-
Die
Stärke
von parametrischem merkmalbasierten Entwürfen ist, dass die Entwurfsabsicht
des Ingenieurs bewahrt werden kann, obwohl sich die Details (Parameter) ändern. Das
heißt,
dass der Gesamtentwurf bewahrt ist, während dem Ingenieur die Flexibilität gegeben
ist, einfach verschiedene Parameter in seinem Entwurf zu testen.
Zum Beispiel werden kleine Änderungen
eines Merkmals an einem PFB-CAD-Modell die Stabilität des gesamten
Entwurfs nicht notwendigerweise stören.
-
Zum
Zeitpunkt dieses Schreibens gibt es eine Anzahl von Hauptanbietern
von CAD-Software und noch mehr kleinere Anbieter. Diese Anbieter
weisen PTC, Dassault Systemes (Frankreich), Unigraphics Solutions,
SDRC und Autodesk auf. Jeder dieser Anbieter implementiert seine
Entwurfs-Methodik in einer unterschiedlichen Weise und die meisten
behandeln ihre rechenbetonten und algorithmischen Methodiken als
Eigentum. Nicht nur ihre Methodiken sind geheim, sondern die Datenstrukturen,
die ihre Methodiken implementieren sind geheim.
-
Und
hierin liegt ein Problem. Wenn die Benutzer verschiedener CAD-Systeme
Entwurfsdaten teilen müssen,
sind sie dazu aktuell nur bis zu einem begrenzten Ausmaß fähig. Typischerweise
ist das Ausmaß,
bis zu dem Benutzer fähig
sind, Daten zu teilen, vom Umfang der Zusammenarbeit zwischen den
verschiedenen CAD-Anbietern begrenzt. Da die CAD-Anbieter Kopf-an-Kopf-Konkurrenten
sind, teilen sie Informationen nur widerstrebend – noch weniger
ihre Geschäftsgeheimnisse
oder geschützten Methodiken,
die das innerste Kernelement sind, das einen Anbieter von einem
anderen Anbieter (abgesehen von ihrer Benutzer-Schnittstelle) unterscheidet, ihren
Konkurrenten bekannt wird.
-
Trotzdem
haben die CAD-Anbieter bestimmte Anwendungsprogrammierer-Schnittstellen ("API's") implementiert, die mindestens eine
teilweise Lösung
des Problems schaffen. Unter Verwendung einer API kann ein Benutzer
oder Systemintegrator Funktionsaufrufe für ein bestimmtes CAD-System zusammen
mit den notwendigen Verarbeitungsinformationen machen. Das bestimmte
CAD-System wird die Funktionsaufrufe bearbeiten und kann entweder einen
Ausdruck mit expliziter Geometrie des gewünschten Teils oder Merkmals
zurückgeben,
oder es kann eine Art von Standard-Grafikdarstellung des gewünschten
Teils oder Merkmals zurückgeben.
-
Die
API's sind aber
in den Funktionen beschränkt
und weisen oft bedeutsame Probleme beim Austauschen komplexer Entwurfsmerkmale
und/oder -Informationen auf. Und wieder schafft jede zusätzliche
Funktion, die einer API eines CAD-Anbieters hinzugefügt ist, ein Fenster, durch
das die Konkurrenten des Anbieters, mit einem Auge auf reverse Engineering,
mindestens einen Abschnitt der Geschäftsgeheimnisse des Anbieters
sehen können.
-
Das
Problem wird schlimmer. Die Konsolidierung in bestimmten Industrien,
wie zum Beispiel der Automobil- und Luftfahrtindustrie, erzeugt
mehr CAD-Daten-Austauschprobleme. Zum Beispiel erwarb die Boeing
Corporation kürzlich
die McDonnell Douglas Corporation. Die früher getrennten Einheiten verwenden
wahrscheinlich unterschiedliche CAD-Systeme. Außerdem hat jede früher getrennte Einheit
mehrere Schichten von Zulieferern – jeder Zulieferer verwendet
auch sein eigenes CAD-System. Wenn ein Ingenieur bei Boeing ein
Teil ändert,
muss diese Änderung
zu dem bestimmten Zulieferer, der das Teil herstellt, übertragen
werden. Der Zulieferer kann das CAD-Modell für das Teil benötigen. Aber aufgrund
inkompatibler Dateitypen und unterschiedlicher rechenbetonter und
algorithmischer Methodiken kann das CAD-Modell nicht beschafft werden. Noch schlimmer,
wenn sich Boeing entscheidet, Entwurfssynergien zwischen den zwei
vereinten Einheiten zu schaffen, könnten die Boeing-Ingenieure und die
McDonnell Douglas-Ingenieure völlig
unfähig
sein, komplexe CAD-Modelle auszutauschen. Natürlich ist dasselbe für die Ford
Motor Company gültig,
die kürzlich Jaguar
und Volvo erwarb. 3 stellt
das Verbindungsproblem als Diagramm dar.
-
Die Ökonomien
des größeren Maßstabes, die
bei dem Zusammenschluss solcher Einheiten gewünscht wird, sind Opfer der
unvermeidlichen Kämpfe
um das Verteilen von Informationen und Know-How zwischen den CAD-Anbietern.
Außerdem wird
die Zusammenarbeit zwischen Ingenieuren verschiedener Einheiten
(d.h. zwischen Originalausrüstungs-Herstellern
und Zulieferern der ersten und zweiten Schicht) unter dem aktuellen
Stand der Technik beinahe unmöglich
sein – wenn
Ingenieure beim verzweifelten Versuch Entwurfsdateien zu verteilen, die
auf ungleichen CAD-Systemen hergestellt wurden, Zeit und Geld verschwenden.
Während
Standards zum Austauschen von Rohdatenbildern (z.B. TIFF und JPEG)
und Grenzdarstellungen (z.B. IGES und STEP) existieren können, bewahren
diese Standards nicht die Entwurfsabsicht des Ingenieurs.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Der
rechnerimplementierte Austausch von Daten zwischen zwei unterschiedlichen
Systemen zum rechnergestützten
Entwurf wird geschaffen. Gemäß einem
Ausführungsbeispiel
ist die Erfindung ein Verfahren, das die Schritte aufweist: Auswählen einer
bestimmten Operation aus einer Merkmalsliste eines Quellsystems
zum rechnergestützten
Entwurf; Vergleichen der bestimmten Operation mit einem Übereinstimmungs-Datensatz
aus einer Datenbank, wobei der Übereinstimmungs-Datensatz
eine Operation aufweist, die dem Quellsystem zum rechnergestützten Entwurf
entspricht, und eine oder mehrere Operationen, die einem Zielsystem
zum rechnergestützten
Entwurf entsprechen; und Speichern einer Information, die dem Übereinstimmungs-Datensatz entspricht,
in einem Speicher, wobei die Information eine Übereinstimmung mit der bestimmten
Operation aus der Merkmalsliste repräsentiert, wobei der Übereinstimmungs-Datensatz
als eine Basis zum Konstruieren einer Merkmalsliste für das Zielsystem
zum rechnergestützten
Entwurf verwendet wird.
-
Gemäß einem
anderen Ausführungsbeispiel, ist
die Erfindung ein technisches System zum Austausch von Daten zum
rechnergestützten
Entwurf. Das technische System kann aufweisen: Ein technisches Quellsystem,
das ein Quell-Datenmodell
zum rechnergestützten
Entwurf aufweist; eine Wissensbasis, das eine Mehrzahl von Übereinstimmungs-Datensätzen aufweist,
wobei die Übereinstimmungs-Datensätze einen
Quell-Operationsbereich, der dem technischen Quellsystem entspricht,
und einen Ziel-Operationsbereich aufweisen; und ein ausführbares
Rechnerprogramm, das eingerichtet ist zum: Auslesen einer Information,
die einem Merkmal des Quell-Datenmodells zum rechnergestützten Entwurf
entspricht; Abfragen der Mehrzahl von Übereinstimmungs-Datensätzen basierend
auf der ausgelesenen Information; und Zurückgeben einer Information,
die einem bestimmten Übereinstimmungs-Datensatz
in der Mehrzahl von Übereinstimmungs-Datensätzen entspricht,
wobei die Information eine oder mehrere Operationen zum Erzeugen
eines zu dem Merkmal des Quell-Datenmodells zum rechnergestützten Entwurf äquivalenten
Merkmals in einem unterschiedlichen Modell zum rechnergestützten Entwurf
repräsentiert.
-
KURZBESCHREIBUNG
DER ZEICHNUNGEN
-
Die
Figuren in den begleitenden Zeichnungen bilden verschiedene Elemente
ab, die dem Gegenstand der Erfindung entsprechen. Gleichen Bezugszeichen
in den Zeichnungen entsprechen gleiche Elemente.
-
1 zeigt eine Freiform-Gestalt,
die in einem CAD-System
mit expliziter Geometrie hergestellt wurde.
-
2 zeigt ein Entwurfs-CAD-System,
das auf parametrischen Merkmalen basiert.
-
3 stellt den Kommunikationsfluss
zwischen CAD-Systemen
als Diagramm dar.
-
4 ist eine konzeptionelle Übersicht
der Erfindung.
-
5A ist ein Flussdiagramm,
das den allgemeinen Betriebsablauf der Erfindung zeigt.
-
5B ist ein Flussdiagramm,
das beispielhafte Fehlerdetektionsschritte genau beschreibt.
-
6–8 sind
Diagramme, die der Merkmalsmuster-Übereinstimmung
entsprechen. Insbesondere zeigt 6 allgemein
den Datenfluss zwischen beispielhaften Systemelementen; 7 zeigt eine beispielhafte
Datenmatrix; und 8 ist
ein Flussdiagramm, dass beispielhafte Merkmalmuster-Übereinstimmungsoperationen
genau beschreibt.
-
9A–9C und 10A–10D sind
Diagramme, die der Benutzer-Emulation
entsprechen. Insbesondere zeigt 9A allgemein
eine Kommunikationsübersicht
zwischen beispielhaften Systemkomponenten; 9B ist eine Bildschirmdarstellung, die
Aspekte des Auswählens
eines Objekts genauer beschreibt; 9C bildet Überwachungsanzeige-Kontrolldaten
für Änderungen
ab;
-
10A ist ein Flussdiagramm,
das die Hauptschritte für
die Benutzer-Emulation abbildet; 10B ist
ein Flussdiagramm, das beispielhafte Einstell-Operationen genauer
beschreibt; 10C ist
ein Flussdiagramm, das beispielhafte Element-Auswahloperationen
genauer beschreibt; und 10D ist
ein Flussdiagramm, das beispielhafte Verifikationsoperationen genauer
beschreibt.
-
11A–11D und 12–17 bilden
Kanten-Auswahltechniken ab. Insbesondere ist 11A eine perspektivische Ansicht eines Quellobjekts
und einer Kante; 11B ist
eine perspektivische Ansicht des Quellobjekts mit einem Merkmal,
das auf die Kante angewendet ist; 11C ist
eine perspektivische Ansicht eines Zielobjekts und einer Kante; 11D ist eine perspektivische
Ansicht des Zielobjekts mit dem Merkmal, das auf die Kante angewendet
ist; und 12 ist eine
Betriebsablauf-Übersicht
eines rechnerimplementierten Kanten-Auswahlprozesses. 13 ist ein Flussdiagramm,
das ein Verfahren zum Detektieren, ob zwei Kanten überlappen,
abbildet. 14 ist ein
Diagramm einer Quellkante und einer Reihe von Zielkantenkandidaten,
das eine Technik zum Bestimmen von Bereichen darstellt. 15 ist ein Flussdiagramm,
das einen Kanten-Eingrenzungsalgorithmus abbildet. 16 ist ein Flussdiagramm, das ein Verfahren
zum Detektieren einer Anfangskante abbildet. 17 ist ein Flussdiagramm, das einen Kettenerweiterungs-Algorithmus
abbildet.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
4 ist eine Konzeptzeichnung
der Erfindung. Die Erfindung weist ein Verfahren und ein System
zum Austauschen von Daten zum rechnergestützten Entwurf von einem Quell-Rechnersystem 401 zu
einem Ziel-Rechnersystem 403 auf. Sowohl das Quell- als
auch das Ziel-Rechnersystem werden in einer Umgebung für rechnergestützten Entwurf verwendet.
Gemäß einem
Ausführungsbeispiel, schafft
ein Zwischensystem 400 die Funktionalität zum Umwandeln von dem Quellsystem 401 zu
dem Zielsystem 403. Ein Ausführungsgebiet 404 führt zwei
Basisfunktionen aus. Erstens, das Ausführungsgebiet 404 extrahiert
CAD-Daten von der Quelle 401. Zweitens, das Ausführungsgebiet
erzeugt CAD-Daten, die von dem Ziel 403 verwendet werden
können. In
einem Ausführungsbeispiel
stellt eine Datenbank 402 einen Wissenskatalog 405 von
Operationen bereit, die entweder in dem Quellsystem 401 oder
dem Zielsystem zum Extrahieren und Erzeugen der CAD-Daten ausgeführt werden
können.
In dem Wissenskatalog 405 ist eine Sequenz von Operationen enthalten,
die für
die Umwandlungsprozesse verwendet wird, wobei die Operationen eine
Anwendungsprogrammierer-Schnittstelle 408, eine Musterübereinstimmungs-Technik 409,
eine Benutzer-Emulationstechnik 410 und
eine Grenzdarstellungstechnik 411 aufweisen.
-
In
einem Ausführungsbeispiel
wird von dem Zwischensystem 400 eine Brücken-Datenstruktur 402' erzeugt. Die
Brücken-Datenstruktur 402' kann eine einzeln
erzeugte und persistent gespeicherte Datenstruktur sein, oder die
Brückenstruktur 402' kann eine rein
zeitweise Datenstruktur sein, die verwendet wird und dann aus dem
Speicher geräumt wird.
Falls die Brücken-Datenstruktur 402' eine persistente
Datenstruktur ist, dann kann sie auch ein Teil der Datenbank 402 sein.
-
Ein
Vorteil des Erzeugens einer persistenten Brücken-Datenstruktur 402' ist, dass Versions-
und Extrahier-/Erzeugungsinformationen,
wie zum Beispiel Undo-Protokolle oder Zurückkehr-Protokolle, erzeugt
werden können,
um von Änderungen,
die fehlschlagen wenn der CAD-Datenaustausch stattfindet, zurückzukehren,
oder eine bestimmte Instanz des CAD-Entwurfs wieder zu erzeugen.
Eher als Erzeugen einer einzelnen Datei für jede Version des CAD-Entwurfs,
kann eine bestimmte Instanz in einer schrittweisen Weise wieder
erzeugt werden, wodurch Plattenplatz gespart wird. Außerdem kann
das Bewahren der Entwurfsabsicht leicht aufrechterhalten sein, da
die Datenbank- oder Zwischen-Datenstruktur ein Austauschmittel zum
Speichern der Parameter, Merkmale, Historie usw. des CAD-Entwurfs
bereitstellen kann.
-
Ein
zugrunde liegendes Ziel der hierin beschriebenen Datenaustauschtechniken
ist, dass die Entwurfsabsicht des Quell-CAD-Modells bewahrt bleiben
soll. Was das in der Praxis bedeutet, ist, dass die resultierende
CAD-Datenstruktur für
das Ziel-Rechnersystem die Fähigkeit
eines nachfolgenden Ingenieurs zum Manipulieren der Ziel-CAD-Datenstruktur
auf einer Merkmal-zu-Merkmal-Basis bewahrt – genauso als wenn der Ingenieur
auf der Quell-CAD-Datenstruktur arbeiten würde. Natürlich wird dieses Manipulationsniveau
nicht immer möglich sein,
und tatsächlich
ist es nicht mal eine notwendige Voraussetzung der Erfindung, aber
es ist trotzdem bevorzugt.
-
CAD-DATENAUSTAUSCH
-
5A ist ein Flussdiagramm,
das ein CAD-Daten-Austauschverfahren
gemäß einem
Ausführungsbeispiel
der Erfindung abbildet. Als eine vorbereitende Anmerkung kann vorausgesetzt
werden, dass die Semantik des Quell-CAD-Datenmodells schon verstanden ist. Ferner
kann, wo eine Brücken-Datenstruktur
verwendet wird, ein universelles Zwischen-CAD-Datenformat verwendet
werden. Daher kann das Wissen der Quell- und Ziel-CAD-Systeme unabhängig von
Extraktions- oder Erzeugungsprozessen sein.
-
Im
Schritt 501 wird eine Anwendungsprogrammierer-Schnittstelle (API,
application programmer interface) entweder auf dem Quell-CAD-System oder
dem Ziel-CAD-System aufgerufen. Gemäß einem Ausführungsbeispiel
wird zuerst die API des Ziel-CAD-Systems aufgerufen und falls die
API nicht funktioniert, dann wird die API auf dem Quell-CAD-System
aufgerufen. Jedoch wird in einem anderen Ausführungsbeispiel nur die API
auf dem Ziel-CAD-System oder nur die API auf dem Quell-CAD-System
aufgerufen. Falls zum Beispiel der Exportprozess ausgeführt wird,
wird nur die API des Quell-CAD-Systems
verwendet. Falls jedoch der Importprozess ausgeführt wird, dann wird nur die
API des Ziel-CAD-Systems verwendet.
-
Im
Schritt 502 wird das Ergebnis der API zum Bestimmen, ob
ein Fehler aufgetreten ist, analysiert. Im Allgemeinen wird die
API eine Fehlerbenachrichtigung zurückgeben, aber ein anderes Mal
könnte
der API-Fehler einen Untersystem-Absturz verursachen, wie zum Beispiel
einen Seitenfehler oder einen allgemeinen Schutzfehler. Daher kann
das Bestimmen, ob ein Fehler aufgetreten ist, nicht nur das Überwachen der
Ausgabe der API aufweisen, sondern auch das Überwachen der Leistung verschiedener
Betriebsparameter der Quell- und/oder Ziel-CAD-Systeme, genauso wie der physikalischen
Eigenschaften der CAD-Datenobjekte selbst (z.B. auf einer Merkmal-für-Merkmal-Basis).
-
Auch
falls die API, wie in Schritt 502 getestet wurde, erfolgreich
war, wird in Schritt 503 ein zweiter Test zum Sicherstellen
ausgeführt,
dass die Entwurfsabsicht des Quell-CAD-Datenmodell bewahrt ist, wenn das
Ziel-CAD-Datenmodell erzeugt wird. Bis hierher weist das Testen
der Entwurfsabsicht das Bestimmen auf, ob ein bestimmtes Ziel-CAD-Merkmal von einem
Ingenieur noch modifiziert werden kann. Ein Test zum Bestimmen,
ob die Entwurfsabsicht bewahrt ist, ist zum Beispiel, das Ausmaß zu untersuchen,
bis zu dem Grenzdarstellungen in dem CAD-Datenmodell angewendet
wurden. Typischerweise ist es möglich,
wenn das Ziel-CAD-Datenmodell eine reine Grenzdarstellung ist, dass
dann die Entwurfsabsicht nicht bewahrt wurde. Unter einigen Umständen jedoch,
kann ein Ziel-CAD-Modell durch Grenzdarstellungen dargestellt sein
und teilweise noch die Entwurfsabsicht wahren, zum Beispiel wenn die
Grenzdarstellung auf einer Merkmal-zu-Merkmal-Basis erzeugt ist.
-
Falls
die API die Entwurfsabsicht des Quell-CAD-Systems erfolgreich bewahrte,
dann wird die API im Schritt 504 zum Erzeugen des besonderen Merkmals
für das
Ziel-CAD-System verwendet. Falls nicht, oder falls die API als ein
Ergebnis des Tests im Schritt 502 fehlschlug, dann wird
im Schritt 505 eine Muster-Übereinstimmungstechnik, die
im Detail unten beschrieben ist, ausgeführt.
-
Im
Allgemeinen ist die Muster-Übereinstimmungstechnik
ein Verfahren, um eine oder mehrere Funktionen eines bestimmten
Merkmals von einem Quell-CAD-Datenmodell in eine oder mehrere entsprechende
Funktionen für
das Ziel-CAD-Datenmodell abzubilden. Gemäß einem Ausführungsbeispiel wird
die Muster-Übereinstimmungstechnik
zum Durchsetzen von "optimales
Verfahren"-Techniken oder
zum Durchsetzen bestimmter Entwurfsbeschränkungen verwendet. Daher wird,
typischerweise, die Muster-Übereinstimmungstechnik
zum Finden von angrenzenden Sequenzen von Operationen in der Quell-Merkmalsliste und
Abbilden derselben in eine gewünschte
Merkmalsliste für
ein Ziel-CAD-System, was die Entwurfsabsicht wahrt, verwendet. Eine
spezifischere Beschreibung einer Muster-Übereinstimmungstechnik ist
unten mit Bezug zu den 6–8 beschrieben.
-
Im
Schritt 506 wird ein Test zum Bestimmen des Ergebnisses
der Muster-Übereinstimmung
in Schritt 505 ausgeführt.
Die Muster-Übereinstimmung schlug
fehl, falls kein Muster, das ein aktuelles Merkmal aufweist, mit
einem Übereinstimmungs-Datensatz, der in
der Datenbank gespeichert ist, in Übereinstimmung gebracht werden
konnte. Im Schritt 507 werden, eine erfolgreiche Muster-Übereinstimmung vorausgesetzt,
eine oder mehrere äquivalente
Operationen für
das Ziel-CAD-Modell oder für
Brückenstrukturen,
wie es der Fall sein kann, erzeugt.
-
Schritt 508 zeigt
eine Funktions-Abbildungstechnik. Im Allgemeinen ist der Unterschied
zwischen Muster-Übereinstimmung
und Funktions-Übereinstimmung,
dass Muster-Übereinstimmung
eine Mehrzahl von Operationen in eine Mehrzahl von äquivalenten
Operationen abbildet, während
das Funktions-Abbilden im Allgemeinen eine Übereinstimmung zwischen Operationen
eines Eins-zu-Eins-Typs ist und nicht notwendigerweise irgendwelche
Entwurfs- oder Praxisbeschränkungen auf
das Abbilden durchsetzt. Jedoch können der Schritt 508 und
alle entsprechenden nachfolgenden Operationen in der Muster-Übereinstimmungstechnik zusammengefasst
werden – das
Funktions-Abbilden ist eine Untermenge der Muster-Übereinstimmung. Im
Schritt 509 wird zum Bestimmen, ob das Funktions-Abbilden
zum Finden einer äquivalenten
Operation fehlgeschlagen ist, ein Test ausgeführt. Im Schritt 510 wird
dann, falls das Funktions-Abbilden
erfolgreich war, die äquivalente
Operation für
das Ziel-CAD-Modell erzeugt.
-
Falls
jedoch das Funktions-Abbilden fehlschlug, dann wird in Schritt 510 eine
Benutzer-Emulationstechnik ausgeführt. Im Allgemeinen emuliert die
Benutzer-Emulationstechnik die Menü- und/oder Maus-Operationen eines Benutzers
des Ziel-CAD-Systems
oder des Quell-CAD-Systems. Zum Beispiel kann die Benutzer-Emulationstechnik zum
Detektieren von Eigenschaften von entweder dem Ziel- oder dem Quell-CAD-Objekt,
oder zum Aufdecken von zusätzlichen
Attributen oder Kommentaren, die ein bestimmtes Merkmal betreffen, verwendet
werden. Die Benutzer-Emulationstechnik kann auch zum Extrahieren
eines bestimmten Merkmals des Quell-CAD-Systems oder zum Erzeugen des äquivalenten
Merkmals in dem Ziel-CAD-System verwendet werden. Spezifische Details
der Benutzer-Emulationstechniken sind unten mit Bezug zu den 9A–9C und 10A–10D beschrieben.
-
Im
Schritt 512 wird zum Bestimmen, ob die Benutzer-Emulationstechnik
fehlgeschlagen ist, ein Test ausgeführt. Falls die Benutzer-Emulationstechnik
nicht fehlgeschlagen ist, dann wird in Schritt 513 das
Merkmal des Ziel-CAD-Modells
erzeugt und der Prozess fährt
mit dem nächsten
Entwurfsmerkmal des Quell-CAD-Modells fort. Falls jedoch die Benutzer-Emulationstechnik
fehlgeschlagen ist, dann wird in Schritt 514 eine Grenzdarstellung
(das heißt
eine Darstellung mit expliziter Geometrie im Gegensatz zu einer
PFB-Darstellung)
erzeugt. Es ist in der Technik allgemein bekannt, wie eine Grenzdarstellung
(oder "Brep", boundary representation)
des bestimmten Merkmals erzeugt wird. Zum Beispiel können eine oder
mehrere API-Funktionen in dem Quell- oder Ziel-CAD-Systemen zum
Erzeugen einer exportierbaren Brep aufgerufen werden. Während es
allgemein bekannt ist, wie eine Brep erzeugt wird, ist das, was
hier einzigartig ist, die Weise in der das Ziel-CAD-Objekt mit der
Brep erzeugt wird: Gemäß einem
Ausführungsbeispiel
der Erfindung, wird die Brep des Quell-CAD-Objekts erzeugt, bis
das aktuelle Merkmal in der Brep eingeschlossen ist. Wenn einmal
das aktuelle Merkmal eingeschlossen ist, dann kann die Brep-Technik 411 das
Erzeugen des CAD-Modells stoppen und nachfolgende Merkmale können mit
anderen Techniken erzeugt werden.
-
Nach
Schritt 514 kann das Verarbeiten mit dem nächsten Entwurfsmerkmal
des Quell-CAD-Modells fortfahren.
-
Es
ist wert bestimmte Fehlerdetektionsverfahren anzumerken, die gemäß der Erfindung
ausgeführt
werden können.
Dafür wenden
wir uns 5B zu.
-
Im
Schritt 531 ist ein Test gezeigt, der bestimmt, ob die
Fehlerdetektion basierend auf einem API-Aufruf oder einer anderen
Operation (z.B. Muster-Übereinstimmung,
Funktions-Abbilden,
Benutzer-Emulation oder Brep) initialisiert ist. Falls der Fehlerdetektionsprozess
einem API-Aufruf folgt, dann wartet das Zwischensystem in Schritt 532 auf ein
Signal, das von der API zurückkehrt,
das einen Erfolg oder Fehler des API-Aufrufs anzeigt. Sonst fährt der
Prozess mit dem Schritt 534 fort.
-
Im
Schritt 533 wird zum Bestimmen, ob die API fehlgeschlagen
ist, ein Test ausgeführt.
Falls die API fehlschlug, dann wird im Schritt 538 ein
Fehlersignal zu dem Datenaustauschprozess zurückgegeben. Falls nicht, wird
Schritt 534 ausgeführt,
der auch Schritt 531 folgt. Im Schritt 534 wird
eine physikalische und/oder geometrische Eigenschaftsanalyse unternommen,
wobei geometrische und/oder physikalische Eigenschaften des Quell-CAD-Modells
mit dem Ziel-CAD-Modell verglichen werden. Zum Beispiel kann eine
Oberflächen-Berechnung
ausgeführt werden,
eine Massen- oder Dichteberechnung kann ausgeführt werden und/oder eine Linien- oder Umfangsberechnung
kann ausgeführt
werden. Andere Festkörpermodellberechnungen
oder geometrische Modellberechnungen können auch ausgeführt werden.
-
Im
Schritt 535 wird das Ergebnis des Vergleichs in Schritt 534 gegen
akzeptierte Toleranzen, die dem Ziel-CAD-System zugeordnet sind,
getestet. Es ist wert anzumerken, dass die Toleranzen nicht nur
bezüglich
Eigenschaften der Quell- und Ziel-CAD-Modelle sein können, sondern
auch gerade die Ziel- CAD-Objekteigenschaften
bezüglich
Entwurfs- oder Merkmaltoleranzen, die strikt dem Ziel-CAD-System
entsprechen. Falls das Ergebnis innerhalb der Toleranz des Ziel-CAD-Systems
ist, dann fährt
der Prozess mit dem Schritt 539 fort, der unten beschrieben
ist. Ansonsten fährt
der Prozess mit dem Schritt 536 fort, wo das Zielmerkmal
angepasst wird. Falls zum Beispiel detektiert wird, dass sich zwei
Linien in dem Ziel-CAD-Objekt nicht treffen, können eine oder beide der zwei
Linien auf die andere zu in einem Versuch erweitert werden, eine
Kreuzung zwischen den zwei Linien zu erzeugen. Im Schritt 537 können die
Toleranzen wieder, wie oben beschrieben ist, getestet werden. Falls
der Test jedoch fehlschlägt,
dann wird im Schritt 538 eine Fehlerbenachrichtigung zu
dem Datenaustauschprozess zurückgegeben.
-
Falls
der Test in Schritt 537 erfolgreich war, dann können in
Schritt 539 Undo-Informationen persistent im Speicher gespeichert
werden, so dass der Erzeugungsprozess, falls nötig, rückgängig gemacht werden kann. In
der Praxis ist das, was in der Undo-Information gespeichert ist,
ein Synchronisationspunkt oder -Marker für das Quell-CAD-Modell, genauso
wie die entsprechenden Operationen für das Ziel-CAD-Modell.
-
Vorausgesetzt
zum Beispiel, ein bestimmtes Quell-CAD-Modell weist drei Merkmale auf. Wenn das
Quell-CAD-Modell zu dem Ziel-CAD-Modell ausgetauscht wird, werden
die ersten zwei Merkmale erfolgreich übertragen, aber das dritte
schlägt
fehl. Es ist möglich,
dass der Austausch des dritten Merkmals tatsächlich kein Fehler war; sondern
der Austausch des ersten oder zweiten Merkmals verursachte, dass der
Austausch des dritten Merkmals fehlschlug. In solch einem Umstand
ist es möglich,
wenn das Anpassen des bestimmten Ziel-CAD-Merkmals (selbst) das
Quell-CAD-Merkmal nicht erfolgreich wiederherstellt, von dem zweiten
Merkmal zurückzukehren, und
dann den Austausch des zweiten Merkmals mit einer neuen Technik
zu wiederholen. Falls das Anpassen des Austauschs des zweiten Merkmals
eine erfolgreiche Operation für
den Austausch des dritten Merkmals nicht erreicht, dann kann von
dem ersten Merkmal mit der Undo-Information zurückgekehrt werden.
-
Im
Schritt 540 wird ein "Erfolg"-Signal zu dem Haupt-CAD-Daten-Austauschprozess
zurückgegeben.
Während
es kein expliziter Schritt in dem Fehlerdetektionsprozess ist, zeigt
die Bemerkung 541, dass eine nachfolgende Operation einen
Fehler einer vorigen Operation identifizieren kann. In so einem
Fall, kann die in Schritt 539 gespeicherte Undo-Information zum Rückgängigmachen
der vorigen Operation verwendet werden – und aller der vorigen Operation
nachfolgenden Operationen. Der Fehlerdetektionsprozess endet nach
den Schritten 548 und 551.
-
Mit
Bezug zu dem in 4 gezeigten
System und dem in 5A gezeigten
Verfahren, ist ein typischer Datenfluss wie folgt. Das Quell-CAD-System 401 weist
PRO/Engineer CAD-Software
auf. Ein Ingenieur, der mit dem Ziel-CAD-System 403 arbeitet,
verwendet Catia CAD-Software. Der Ingenieur möchte ein CAD-Modell, das mit
der PRO/Engineer-Software erzeugt ist, nehmen und ein Catia CAD-Modell
erzeugen. Ein CAD-Daten-Austauschprozess
wird von dem Ingenieur initialisiert.
-
Beim
Zurückkehren
zu dem Datenfluss, wird zuerst eine Merkmalsliste oder ein Merkmalbaum
in dem Quell-CAD-System 401 von dem Zwischensystem 400 untersucht.
Das Zwischensystem kann ein Einzelsystem sein, oder es kann ein
Plug-In in entweder dem Quell-CAD-System 401 und/oder dem Ziel-CAD-System 403 (oder
beiden) sein.
-
Ein
Extraktionsprozess 406 beginnt, indem die API des Quell-CAD-Systems 401 auf
Funktionen getestet wird, die individuelle Merkmale zu dem Ziel-CAD-System 403 übersetzen.
Falls keine API's in
dem Quell-CAD-System 401 existieren. In einer iterativen
Weise fährt
der Prozess nach der API-Technik 408 fort, so dass die
Muster-Erkennungstechnik 409 (optional für die Extraktion),
die Benutzer-Emulationstechnik 410 und die Grenzdarstellungstechnik 411 zum
Erzeugen des CAD-Modells für
das Ziel-CAD-System 403 verwendet werden (nur falls die
vorangegangene Technik fehlschlug).
-
Wenn
einmal das Quell-CAD-Datenmodell extrahiert wurde, dann beginnt
der Erzeugungsprozess 407. Der Erzeugungsprozess testet
die API des Ziel-CAD-Systems 403 auf Funktionen, die die
individuellen Merkmale von dem Extraktionsprozess 406 übersetzen.
In einer ähnlichen,
iterativen Weise, fährt der
Prozess von der API-Technik 408 mit der Muster-Übereinstimmungstechnik 409,
der Benutzer-Emulationstechnik 410, und schließlich mit
der Grenzdarstellungstechnik 411 fort. Wieder ist jede Technik
implementiert, falls die vorherige Technik fehlschlägt, oder,
in einigen Fällen,
in Kombination mit einer vorherigen Technik. Zum Beispiel kann die Muster-Übereinstimmungstechnik 409 Operationen der
API-Technik 408 oder
der Benutzer-Emulationstechnik 410 implementieren, wie
es aus der Diskussion unten offensichtlich werden wird.
-
Gemäß einem
Ausführungsbeispiel
speichert die Datenbank 402 Datenstrukturen, die Muster von Übereinstimmungsdaten
für die
Muster-Übereinstimmungstechnik 409 halten.
Die Datenbank kann auch Benutzer-Schnittstellendaten speichern,
wie zum Beispiel Abbildungen von grafischen Benutzer-Schnittstellen
einer Anzahl von CAD-Systemen. Außerdem kann die Datenbank verschiedene Brep-Techniken
aufweisen, für
die ein Erfolg in einem bestimmten Ziel-CAD-System 403 am
wahrscheinlichsten ist.
-
In
einem anderen Ausführungsbeispiel
ist eine Brücken-Datenstrixktur 402' erzeugt, die
zeitweise oder persistent das CAD-Modell für das Ziel-CAD-System 403 halten
kann, genauso wie Rückkehr-
und/oder Undo-Protokolle, um von bestimmten Merkmalen oder erfolglosen
Operationen zurückzukehren.
In noch einem anderen Ausführungsbeispiel
kann die Brücken-Datenstruktur 402' ein universelles
Dateiformat sein, das selbst von dem Ziel-CAD-System 403 in
ein systemeigenes Format umgewandelt wird. So ein universelles Dateiformat hat
den Vorteil des Entfernens der Extrahierstufe 406 in nachfolgenden
CAD-Daten-Austauschprozessen (die Extrahierstufe 406 muss
mindestens einmal ausgeführt
werden) – wodurch
nur Operationen der Erzeugungsstufe 407 zurückbleiben,
wenn mehr als ein Typ von Ziel-CAD-Systemen 403 das CAD-Modell verwenden
will, das von dem Quell-CAD-System 401 genommen
ist.
-
MUSTER-ÜBEREINSTIMMUNG
-
6, bildet eine Betriebsübersicht
einer Muster-Übereinstimmungstechnik
gemäß einem Ausführungsbeispiel
der Erfindung ab. Ein flüchtiger Speicherbereich 603 eines
Rechnersystems hält
Abschnitte von Daten eines persistenten Speichers, der zum Beispiel
der Datenbank 402 und/oder dem Quell-CAD-System 401 zugeordnet
ist, der sich teilweise auf einer oder mehreren persistenten magnetischen
oder optischen Speichervorrichtungen befinden kann.
-
Der
flüchtige
Speicherbereich 603 weist vier Speichersektionen auf. Ein
Bereich 604 von Übereinstimmungsdaten
nimmt zeitweise statische Übereinstimmungsdaten
auf, die Teil der System-Wissensbasis sind. Die Übereinstimmungsdaten sind eine
Wissensbasis-Untermenge,
die ein interessierender Bereich ist, oder die von höherer statistischer
Wahrscheinlichkeit zum Finden eines bekannten Musters ist. Ein Bereich 605 eines
aktuellen Objekts nimmt zeitweise einen oder mehrere Abschnitte
einer Merkmalsliste von einem Quell-CAD-System 401 auf – dieser
Cache stellt allgemein einen Satz von Daten (oder Operationen) dar,
der ausreichend proportioniert ist, so dass er groß genug
ist, das größte Quell-Operationsmuster
zu halten.
-
Die
Bereiche 604 und 605 werden primär zum Reduzieren
von I/O- und zugeordneten Disk-Zugriffswartezeiten verwendet. Die
Bereiche können verschiedene
Größen haben,
und, gemäß einem Ausführungsbeispiel,
kann der Speicher 603 ferner eine Hash-Adresse oder einen Index zum Beschleunigen
der Suche in größeren Datensätzen aufweisen, oder
mindestens Datensätze,
die jenseits der Grenzen der in dem Speicher 603 gespeicherten
Daten sind.
-
Ein
Bereich 606 eines aktuellen Merkmals ist kleiner als der
Bereich 601 von Übereinstimmungsdaten.
Der Bereich 606 eines aktuellen Merkmals hält die Quell-Operation,
die von dem Bereich 605 eines aktuellen Objekts genommen
ist, die die Basis einer Abfrage des Bereichs 601 von Übereinstimmungsdaten
ist.
-
Der
Bereich 607 einer aktuellen Übereinstimmung speichert Übereinstimmungs-Datensätze zeitweise,
d.h. Informationen von den Datensätzen der Wissensbasis 402,
die anzeigen, wie das Ziel-CAD-System das Ziel-CAD-Modell konstruiert – oder das
Zielmerkmal. Der Bereich 607 einer aktuellen Übereinstimmung
kann klein sein, aber falls er klein ist, dann sollte der Bereich
oft auf einen persistenten Speicherbereich geschrieben werden und dann
geräumt
werden. Natürlich
ist, falls der Bereich groß ist,
dasselbe wahr, aber die Frequenz könnte herabgesetzt werden.
-
Obwohl
optional, ist in 6 eine
Brückenstruktur 402' gezeigt. Die
Brückenstruktur 402' kann ein universeller
Datentyp oder eine universelle Produktdarstellung sein – d.h. ein
Zwischen-Datentyp, der nicht, streng gesprochen, der Ziel-Datentyp
ist. Daher kann die Brückenstruktur 402' zusätzliche
Informationen aufweisen, die das Quell-CAD-Modell, das Ziel-CAD-Modell, und Extraktions-
und Erzeugungsinformationen betreffen, die für einen verlustlosen, Zwei-Wege-Datenaustausch
verwendet werden können.
-
7 bildet beispielhafte Datenstrukturen für die Wissensbasis,
die in der Datenbank 402 verkörpert ist, ab. Gemäß einem
Ausführungsbeispiel weist
die Datenstruktur eine Umwandlungstabelle 708 mit einem
Quell-CAD-Systemtyp und einem Ziel-CAD-Systemtyp auf. Beim in Übereinstimmung bringen
der Quell- und Ziel-CAD-Systemtypen, kann ein Rechner, der die Erfindungsschritte
ausführt,
auf einen Zeiger zu zusätzlichen
Datensätzen
oder Datenstrukturen, die dem bestimmten gewünschten CAD-Datenaustausch
entsprechen, zugreifen. Während
ein X für
Umwandlungen von ähnlichen CAD-Typen gezeigt ist,
sind die Verfahren der Erfindung gleichermaßen auf Umwandlungen von CAD-Modellen
mit ähnlichen
Typen, aber mit unterschiedlichen Versionen anwendbar. Daher ist
das Umwandeln eines CAD-Modells von einer ProEngineer Version 2000i2
in eine ProEngineer Version 2000i, d.h. eine Rückwärts-Umwandlung, möglich, genauso
wie eine Vorwärts-Umwandlung (2000i nach
2000i2). Zeiger zu Übereinstimmungs-Datensätzen für die verschiedenen
Versionszahlen können in
der Struktur auch enthalten sein.
-
Gemäß einem
anderen Ausführungsbeispiel ist
eine Umwandlungstabelle 708 nicht notwendig. Zum Beispiel
ist die CAD-Daten-Austauschsoftware typischerweise in einem Plug-In
eines Dritten für
ein CAD-System enthalten. Das Plug-In kann Umwandlungs-spezifisch
sein, was bedeutet, dass das Plug-In nur Dateien vom Typ A in Dateien
vom Typ B (und umgekehrt) umwandelt. In so einem Fall ist die Information
der Umwandlungstabelle 708 schon bekannt, wodurch die Tabelle 708 nicht
notwendig ist.
-
In
einem Aspekt der Muster-Übereinstimmungstechnik
werden Übereinstimmungs-Datensätze 709 zum
Bewirken des Muster- oder
sogar des Funktions-) Übereinstimmungsprozesses
verwendet. Die Übereinstimmungs-Datensätze 709 weisen
zwei Gebiete auf. Das erste Gebiet 710 speichert Quell-Funktions- oder Quell-Operationsinformationen.
Die Quell-Funktionsinformationen
entsprechen einer oder mehreren Operationen oder geometrischen Strukturen
in dem Quell-CAD-System.
Das zweite Gebiet 711 speichert Ziel-Funktionsinformationen oder geometrische
Strukturen für
das Ziel-CAD-System – zum
Beispiel einen Zeiger auf eine Funktion, die die gewünschte Aktion
ausführt. Die
Ziel-Funktionsinformationen
entspricht einer oder mehreren Operationen in dem Ziel-CAD-System – zum Beispiel
kann die Ziel-Funktionsinformation eine Funktion oder einen Zeiger
auf eine Funktion für
die API-Technik 408 aufweisen. Ein Dateiendegebiet 712 kann
auch enthalten sein, so dass Übereinstimmungs-Datensätze 709 leicht
voneinander identifizierbar sind, da es möglich ist, dass die Datensätze eine
variable Länge
aufweisen. Falls jedoch Übereinstimmungs-Datensätze 709 mit
fester Länge
verwendet werden, dann ist das Dateiendegebiet 712 unnötig.
-
Zusätzliche
Datenstrukturen können
auch enthalten sein. Zum Beispiel können, wie oben mit Bezugnahme
zu 6 erwähnt wurde,
die Übereinstimmungs-Datensätze 709 in
verschiedene Hash-Adressen-Speicherbereiche (Hash-Buckets) gebrochen
werden, indem bekannte Hash-Techniken verwendet werden, oder ein
B-Baum oder andere Typen von Indizierstrukturen können verwendet
werden, so dass die Suchoperationen beschleunigt werden. Außerdem kann
es effizient sein, die Übereinstimmungs-Datensätze 709 vor
der Laufzeit oder wenn die Datensätze aktualisiert wurden, zu
sortieren. Falls die Datensätze
sortiert sind, dann können Speicherbereiche
mit einem hohen Vorkommen von Bezügen (das bedeutet, dass falls
eine Speicheradresse X aufgerufen ist, dann die Speicheradresse
Y wahrscheinlich auch aufgerufen wird) zusammen gruppiert werden,
wodurch I/O- und Lese-Wartezeiten
reduziert werden.
-
8 ist ein Flussdiagramm,
das ein Verfahren zur Muster-Übereinstimmung,
wie es für CAD-Datenaustausch
angewendet ist, genau beschreibt. Es ist angenehm, aber nicht notwendig, 8 mit Bezugnahme zu 6 und 7 zu besprechen. Für Erklärungszwecke wird vorausgesetzt, dass
die relevanten Abschnitte des Quell-CAD-Modells 401 und
der Wissensbasis 402 in den Speicher 603 eingelesen
wurden.
-
In
Schritt 801 wird ein aktuelles Merkmal von der Quell-Merkmalsliste gelesen
und in einen Bereich 606 eines aktuellen Merkmals geladen.
Im Schritt 802 werden die Daten in dem Bereich 606 eines
aktuellen Merkmals mit Quellfunktionen 710 in dem Bereich 601 von Übereinstimmungsdaten
verglichen, indem der Bereich 606 auf einen Übereinstimmungs-Datensatz
durchsucht wird. Im Schritt 803 fährt der Prozess, falls eine Übereinstimmung
gefunden wurde, dann mit dem Schritt 805 fort, ansonsten wird
ein Fehlersignal zu dem Haupt-CAD-Daten-Austausch-Algorithmus (z.B.
siehe 5) zurückgegeben.
-
Im
Schritt 805 wird eine Information, die dem aktuellen Übereinstimmungs-Datensatz 709 entspricht,
in dem Bereich 607 einer aktuellen Übereinstimmung gespeichert.
Die Information kann der aktuelle Übereinstimmungs-Datensatz 709 selbst,
ein Zeiger auf den aktuellen Übereinstimmungs-Datensatz 709 in
der Wissensbasis 402 oder dem Bereich 601 von Übereinstimmungsdaten,
die Zielfunktionen 711, oder die Zielfunktionen 711,
die mit irgendwelchen unterstützenden
Daten (z.B. Parametern für das
Ziel-CAD-System, und/oder zusätzliche
Informationen, die den Extraktions- oder Erzeugungsprozess betreffen) übersetzt
sind, sein.
-
Im
Schritt 806 wird ein Test zum Sicherstellen ausgeführt, dass
es keine zusätzlichen
Funktionen in dem Quell-Merkmal gibt, die ausgetauscht werden müssen. Falls
zusätzliche
Funktionen bearbeitet werden müssen,
fährt das
Verfahren dann mit dem Schritt 807 fort. Ansonsten kann
in Schritt 812 der aktuelle Übereinstimmungs-Datensatz 607 persistent
gespeichert werden (falls nicht schon passiert) und die nächste Funktion,
die dem Merkmal entspricht, kann im Schritt 807 geladen
werden, so dass die Such- (808) und Übereinstimmungs- (809) -Schritte
ausgeführt
werden können.
-
Im
Schritt 809 ist es möglich,
dass die zusätzliche(n)
Funktion(en), die der Suche hinzugefügt wurden, eine unvereinbare Übereinstimmung
erzeugten. Im Schritt 813 wird dieses Szenario behandelt.
Gemäß einem
Ausführungsbeispiel, wird
von allen Änderungen,
die in der Ziel-Merkmalsliste gemacht oder hinzugefügt wurden,
auf einer Merkmal-zu-Merkmal-Basis
(Schritt 814) zurückgekehrt. Ein
Grund, warum dieser Prozess implementiert sein kann ist, dass ein
nachfolgender Versuch zum Behandeln der fehlgeschlagenen Operation(en)
eine Reihe von Operationen (z.B. ein gesamtes Merkmal) effizienter
modellieren kann, als eine einzelne Operation. In einem anderen
Ausführungsbeispiel
wird der letzte gespeicherte Übereinstimmungs-Datensatz
als Basis für
die Ziel-Merkmalsliste verwendet (Schritt 815) und die übrig gebliebenen
Funktionen können über ein
alternatives Verfahren mit dem Ziel-CAD-System ausgetauscht werden.
Im Schritt 816 wird die Übereinstimmungs-Datensatz-Information
für das
Ziel-CAD-Modell
eingegeben.
-
Zurückkehrend
zu Schritt 809 wird, falls eine Übereinstimmung gefunden ist,
dann in Schritt 810 eine Information, die dem Übereinstimmungs-Datensatz 709 entspricht,
gespeichert. Falls es im Schritt 811 mehr Operationen in
dem Quell-CAD-Modell gibt, dann kehrt die Verarbeitung zum Schritt 807 zurück. Ansonsten
wird die gespeicherte Ziel-Funktionsliste, die eine Mehrzahl von
Informationsätzen aufweisen
kann, die den Zielfunktionen 711 entsprechen, in Schritt 812 in
das Ziel-CAD-Modell eingegeben.
-
Es
ist wert anzumerken, dass, während
der oben beschriebene Muster-Übereinstimmungsprozess
mit Bezugnahme zu einem bestimmten Merkmal beschrieben wurde, was
das bevorzugte Ausführungsbeispiel
ist, es möglich
ist, die Muster-Übereinstimmung
mit Bezug zu individuellen Funktionen ohne Rücksicht auf ihre Gesamt-Beziehung
zu einem bestimmten Merkmal auszuführen.
-
Gemäß einem
Ausführungsbeispiel
wird, nachdem ein bestimmtes Merkmal unter Verwendung der Muster-Übereinstimmungstechnik erzeugt wurde,
dann eine physikalische und/oder geometrische Eigenschaftsanalyse
(wie oben diskutiert ist) auf dem Zielmerkmal ausgeführt und
die Eigenschaften werden mit physikalischen/geometrischen Eigenschaften
des Quell-Merkmals verglichen. Falls die Eigenschaften nicht übereinstimmen,
können
die Parameter der Ziel-Merkmalsliste dann angepasst werden, bis
die Eigenschaften innerhalb einer akzeptablen Toleranz sind.
-
BENUTZER-EMULATION
-
9A–9C bilden
Aspekte einer Benutzer-Emulation ab, die eine Rückzugs-Technik oder alternative
Technik ist, und zum Ausführen
des Extraktions- und Erzeugungsprozesses verwendet wird. Gemäß einem
Ausführungsbeispiel
werden die Benutzer-Emulationstechniken
zum direkten Austauschen von Daten von dem Quell-CAD-System zu dem
Ziel-CAD-System verwendet. Alternativ können die Benutzer-Emulationstechniken
zum Austauschen von Daten durch eine Zwischendatei, wie zum Beispiel
der Brücken-Datenstruktur,
von dem Quell-CAD-System zu dem Ziel-CAD-System verwendet werden.
In noch einem anderen Ausführungsbeispiel
werden die Benutzer-Emulationstechniken
zum Erfassen einer Information auf entweder dem Quell-CAD-Modell
oder dem Ziel-CAD-Modell verwendet.
-
Zum
Beispiel können
die unten beschriebenen Benutzer-Emulationstechniken
zum Sammeln von Attributen oder einer Aufruf-Information, die einem
Quell- oder Zielmerkmal entsprechen, zum Ausführen von geometrischen oder
physikalischen Eigenschaftsanalysen, oder zum Auswählen einer
bestimmten Kante oder Fläche
auf dem Quell- oder Ziel-CAD- Modell
verwendet werden. In noch einem anderen Ausführungsbeispiel, können die
Benutzer-Emulationstechniken zum Automatisieren eines Prozesses
verwendet werden, der ein bekanntes Benutzer-Schnittstellen-Verhalten
aufweist.
-
9A ist eine Aufbau-Übersicht
eines Ausführungsbeispiels
der Benutzer-Emulationstechniken. Die Figur ist nützlich zum
Verstehen, wie die verschiedenen Software-Module eines programmierten Rechners
interagieren.
-
Die
CAD-System-Software 901 weist eine Benutzer-Schnittstelle auf.
Die Benutzer-Schnittstelle interagiert typischerweise mittels einer
Zeigeeinrichtung, wie zum Beispiel einer Maus, oder Tastatur-Bedienelementen
mit einem Benutzer. Für
Erklärungszwecke,
werden die Maus und die Tastatur-Bedienelemente "Schnittstelleneingabe" genannt. Tatsächlich interagiert
jedoch die Benutzer-Schnittstelle nicht direkt mit den Schnittstelleneingaben.
In der Praxis werden Schnittstelleneingaben durch einen Vorrichtungstreiber
(device driver, nicht gezeigt) hindurch geführt und auf einem Rechnermonitor
(nicht gezeigt) dargestellt. Zur gleichen Zeit werden Informationen,
die den Schnittstelleneingaben entsprechen, hindurch geführt, zum
Beispiel von einem X-Server 902 zu
dem CAD-System 901. Die Benutzer-Schnittstelle des CAD-Systems 901 kann
im Gegenzug auf die Schnittstelleneingaben antworten, indem Daten oder
Befehle durch den X-Server 902 hindurch zurückgesendet
werden, die dann zu dem Rechnermonitor ausgegeben werden.
-
Es
ist angemerkt, dass ein X-Server nur ein beispielhaftes graphisches
Fenster-Modul ist. Unter bestimmten Betriebssystemen, wird die Rolle
des X-Servers von anderen Grafik-Bild-Servern oder -Modulen ausgeführt. Diese
Module können,
zum Beispiel, die ausführbaren
Dateien USER.EXE und GDI.EXE in Microsoft Windows NT aufweisen.
In anderen Umgebungen können
zusätzlich
ausgeführte oder
interpretierte Module, wie zum Beispiel Schnittstellen, die in Java
Script oder unter Verwendung verschiedener Java-Klassen erzeugt
sind, eine ähnliche Funktionalität für die Anwendungs-
oder Betriebsumgebung ausführen.
-
Zum
Beispiel kann ein Benutzer einen Cursor (mit einer Maus) von der
Position (x1, y1) zu (x2, y2) bewegen und dann einen Mausklick ausführen. Die
Maus sendet die Schnittstelleneingaben zu einem Vorrichtungstreiber,
der die Bewegung in elektrische Signals übersetzt. Die Schnittstelleneingaben werden
zu dem X-Server 902 gesendet, der eine Bitmap-Anzeige für den Monitor
steuert. Elektrische Signale werden auch zu dem CAD-System 901 gesendet.
Das CAD-System 901 empfängt die
Schnittstelleneingaben und bestimmt, wie die CAD-Software auf die
Schnittstelleneingaben antworten (oder sie verändern). soll. Die Antwort kann
das Ändern
der Farbe eines bestimmten Menü-Eintrags,
das Darstellen einer Menü-Pulldown-Liste
oder das Auswählen eines
Merkmals eines bestimmten Objekts aufweisen. Wenn einmal das CAD-System 901 bestimmt, wie
sich die Anzeige ändern
soll, macht die CAD-Software
intern die entsprechende Zustandsänderung und sendet dann eine
zusätzliche
Information zu dem X-Server 902 zurück, so dass die Rechneranzeige
geeignet geändert
werden kann.
-
Gemäß der Erfindung
interagiert die Benutzer-Schnittstelle nicht direkt mit dem X-Server 902. Stattdessen
interagiert die Benutzer-Schnittstelle mit einem oder mehreren Software-Modulen, von denen mindestens
eines einen Benutzer emuliert. In einem Ausführungsbeispiel der Erfindung
handelt ein Proxy 903 als ein Puffer zwischen dem CAD-System 901 (und
seiner Benutzer-Schnittstelle) und dem X-Server 902. Signale,
die durch den Proxy 903 passieren, werden zu einem Interpreter 904 ausgegeben,
der die Signale untersucht und eine Benutzerantwort emuliert. Die
emulierte Benutzerantwort kann durch den Proxy 903 zurück zu der
Benutzer-Schnittstelle oder zu dem X-Server 902 gesendet
werden. (Es ist wert anzumerken, dass der Proxy 903 und
der Interpreter 904 in einem einzelnen Software-Modul angesiedelt
sein können,
zum Beispiel einem Plug-In, das durch das CAD-System 901 angekoppelt
ist.) In einem alternativen Ausführungsbeispiel
können
Daten und Steuerungssignale zwischen dem X-Server 902 und
dem CAD-System 901 von
einem Plug-In für
die CAD-Software eingefangen werden. Beim Antworten auf die eingefangenen
Signale, kann das Plug-In in einen Zustand treten, der im Wesentlichen
eine Zeitverzögerung
ist. Ein zweiter Unter-Thread kann dann von dem Plug-In hervorgebracht
werden, der die eingefangenen Signale verarbeitet. Wenn das Plug-In die
Signale verarbeitet hat, kann es Zustandsinformationen speichern
(in reserviertem Speicher, der dem Plug-In zugeordnet ist), die
dem CAD-System entsprechen, und dem Plug-In melden, den Wartezustand
zu beenden.
-
Währenddessen
kehrt das CAD-System unter der Voraussetzung, dass das Plug-In beendet
ist, zum normalen Verarbeiten zurück. Das nächste Mal, wenn die Signale
von dem Plug-In eingefangen werden, kann das Plug-In das CAD-System
wieder anweisen, das Plug-In aufzurufen und dann das Verarbeiten
in dem Unter-Thread wieder aufzunehmen – den Prozess aufnehmen, wo
er verlassen wurde. Während
diese Technik nicht Thread-sicher ist, ist es ein nützliches
Verfahren zum Ausführen
von zwei Prozessen, die sich in einer normalen Operationsumgebung,
gegenseitig ausschließen.
-
Gemäß einem
Ausführungsbeispiel,
initialisiert der Unter-Thread
ein Zeitglied, bevor das Plug-In beendet ist. Das Zeitglied kann
zum Detektieren verwendet werden, wenn ein externer Prozessfehler
auftritt. Falls das Zeitglied abläuft, bevor das Bearbeiten der
Zustandsinformation mittels des Unter-Threads wieder aufgenommen
ist, dann kann eine Fehlermeldung zurückgegeben werden, so dass der
Benutzer-Emulationsprozess
gelöscht
oder davon zurückgekehrt
werden kann.
-
Gemäß einem
Ausführungsbeispiel,
erlaubt das zugrunde liegende CAD-System, die C-Bibliothek-Implementierung,
oder die Plattform keine sicheren Cross-Thread-Aufrufe. Um dieses
Verbot zu umgehen, verwendet der Unter-Thread, wenn der Unter-Thread
die CAD-System-API direkt aufrufen muss, eine Zwischen-Prozess-Verbindung,
entfernte Prozeduraufrufe, oder Cross-Thread-Benachrichtigungstechniken
zum Weiterleiten einer Anfrage zu dem Plug-In zum Ausführen des
Aufrufs im Auftrag des Unter-Threads.
-
9B ist eine Bildschirmdarstellung 905, die
Aspekte einer Objektauswahl genauer beschreibt, die ein nützlicher
Prozess ist, auf den die Benutzer-Emulationstechniken angewendet
werden können.
In einer Umgebung, weist der Schirm eine Symbolleiste 912,
die textbasierte Menüoptionen
aufweist, eine Hauptansicht 910 des Objekts (hier ein Würfel) und
eine vergrößerte Ansicht 909 eines
Abschnitts des Objekts auf. Die vergrößerte Ansicht 909 weist
ferner eine Schaltflächenleiste 908 auf,
die mittels der Maus auswählbare
Optionen aufweist, die typischerweise verwendet werden, um dem CAD-System
zu spezifizieren, ob ein bestimmtes Merkmal des Objekts ausgewählt wurde.
In der Bildschirmdarstellung 905 ist eine Statusanzeige 906 und
eine Koordinatenanzeige 907 angezeigt, wobei die Koordinatenanzeige 907 eine
aktuelle Position des Cursors 913 zeigt. Ein Grafikelement,
hier eine Kante 911, des Objekts ist hervorgehoben gezeigt.
(Wie hierin verwendet, bezieht sich der Begriff "Grafikelement" auf eine Linie, Kante, Fläche, Oberfläche oder
ein anderes grafisches Entwurfsmerkmal des CAD-Objekts – gewöhnlich in
zwei- oder dreidimensionaler Form, die für eine Rechneranzeige dargestellt
ist.)
-
9C ist ein Diagramm eines
beispielhaften Signals vom X-Server 902. In diesem Beispiel kann
das Signal eine Farbanzeige für
ein bestimmtes in dem Fenstersystem gezeigtes Grafikelement sein. Gemäß einem
Ausführungsbeispiel
schließt
ein Akt des Auswählens
eines Grafikelements auf dem Objekt, das Überwachen eines oder mehrerer
Signale von dem X-Server 902 für einen Zustandsübergang in
einem Farbanzeiger ein, der einer der Schaltflächen in der Schaltflächenleiste 908 oder
der Statusanzeige 906 zugeordnet ist. Das Detektieren des
Zustandübergangs
einer Anzeige kann implizit anzeigen, dass ein Benutzer-Emulationsprozess
nicht fehlschlug.
-
Zum
Beispiel kann der X-Windows-Text in der Statusanzeige 906 die
Farben abhängig
davon ändern,
ob das System auf eine Benutzerantwort wartet oder eine vorherige
Antwort verarbeitet. Eine andere Option ist, Text für Dialogboxen
oder Pop-up-Fenster nach Worten zu durchsuchen, die einen Fehler
oder Erfolg einer vorherigen Operation anzeigen.
-
10A–10D sind
Flussdiagramme, die Schritte für
die Benutzer-Emulationstechniken genau beschreiben. Die Benutzer-Emulationstechniken werden
typischerweise von dem Interpreter 904 in Verbindung mit
anderen Elementen eines Rechnersystems ausgeführt.
-
10A bildet die primären Schritte
für eine Benutzer-Emulation ab. Im
Schritt 1001 werden Einstell-Operationen ausgeführt, so
dass der Interpreter 904 auf das Fenstersystem kalibriert
werden kann. Im Schritt 1002 wird ein Grafikelement, das
im Fenstersystem gezeigt ist, ausgewählt.
-
Im
Schritt 1003 wird zum Verifizieren, dass das richtige (oder
gewünschte)
Grafikelement ausgewählt
ist, ein Test ausgeführt.
Zum Beispiel kann das Auswählen
und Verifizieren des Grafikelements das Schreiten durch eine Merkmalsliste
in einem CAD-Modell und das Überwachen
eines Signals vom X-Server 902 einschließen. Alternativ
können
emulierte Mausbewegungen und -Klicks zu dem X-Server 902 gesendet
werden und die zu dem CAD-System 901 zurückgegebenen
resultierenden Statussignale können
auf Zustandsübergänge oder
Text-Zeichenketten überwacht
werden.
-
Wenn
einmal das richtige Grafikelement ausgewählt ist, dann wird im Schritt 1004 eine
Operation auf dem Grafikelement ausgeführt. Die Operation kann sein,
eine Eigenschaftsanalyse ausführen,
Attribute lesen, die dem Grafikelement entsprechen, das Grafikelement
verstecken oder unterdrücken,
einen Export-Befehl (z.B. Erzeugen einer Brep) initiieren, oder
Attribute modifizieren, die dem Grafikelement entsprechen. Im Schritt 1005 wird
zum Bestimmen, ob die Operation fehlschlug, ein Test ausgeführt. Falls
die Operation fehlschlug, dann wird das nächste CAD-Daten-Austauschverfahren versucht, ansonsten
kann angenommen werden, dass das Austauschverfahren erfolgreich
war.
-
10B ist ein Flussdiagramm,
das Schritte zum Ausführen
der Einstell-Operationen abbildet. Im Schritt 1007 werden
die in der Anzeigevorrichtung gezeigten Fenster identifiziert. Die
Fensteridentifikation basiert auf einem oder allem des Folgenden,
abhängig
von dem spezifischen einbezogenen CAD-System: (1) die Fensterhierarchie (z.B.
die Anzahl von Child-Fenstern,
die Position der verschiedenen Fenster in der Fensterliste); (2)
jede Text-Zeichenkette, die in den Fenstern angezeigt ist; und/oder
(3) die Geometrie der Fenster (z.B. ihre Breite, Höhe, Verhältnis von
Breite zu Höhe,
Position auf dem Schirm). Die Fenster können im Speicher mit Identifizierern
gespeichert sein, die von der CAD-Daten-Austauschsoftware ausgewählt sind,
oder sie können
mit Identifizierern gespeichert sein, die Text entsprechen, der
dem Fenster zugeordnet ist (z.B. ein Titel oder eine Kopfzeile).
Als Nächstes
werden im Schritt 1008 Signale, die Bewegungen des Cursors
(z.B. 913) entsprechen, auf die Koordinaten des Fenstersystems
(z.B. 907) kalibriert. Die Kalibrierung ist im Speicher
gespeichert, so dass Anpassungen und Umsetzungen für Signale
gemacht werden können,
die von dem Interpreter erzeugt sind, so dass die Signale auf die
bestimmte Fensterumgebung und Zeigeeinrichtungs-Einstellungen abgeglichen
(z.B. skaliert) sind.
-
Im
Schritt 1009 wird ein Menü-Abbilden ausgeführt. Allgemein
schließt
das Menü-Abbilden
das Lesen des Textes der Optionen der Haupt-Symbolleiste 912,
Senden eines Mausklicks zu jeder Option und weiteres Abbilden der
Unter-Optionen ein. Die Ergebnisse des Abbildens sind auch im Speicher
gespeichert, so dass sie mit zukünftigen
Operationen, die ausgeführt
werden sollen, abgeglichen werden können, so als ob Benutzer-Emulation
als Teil der Muster-Übereinstimmungstechniken
verwendet wird. Das Menü-Abbilden
kann auch zum Verifizieren der (nationalen) Sprache oder Version
der CAD-Software verwendet werden.
-
10C ist ein Flussdiagramm,
das Schritte zum Auswählen
eines Grafikelements abbildet. Die Schritte sind insbesondere eher
auf das Auswählen eines
Merkmals oder eines Aspekts eines in einem Fenster präsentierten
Objekts bezogen, als einer Option der Haupt-Symbolleiste 912 oder
einer seiner Unter-Optionen.
-
Im
Schritt 1010 wird zum Verifizieren, dass das Grafikelement
in dem Zielfenster sichtbar ist, ein Test ausgeführt. Falls das Grafikelement
nicht in dem Zielfenster ist, dann kann die Fensterpositionierung oder
der Blickwinkel angepasst werden, zum Beispiel unter Verwendung
der Haupt-Symbolleiste 912.
Im Schritt 1011 werden ein oder mehrere Merkmale, die andere
sind als das gewünschte
Merkmal (z.B. die Merkmale, die in der Nähe des gewünschten Merkmals sind, oder
direkt benachbart sind) versteckt oder unterdrückt. In einem alternativen
Ausführungsbeispiel
werden das eine oder die mehreren Merkmale geräumt, aber nur dort, wo sie
später
wiederhergestellt werden können.
Als Nächstes
wird in Schritt 1012 ein Bereich des Zielfensters nach
außen
gezoomt (was das Objekt kleiner macht) und im Schritt 1013 wird
das Fenster um das Ziel-Grafikelement zentriert. Im Schritt 1014 wird
ein Mausklick zu der Mitte des Zielfensters gesendet.
-
10D ist es ein Flussdiagramm,
das eine Technik zum Verifizieren abbildet, dass das richtige Element
ausgewählt
ist. Im Schritt 1016 wird eine Rückgabe-Zeichenkette oder ein
Zustandsindikator des X-Servers 902 zum Verifizieren geprüft, dass
das richtige Grafikelement ausgewählt ist. Gemäß einem Ausführungsbeispiel,
fährt der
Prozess dann, falls das richtige Grafikelement, oder irgendeine
Auswahl nicht detektiert wurde, mit dem Schritt 1012 (oder Schritt 1002)
fort, so dass das Zielfenster wieder um einen anderen Punkt zentriert
werden kann und/oder der Vergrößerungsfaktor
verkleinert werden kann (macht das Objekt größer).
-
Wie
jedoch in Schritt 1017 abgebildet ist, wird, falls ein
Fehler detektiert ist, dann die Benutzer-Emulation abgebrochen und
das Ausführen
fährt mit
der nächsten
CAD-Daten-Austauschtechnik
fort. Falls ein Fehler nicht detektiert ist, dann wird eine Zustandsinformation,
die dem CAD-Objekt vor irgendwelchen von dem Benutzer-Emulationsprozess
gemachten Änderungen
entsprechen, im Schritt 1019 persistent gespeichert.
-
Schritt 1020 zeigt
einen Test für
einen Fehler einer nachfolgenden Operation, zum Beispiel in einer Operation,
die außerhalb
einer Benutzer-Emulationstechnik auftrat – einem API-, einem Musterübereinstimmungs-,
einem späteren
Benutzer-Emulations-,
oder einem Brep-Prozess – wenn
das CAD-Datenobjekt
behandelt wird. Falls die nachfolgende Operation fehlschlägt, dann
ist es möglich,
dass die Benutzer-Emulation der vorigen Operation tatsächlich ein
Fehler war, obwohl kein unmittelbarer Fehler detektiert wurde (z.B.
von einer Eigenschaftsanalyse). Daher kehrt im Schritt 1022 die
Zustandsinformation, die im Schritt 1019 gespeichert ist,
von dem CAD-Datenmodell zurück
(z.B. ein Rückkehr-Prozess).
Falls die nachfolgende Operation nicht fehlschlägt, dann wird im Schritt 1021 die
Zustandsinformation geräumt.
-
KANTEN-AUSWAHL
-
Ein
Teil des CAD-Daten-Austauschprozesses kann das Ausführen von
Operationen einschließen,
die eine Identifizierung eines Teils oder Merkmals eines definierten
CAD-Modells benötigen.
Dazu stellen die unten beschriebenen Kanten-Auswahltechniken ein
neues und nützliches
Werkzeug bereit, das verwendet werden kann, wenn solche Operationen
ausgeführt
werden – die
Techniken werden zu dem Zweck des Korrelierens von Quellkanten mit Zielkanten
in einer Mehrzahl von Systemen zum rechnergestützten Entwurf verwendet. Zum
Beispiel können
die Operationen eine Abrundungs- oder Anschrägungsoperation auf einem Ziel-CAD-Modell aufweisen,
oder Auswählen
einer Seite eines Objekts. Der Prozess kann ein Einzelprozess sein,
der Prozess kann Schritte des Benutzer-Emulationsprozesses (oben
beschrieben) integrieren, oder der Prozess kann in den Benutzer-Emulationsprozess
integriert sein. Ferner ist angemerkt, dass in den begleitenden
Figuren und der begleitenden Beschreibung, Abstraktionen von Linien
und Formen verwendet werden, wie sie dem Auge erscheinen können, obwohl
das, auf dem operiert wird und das in den Techniken verwendet wird,
Datendarstellungen von Linien und Formen sind.
-
11A–11D stellen
das aktuelle Problem dar. 11A bildet
ein 3-dimensionales Objekt 1101 in einem Quell-CAD-System ab. Das Objekt
hat eine einigermaßen
abgerundete Seite, die durch vier Seiten (nur die Seiten 1105 und 1106 sind
angesprochen) dargestellt ist. Eine Kante 1102 stellt eine
Kurve dar, die von den vier Seiten gebildet ist. Eine Abrundungsoperation
ist in dem Quell-CAD-Modell spezifiziert, wobei die Operation an
der Kante 1102 ausgeführt
wird. Mit Bezug zu 11B wird,
wenn die Abrundungsoperation ausgeführt wird, eine abgerundete
Kante 1104 gebildet, wo einst die Kante 1102 existierte.
Das Objekt 1101 ist nun als Objekt 1101' gezeigt.
-
Wie
oben erwähnt,
ist ein zugrunde liegendes Objekt der CAD-Daten-Austauschtechniken, dass
die Entwurfsabsicht des Quell-CAD-Modells in dem Ziel-CAD-Modell
bewahrt ist.
-
Demgemäß werden
in einigen Fällen,
feinere Körnigkeitsdarstellungen
eines Quell-CAD-Modells oft in Ziel-CAD-Modellen gefunden, während unter anderen
Umständen,
die entgegengesetzte Beziehung existiert. 10C–10D zeigen solch eine feinere
Körnigkeitsdarstellung
des Quell-CAD-Modells, wie
es in dem Ziel-CAD-System ausgeführt
ist. Zum Beispiel bestehen im Objekt 1103 die vier Seiten,
die in Objekt 1101 die Kante 1102 aufweisen, nun
aus acht Seiten, die die Seiten 1107, 1108, 1109 und 1110 aufweisen
und jetzt die Kante 1102' ausmachen.
Was gewünscht
ist, ist die Kante 1102 mit der Kante 1102' zu korrelieren,
so dass das Merkmal 1104 als Merkmal 1104' in dem Ziel-CAD-System
erzeugt werden kann.
-
12 bildet eine Betriebsübersicht
des Kanten-Auswahlalgorithmus
ab. Ein Objekt (z.B. eine Grenzdarstellung eines Blocks) existiert
in dem Quell-CAD-System 1202, wobei das Objekt eine Kante "a" aufweist. Die Kante "a" wird von einem Exportmodul 1208 in
eine Gesamtszenerie 1210 für das Datenaustauschprodukt
exportiert. Wenn einmal die Kante "a" in
der Globalszene 1210 identifiziert wurde, muss das Importmodul 1206 jetzt
die entsprechende Kante in dem Ziel-CAD-System 1204 identifizieren. Eine
Lokalszene 1212 wird dann aus dem Ziel-CAD-System exportiert,
wobei die Lokalszene eine Mehrzahl von Kandidaten-"Kanten" darstellt, die mit
der Kante "a" übereinstimmen können. Es
wird hier angemerkt, dass die Lokalszene 1212 in einer
inkrementellen Weise exportiert wird. Während es möglich ist, dass die gesamte
Lokalszene 1212 auf einmal exportiert wird, ist dieses
im Allgemeinen nicht der Fall, was angemerkt ist durch den zirkulären Datenfluss,
der in 12 erwähnt ist.
-
Wenn
einmal die Lokalszene 1212 (oder ein Abschnitt davon) exportiert
ist, dann beginnt das Kanten-Auswahlmodul 1207 mit dem
Korrelationsprozess. Kanten in dem Ziel-CAD-System 1204,
die unnötig
sind, werden von der Kandidatschaft entfernt, während ein Abbilden der anderen
Aufrechterhalten ist, wobei das Abbilden idealerweise eine n:m-Entsprechung
zwischen den Kanten des Ziel-CAD-Systems 1204 und den Kanten
des Quell-CAD-Systems 1202 darstellt,
wobei n größer oder
gleich m ist.
-
Da
das Abbilden aufrechterhalten ist, können nachfolgende Operationen
an der Kante "a" als auf Kanten "b1" und "b2" anwendbar identifiziert
werden. Es folgen mehrere Techniken, die unabhängig oder kombiniert zum Auswählen einer
Kante verwendet werden können.
-
KANTENÜBERLAPP-ALGORITHMUS
-
Die
zugrunde liegende Prämisse
des Kantenüberlapp-Algorithmus ist,
dass zwei Kanten (d.h. von einem Quell-CAD-Modell und einem Ziel-CAD-Modell – die Global-
und Lokalszene) überlappen,
falls ihre Kreuzung topologisch eindimensional ("1-D")
ist. Falls die zwei Kanten überlappen, dann
liegen sie auf demselben geometrischen Träger.
-
In
einem Ausführungsbeispiel
ist die Geometrie einer Kante als ein nicht-gleichförmiges rationalzahliges
Bézier-Spline
("NURBS", non-uniform rational
B-spline) dargestellt. Das Erzeugen einer NURBS-Darstellung der
Geometrie der Kante gibt jeder Kante einen Startpunkt und einen
Endpunkt. Falls die Kante geschlossen ist (d.h. ein Kreis), dann
stimmen der Startpunkt und der Endpunkt überein. Während Startpunkte und Endpunkte
gemäß einem
Ausführungsbeispiel
verwendet werden, ist es auch akzeptabel Start- und End-Eckpunkte
(vertices) zu verwenden. Andere Ausführungsbeispiele der Erfindung sind
vorgesehen, daher können
auch diskrete gerade Segmente mit entsprechenden kartesischen Koordinaten
eine andere Darstellungsweise einer Kante sein.
-
13 ist ein Flussdiagramm,
das den Kantenüberlapp-Algorithmus abbildet.
Im Schritt 1302, werden die Start- und Endpunkte der NURBS-Darstellung
jeder Kante aus der NURBS extrahiert.
-
Im
Schritt 1304 werden Bereiche, zum Beispiel, in der Quellkante
bestimmt. Die Bereiche repräsentieren
die Anzahl, die die Quellkante geteilt ist, falls die Zielkantenstartpunkte
und -Kantenendpunkte darauf abgebildet sind. Daher weist die Quellkante, falls
ein einzelner Punkt in der Zielkante in der Quellkante gefunden
ist, zwei Regionen auf. Falls jedoch zwei Punkte in der Zielkante
in der Quellkante gefunden werden, dann weist die Quellkante drei
Bereiche auf. Es ist in Schritt 1304 nützlich, die extrahierten Punkte
zu sortieren – die
Bereiche der Quellkante sind zwischen jedem aufeinanderfolgenden
Paar von getrennten (sortierten) Punkten.
-
14 stellt ein Beispiel des
Bestimmens von Bereichen einer Quellkante dar. Eine Quellkante "E" (1402) und drei Kandidaten 1404 für Zielkanten "F1" (1406), "F2" (1408)
und "F3" (1410)
sind abgebildet. Bestimmen der Bereiche der Quellkante E im Vergleich
zu den verschiedenen Zielkanten-Kandidaten 1404:
E weist einen Bereich bezüglich
F1 auf; E weist zwei Bereiche bezüglich F2 auf; und E weist 3 Bereiche
bezüglich
F3 auf. Beim Identifizieren der Bereiche wird angemerkt, dass die
Quellkante immer mindestens einen Bereich aufweist, aber nie mehr
als drei Bereiche.
-
Zurückkehrend
zu 13, wird in Schritt 1308 eine
Bereicheingrenzungsoperation ausgeführt: Der Bereicheingrenzungsalgorithmus,
von dem Schritt 1308 ein Teil ist, setzt voraus, dass die
Quellkante und die Zielkante den gleichen geometrischen Träger aufweisen.
Die Bereicheingrenzungsoperation wählt den Mittelpunkt eines Bereichs
aus, der von der Quellkante definiert ist. Im Schritt 1310 wird
zum Bestimmen, ob der ausgewählte
Mittelpunkt innerhalb der Zielkante ist, ein Test ausgeführt. Im
Schritt 1312 wird dann gesagt, falls der ausgewählte Mittelpunkt
innerhalb der Zielkante ist, dass die Quell- und Zielkanten überlappen
und das Ergebnis wird zurückgegeben.
Falls der Mittelpunkt nicht innerhalb der Zielkante ist, dann wird
angenommen, dass kein Überlapp
existiert, eine geeignete Antwort wird im Schritt 1314 zurückgegeben.
-
Es
ist angemerkt, dass der obige Prozess keine Laser-ähnliche Präzision benötigt. Es ist von den Erfindern
anerkannt, dass verschiedene CAD-Systeme ein nicht-lineares Segment
auf verschiedene Weise darstellen können. Es ist nicht das Ziel
des CAD-Daten-Austauschsystems, Quell-CAD-Modelle auf exakt dieselbe Weise in
einem Ziel-CAD-Modell wiederzuerschaffen – das heißt mit dem gleichen zugrunde
liegenden Know-How. Es ist eher ein Ziel, ein akzeptables Ziel-CAD-Modell
zu schaffen, dass das Know-How der Quell- und Ziel-CAD-Systeme respektiert.
Daher ist eine Toleranz beim Bestimmen, ob ein bestimmter Punkt
auf der Quellkante oder Zielkante auf dem anderen liegt, in die
Analyse eingeplant. Folglich können
mathematische oder statistische Analysen zum Modellieren solch einer
Toleranz verwendet werden, oder die Toleranz kann in das CAD-Daten-Austauschsystem
fest eingebaut sein.
-
KANTEN-EINGRENZUNGSALGORITHMUS
-
Während die
Körnigkeit
des Ziel-CAD-Modells idealerweise dieselbe oder feiner ist als die
des Quell-CAD-Modells, ist es möglich,
dass das Ziel-CAD-Modell eine bestimmte Kante in einer Weise repräsentiert,
die effizienter ist, als das Quell-CAD-Modell. In solch einem Umstand
ist es nützlich,
einen Kanten-Eingrenzungsalgorithmus (im Gegensatz zu dem Bereicheingrenzungsalgorithmus)
zum Verifizieren auszuführen,
dass alle Bereiche der Quellkante in der Zielkante eingegrenzt sind. Es
ist ferner angemerkt, dass dieser Prozess zum Verifizieren des Überlapps
von zwei Kanten verwendet werden kann, obwohl die Zielkante mit
einer feineren Körnigkeit
als die Quellkante dargestellt ist.
-
Wie
es mit dem Kantenüberlapp-Beispiel
der Fall war, können
die Quell- und Zielkanten der Global- und Lokalszenen (abgebildet
in 12) verwendet werden.
Abhängig
von der gewünschten
Verifizierung (d.h. die Zielkante weist mehr repräsentative Bereiche
auf als die Quellkante, oder umgekehrt), kann die Eingabe in den
Kanten-Eingrenzungsalgorithmus
gemäß der gewünschten
Ausgabe ausgewählt
werden. Ferner kann der Kanten-Eingrenzungsalgorithmus
in Verbindung mit dem Kantenüberlapp-Algorithmus, der
oben beschrieben ist, verwendet werden.
-
Hier
wird für
Erklärungszwecke
vorausgesetzt, dass die Zielkante mehr repräsentative Bereiche aufweist
als die Quellkante, wie es oben mit Bezugnahme zu 11A–11D der Fall war. Zusätzlich wird,
wenn eine Menge von Zielkanten mit einer Quellkante "e" überlappt,
diese Menge von Zielkanten als eine "verbundene" Menge bezeichnet. Ferner wird eine
Sequenz von so orientierten Kanten, dass der Endpunkt jeder orientierten
Kante der Startpunkt seines Nachfolgers ist, als ein "Kette" bezeichnet.
-
15 ist ein Flussdiagramm
des Kanten-Eingrenzungsalgorithmus.
Im Schritt 1502 wird eine Sequenz von Speicherorten, die
eine Kette von Zielkanten ("C") repräsentieren,
geräumt.
Im Schritt 1504 wird eine erste Zielkante ausfindig gemacht, vorzugsweise
aus der Lokalszene, und zu der Menge "C" hinzugefügt. 16, die unten beschrieben
ist, bildet ein Ausführungsbeispiel
eines Algorithmus zum Finden der ersten Zielkante ab. Gemäß einem anderen
Ausführungsbeispiel,
sucht das System innerhalb einer vorgegebenen Nähe einer Quellkante "e" nach einer Kante.
-
Im
Schritt 1506 wird zum Bestimmen, ob eine Zielkante gefunden
wurde und ob die Zielkante die Quellkante "e" überlappt,
ein Test ausgeführt.
Falls keine Zielkante gefunden wurde, oder die Kanten nicht überlappen,
dann wird die Zielkante im Schritt 1522 von der Kandidatschaft
als eine Übereinstimmungskante
entfernt. Ansonsten wird im Schritt 1508 die Zielkante
vorwärts
zum Umgeben einer nächsten verbunden
Kante erweitert. Im Schritt 1510 wird zum Bestimmen, ob
die neu erweiterte Kante von der Quellkante "e" eingegrenzt
ist, ein Test ausgeführt. Im
Schritt 1512 wird, falls die neu erweiterte Kante von der
Quellkante "e" eingegrenzt ist,
dann die nächste
verbundene Kante (oben erweitert) an die Zielkante angehängt und
in der Kette von Kanten "C" gespeichert. Der
Prozess wiederholt sich, bis die Zielkante nicht mehr länger vorwärts erweitert
werden kann.
-
Im
Schritt 1514 wird derselbe Prozess, der oben mit Bezug
zu den Schritten 1508–1512 beschrieben
wurde, ausgeführt,
aber hier wird die Zielkante in den Schritten 1514, 1516 und
1518 rückwärts erweitert.
Außerdem
fährt dann,
falls die erweiterte Kante nicht von der Quellkante "e" eingegrenzt ist, das Ausführen mit
dem Schritt 1520 fort.
-
Es
ist angemerkt, dass ein Ausführungsbeispiel
des Kanten-Erweiterungsprozesses,
der in den Schritten 1508, 1510 und 1512,
genauso wie in den Schritten 1514, 1516 und 1518 abgebildet
ist, unten mit Bezug zu 17 beschrieben
ist.
-
Im
Schritt 1520 wird die Kette von Kanten "C" als
die Zielkanten, die mit der Quellkante übereinstimmen, zurückgegeben.
-
FINDEN EINER
ANFANGSKANTE
-
16 bildet ein Ausführungsbeispiel
eines rechnerimplementierten Verfahrens zum Finden der Anfangskante
für den
Kanten-Eingrenzungsalgorithmus ab. Im Schritt 1602 wird
ein Punkt "p" der Quellkante "e" ausgewählt. "p" kann
ein innerer Punkt von "e" sein, oder er kann
ein Start- oder Endpunkt sein. Im Schritt 1604 wird ein
Satz von Kanten "F" (d.h. aus der Lokalszene)
erzeugt, der den Punkt "p" aufweist. (Es ist
angemerkt, dass der Satz von Kanten "F" schon
in der Lokalszene existiert haben kann, aber zusätzliche Elemente des Satzes "F" können
im Schritt 1604 hinzugefügt werden – da das Erzeugen der Lokalszene
ein inkrementeller Prozess ist.)
-
Im
Schritt 1606 werden nicht-überlappende Kanten im Satz "F" aus dem Satz "F" entfernt.
Allgemein kann jede Kante im Satz "F" iterativ
gegen die Quellkante "e" getestet werden,
so dass verifiziert wird, dass die zwei Kanten überlappen.
-
Im
Schritt 1608 wird zum Bestimmen, ob der Satz "F" leer ist, ein Test ausgeführt. Falls
der Satz "F" leer ist, dann ist
ein Fehler aufgetreten, wie in Schritt 1614 angezeigt ist.
Falls der Satz "F" nicht leer ist,
dann wird in Schritt 1610 zum Bestimmen, ob der Satz "F" mehr als 2 Zielkanten hält, ein
Test ausgeführt.
Falls der Satz "F" mehr als 2 Zielkanten
hält, dann
ist ein Fehler aufgetreten, wie in Schritt 1614 angezeigt
ist. Falls jedoch der Satz "F" eine oder zwei Zielkanten
aufweist, dann wird im Schritt 1612 genau eine Kante zum
Ausführen
zurückgegeben.
(Die zweite Kante kann bearbeitet werden, falls die zurückgegebene
Kante mit der Quellkante "e" nicht ausreichend überlappt.) Es
ist angemerkt, dass der Schritt 1614 ein oder mehrere Fehlerberichtigungsschemata
einschließen
kann, wobei das bestimmte ausgewählte
Fehlerberichtigungsschema eine Wirkung auf die Schritte 1608, 1610 und/oder 1612 haben
kann. Diese Schemata können
das Auswählen eines
neuen Punkts "p", oder das Auswählen eines zweiten
Punkts "p'" aufweisen – der zweite Punkt "p'" ist
nahe dem Punkt "p".
-
Es
ist angemerkt, dass 16 den
Rest der in 15 abgebildeten
Schritte kurzschließen
kann, falls zum Beispiel eine einzelne Zielkante identifiziert ist,
die die Quellkante komplett enthält
(und selbst komplett darin enthalten ist).
-
KETTENERWEITERUNGS-ALGORITHMUS
-
17 bildet einen rechnerimplementierten Prozess
zum Erweitern einer Kette von Kanten ("C"), die
die Quellkante "e" darstellt, gemäß einem
Ausführungsbeispiel
der Erfindung, ab. Das Verfahren kann als ein Ersatz für den oben
mit Bezug zu 15 (Schritte 1508, 1510 und 1512,
oder Schritte 1514, 1516 und 1518) beschriebenen
Prozess, oder als Zusatz zu dem Prozess verwendet werden. Außerdem kann
der Kettenerweiterungs-Algorithmus gleichermaßen auf den Prozess des Erweiterns
einer Kette von Kanten nach vorwärts
und rückwärts angewendet
werden.
-
Im
Schritt 1702 wird ein Element des Satzes von Kanten, d.h.
der Kette von Kanten "C", zur letzten Kante
in dem Satz gemacht. Für
Erklärungszwecke wird
diese Kante als Kante "c" bezeichnet. Im Schritt 1704 wird
ein Satz von Zielkanten, der einem Ende von "c" benachbart
ist, identifiziert. Dieser Satz von benachbarten Kanten wird als
Satz "F" bezeichnet. Im Schritt 1706 werden
Kanten in dem Satz "F", die mit der Quellkante "e" nicht überlappen, eliminiert – in Übereinstimmung
mit jedem der oben beschriebenen Überlapp- oder Eingrenzungsprozesse.
-
Im
Schritt 1708 wird zum Bestimmen, ob der Satz "F" leer ist, ein Test ausgeführt. Wenn "F" leer ist, dann fährt der Algorithmus mit dem
Schritt 1718 fort. Falls der Satz "F" nicht
leer ist, dann wird im Schritt 1710 zum Bestimmen, ob der
Satz "F" mehr als eine Zielkante
aufweist, ein Test ausgeführt.
Falls Schritt 1710 in einer Antwort resultiert, die anzeigt, das
ein Satz von "F" größer als
eins ist, dann ist ein Fehler aufgetreten und Schritt 1716 wird
ausgeführt. Schritt 1716 kann
das Zurückgeben
eines Fehlerresultats oder das Anzeigen, dass eine neue Kante "c" ausgewählt werden sollte, oder das
die existierende Kante "c" in eine andere Richtung
erweitert werden sollte, aufweisen.
-
Falls
es jedoch genau eine Kante gibt, die der Zielkante "c" benachbart ist, dann wird die eine Kante
(Kante "f") in Schritt 1712 an
den Satz "C" angehängt. Im
Schritt 1714 wird zum Bestimmen, ob die Kante "f" in dem Satz C die erste Kante ist (d.h.
es gibt keine benachbarten Kanten mehr, die nicht Elemente des Satzes "C" sind), ein Test ausgeführt. Falls
die Kante "f" nicht die erste
Kante im Satz "C" ist, dann wird im
Schritt 1720, die Kante "f" als
Kante "c" gesetzt, und der
Prozess fährt
mit dem Schritt 1704 fort. Ansonsten wird in Schritt 1718 der
Satz "C" zurückgegeben
und der Prozess ist abgeschlossen.
-
Schließlich wird
angemerkt, dass es gewünscht
sein kann, den obigen Prozess in einer anderen Richtung zu wiederholen – da der
oben beschriebene Prozess nur mit Bezug zu einer einzigen Erweiterungsrichtung
beschrieben wurde, wie in dem oben mit Bezug zu 15 beschriebenen repräsentativen Ausführungsbeispiel
dargestellt ist.
-
Es
ist beabsichtigt, dass die obigen Techniken als eine oder mehrere
Befehlssequenzen ausgeführt
sind, das heißt,
ein Rechnersoftware- oder Rechnerprogramm-Produkt, das bewirkt,
dass ein oder mehrere Prozessoren oder technische Systeme die hierin
beschriebenen Verfahren und Umwandlungen ausführen. Das Rechnersoftware-Produkt
kann ausgeführte
Objekt-Befehle und interpretierten Programmcode, oder verschiedene
Skript-Sprachen
aufweisen.
-
Das
Rechnersoftware-Produkt kann auf einem Einzelrechner laufen, zum
Beispiel einem Rechnersystem, auf dem Microsoft Windows NT (TM) läuft, und
ist ein Plug-in für
ein existierendes System zum rechnergestützten Entwurf, wie zum Beispiel ProEngineer
2000i2 (TM). In anderen Ausführungsbeispielen
jedoch, können
die Prozesse in der Funktionalität
getrennt sein. Zum Beispiel, können
die Extraktions- oder Exportprozesse auf einem ersten Rechnersystem
laufen, während
die Erzeugungs- oder Importprozesse auf einem zweiten Rechnersystem
laufen können.
Ferner kann, in einem anderen Ausführungsbeispiel, ein Middleware-System,
das in einer Serverrechner-Weise (eines Client-Server-Systems) betrieben
wird, die Prozesse entweder selbstständig (natürlich unter Verwendung der
APIs auf einem der zwei Client-Systeme), oder als ein Mittler zwischen
den verschiedenen Prozessen ausführen.