-
Hintergrund
-
1. Gebiet der Erfindung
-
Diese
Anmeldung betrifft Computer Aided Design-Daten-Austausch und insbesondere
Techniken zum Computer-Daten-Austausch, die die Computeremulation
von Nutzeroperationen beinhalten.
-
2. Hintergrundinformation
-
Heutige
Ingenieure und insbesondere Ingenieure, die mechanische Geräte entwerfen,
nutzen zur Unterstützung
im Entwurfsprozess eine Computer Aided Design-Ausrüstung. Diese
Ausrüstung
besteht normalerweise aus einer UNIX-basierten oder Microsoft Windows
NT (TM) -basierten Workstation oder Computer, die bzw. der eine
Tastatur, eine Anzeige und eine Zeigervorrichtung wie beispielsweise eine
Maus aufweist. Insbesondere weist die Ausrüstung Computer Aided Design
(nachstehend "CAD") -Software auf,
die es dem Ingenieur ermöglicht,
zwei- oder dreidimensionale Zeichnungen der Geräte zu erzeugen, die der Ingenieur
entwirft.
-
Gelegentlich
tut die CAD-Software nicht mehr, als dem Ingenieur einfach zu ermöglichen, Zeichnungen
dieser Geräte
zu erzeugen. Die CAD-Software könnte
auch sowohl unterschiedliche Körpermodellierung
und/oder ingenieurtechnische herstellungsbasierte Analyse auf dem
CAD-Modell eines Ingenieurs durchführen als auch bestimmte Versorgungsketten-Funktionalitäten ausführen – beispielsweise
mittels Integrierens des CAD-Modells in ein technisch ausgereiftes
Produktdatenverwaltungs (product data management – "PDM"), Produktionsressourcenplanungs
(manufacturing resource planning – "MRP")
oder Betriebliche Ressourcenplanungs (enterprise resource planning – "ERP") -Datenbanksystem.
-
Es
gibt zwei Standard-Paradigmen, gemäß denen Ingenieure Daten in
ein CAD-System eingeben. Zum Zwecke der Einfachheit wird ein Paradigma als
das "Explizite-Geometrie"-Paradigma bezeichnet, und
das zweite wird als das "parametrische
merkmalsbasierte" Paradigma
bezeichnet. 1 zeigt
ein Explizite-Geometrie-System,
während 2 ein parametrisches merkmalsbasiertes
System zeigt.
-
Bei
vorhandenen CAD-Systemen wird eine Explizite-Geometrie-Spezifikation von
Teilen durchgeführt.
Beispielsweise werden Bilder, mitunter in verschiedenen Schichten,
erzeugt, wobei für
jeden Punkt oder jede Linie kartesische oder Polarkoordinaten spezifiziert
sind. Während
dieses Verfahren beschwerlich und mühsam kompliziert ist, ist es
für Ingenieure,
die komplexe Freiform-Oberflächen
entwerfen, häufig
ein bevorzugtes Dateneingabe-Paradigma. Die Stärke dieses Paradigmas ist gleichfalls seine
Schwäche:
nämlich
die starren und oft nicht zu vereinbarenden gegenseitigen Abhängigkeiten
zwischen Kanten, Verbindungen, Aussparungen und Raumgeometrie. Beispielsweise
kann das Bewegen einer einzigen Linie oder Punktes das gesamte Modell
stören.
-
In
der nicht all zu fernen Vergangenheit wurde ein neuer Ansatz in
das CAD-Design, genannt parametrisches merkmalsbasiertes (parametric
feature-based – "PFB") -Design, eingeführt. Das
parametrische merkmalsbasierte Design ist gegenwärtig das führende Entwurfsparadigma in
der CAD-Industrie. Bei diesem Paradigma, das von Unternehmen wie
Parametric Technology Corporation („PTC") als erstes entwickelt wurde, starten
Ingenieure, anstatt geometrische Punkte und dergleichen explizit
anzugeben, mit bestimmten Formen und definieren für diese
Formen Parameter. Nachfolgende Merkmale werden zu der Form hinzugefügt, die,
wenn zusammengesetzt, ein vollständiges
CAD-Modell bildet. Unter Bezugnahme auf 2 zeigt diese eine beispielhafte Merkmalsliste 4 für ein Objekt
und die resultierende Umrisszeichnung 8 des Objektes.
-
Würde beispielsweise
eine Ingenieurin ein neues Rad für
ein Auto entwerfen, könnte
sie mit einem Kreis beginnen. Als nächstes wird zu dem Kreis ein
Merkmal hinzugefügt
(beispielsweise eine EXTRUDE-Operation), wobei der Kreis zu einem
Zylinder gemacht wird. Dann könnte
von dem Zylinder eine Walze weggenommen werden, wodurch ein Gesamtumriss
für den
sichtbaren Teil des Rads erzeugt wird. Schließlich könnte ein Array von Zylindern
mit kleinem Durchmesser ebenfalls vom sichtbaren Teil des Rads weggenommen
werden, sodass Öffnungen erzeugt
werden, durch die das Rad an dem Auto befestigt werden kann. Mit
jedem der zu dem Design hinzugefügten
Merkmale spezifiziert die Ingenieurin eine Grundgeometrie sowie
einen oder mehrere Parameter für
die Geometrie (beispielsweise Radius, Länge, Breite, Tiefe, Material
usw.). Bei einem konkurrenzfähigen
System jedoch können
komplexere Formen modelliert werden. Anstatt mit einem geometrischen
Ausgangs-Merkmal zu starten, kann das konkurrenzfähige CAD-System es beispielsweise
ermöglichen,
Zylinder, Kegel oder andere komplexe 3D-Merkmale zu spezifizieren.
-
Die
Stärke
des parametrischen merkmalsbasierten Designs ist die, dass das Designziel
der Ingenieurin beibehalten werden kann, selbst wenn sich die Details
(Parameter) ändern.
D. h., dass der gesamte Entwurf erhalten bleibt, während der
Ingenieurin die Flexibilität
gegeben ist, einfach verschiedene Parameter in ihrem Design zu testen.
Beispielsweise stören
kleine Änderungen
in einem Merkmal in einem PFB-CAD-Modell nicht notwendigerweise
die Stabilität
des gesamten Entwurfs.
-
Bezüglich dieser
Schrift gibt es eine Anzahl von Hauptanbietern von CAD-Software
und noch mehr kleinere Anbieter. Diese Anbieter umfassen: PTC, Dassault
Systemès
(Frankreich), Unigraphics Solutions, SDRC und Autodesk. Jeder dieser
Anbieter implementiert seine Entwurfsmethodiken in einer anderen
Weise und behandelt seine Berechnungs- und Algorithmik-Methodiken
meist als geheim. Nicht nur sind ihre Methodiken geheim, sondern
die Datenstrukturen, mittels denen ihre Methodiken implementiert
sind, sind ebenso geheim.
-
Und
hierin liegt ein Problem. Wenn die Nutzer verschiedener CAD-Systeme Entwurfsdaten
gemeinsam nutzen müssen,
sind sie derzeit in der Lage, dies nur bis zu einem beschränkten Ausmaß zu tun.
Normalerweise ist das Ausmaß,
zu dem die Nutzer in der Lage sind, Daten gemeinsam zu nutzen, durch
das Ausmaß der Kooperation
zwischen den verschiedenen CAD-Anbietern beschränkt. Da die CAD-Anbieter Kopf-An-Kopf-Wettbewerber
sind, teilen sie Information nur widerwillig – damit ihre Geschäftsgeheimnisse
oder firmeneigenen Methodiken, die das eigentliche Kernelement sind,
das sich von Anbieter zu Anbieter unterscheidet, (abgesehen von ihrer
Nutzerschnittstelle) den anderen Wettbewerbern nicht bekannt werden.
-
Nichtsdestotrotz
haben die CAD-Anbieter bestimmte Anwenderprogrammier-Schnittstellen ("APIs") implementiert,
die für
das Problem zumindest eine Teillösung
bieten. Unter Nutzen einer API kann ein Nutzer oder System-Integrator
Funktionsaufrufe zu einem speziellen CAD-System zusammen mit der
notwendigen Verarbeitungsinformation durchführen. Das spezielle CAD-System
wird die Funktionsaufrufe verarbeiten und kann entweder einen Explizite-Geometrie-Ausdruck
des gewünschten
Teils oder Merkmals zurückgeben
oder, es kann irgendeine Art einer Standard-Grafikrepräsentation
des gewünschten
Teils oder Merkmals zurückgeben.
-
Allerdings
sind die APIs funktional begrenzt und haben oft signifikante Probleme
beim Austauschen komplexer Entwurfsmerkmale und/oder -information.
Und wiederum bietet jede der CAD-Anbieter-API hinzugefügte zusätzliche
Funktion ein Fenster, durch das die Wettbewerber des Anbieters im Hinblick
auf Reverse-Engineering zumindest einen Teil der Geschäftsgeheimnisse
des Anbieters sehen können.
-
Das
Problem wird schlimmer. Die Vereinigung in bestimmten Industrien,
wie beispielsweise in der Automobil- und der Luftfahrtindustrie,
verursacht mehr CAD-Daten-Austausch-Probleme. Beispielsweise hat
Boeing Corporation vor kurzem McDonnell Douglas Corporation übernommen.
Die früheren
separaten Organisationen nutzen wahrscheinlich unterschiedliche
CAD-Systeme. Ferner hatte jede früher separate Organisation mehrere
Ebenen von Zuliefern – wobei
jeder Zulieferer ebenfalls sein eigenes CAD-System verwendet. Wenn ein Ingenieur
von Boeing ein Teil ändert,
muss diese Änderung
zu dem speziellen Zulieferer kommuniziert werden, der das Teil herstellt.
Der Zulieferer könnte
das CAD-Modell für das Teil
benötigen.
Aber aufgrund von inkompatiblen Dateitypen und abweichenden Berechnungs-
und Algorithmik-Methodiken
kann das CAD-Modell nicht bereitgestellt werden. Noch schlimmer,
wenn Boeing entscheidet, Design-Synergien zwischen den zwei fusionierten
Organisationen zu produzieren, könnte es
vorkommen, dass die Boeing-Ingenieure und die McDonnell Douglas-Ingenieure nicht
in der Lage sind, komplexe CAD-Modelle auszutauschen. Selbstverständlich trifft
das gleiche auf Ford Motor Company zu, die vor kurzem Jaguar und
Volvo aufgekauft hat. 3 stellt
das Kommunikationsproblem schematisch dar.
-
Die
durch die Fusion solcher Organisationen gewünschten Größenvorteile werden Opfer der zwangsläufigen Kämpfe um
das gemeinsame Nutzen von Information und Know-how unter den CAD-Anbietern. Ferner
ist die Zusammenarbeit zwischen Ingenieuren von separaten Organisationen
(d. h. unter Originalausrüstungs-Herstellern und Zuliefern
der ersten und der zweiten Ebene) beim gegenwärtigen Stand der Technik beinahe
unmöglich – da Ingenieure
Zeit und Geld verschwenden, verzweifelt zu versuchen, Entwurfsdateien
gemeinsam zu nutzen, die unter getrennten CAD-Systemen hergestellt wurden. Während Standards
zum Austauschen von Rohdatenbildern (beispielsweise TIFF und JPEG) und
Randdarstellungen (beispielsweise IGES und STEP) existieren können, behalten
diese Standards nicht das Designziel des Ingenieurs bei.
-
Zusammenfassung
der Erfindung
-
Ein
technisches System zum Emulieren von Nutzerinteraktionen in einer
Computer Aided Design-Datenaustausch-Umgebung wird offenbart. Gemäß einem
Ausführungsbeispiel
weist das System auf: ein Computer Aided Design-Modul, eingerichtet, eine
Grafik-Entwurfsfunktionalität
bereitzustellen; einen Grafik-Bild-Server, eingerichtet, mit dem
Computer Aided Design-Modul, einer Zeigervorrichtung und einer Anzeigevorrichtung
zu kommunizieren; einen Proxy, eingerichtet, Daten- und Steuersignale
zwischen dem Grafik-Bild-Server und dem Computer Aided Design-Modul
zu erfassen; und einen Interpreter, der mit dem Proxy kommunikativ
gekoppelt ist, wobei der Interpreter eingerichtet ist, die vom Proxy erfassten
Daten- und Steuersignale auszuwerten und an das Computer Aided Design-Modul
adressierte Daten- und Steuersignale zu senden, wobei mittels der
Daten- und Steuersignale eine Nutzer-Interaktion mit dem Computer Aided Design-Modul
emuliert wird.
-
Verfahren
und ein Computersoftwareprodukt zum Erreichen des gleichen werden
ebenfalls offenbart. Gemäß einem
Ausführungsbeispiel
ist das Verfahren ein computerimplementiertes Verfahren zum Emulieren
eines Nutzers eines Anwendungsprogramms in einem Unterprogramm für das Anwendungsprogramm,
aufweisend die Schritte: Erfassen eines ersten Satzes von Daten-
und Steuersignalen von einem Grafik-Bild-Server; Eintreten in einen
Zeitverzögerungs-Modus;
Ablegen eines Sub-Thread, der die erfassten Daten- und Steuersignale
verarbeitet; Beenden des Zeitverzögerungs-Modus'; Zurückgeben der Verarbeitung an
das Anwendungsprogramm; Erfassen eines zweiten Satzes von Daten- und
Steuersignalen vom Grafik-Bild-Server; Wiederaufnehmen der Verarbeitung
des ersten Satzes von Daten- und Steuersignalen zusammen mit dem
zweiten Satz von Daten- und Steuersignalen mittels des Sub-Threads;
und Zurückgeben
einer computeremulierten Nutzerantwort nach dem Schritt des Wiederaufnehmens
der Verarbeitung.
-
Bei
einem anderen Ausführungsbeispiel weist
das computerimplementierte Verfahren auf: Initialisieren eines Interpreters
mit Betriebsparametern eines fensterbasierten Systems; Auswählen eines ersten
Merkmals des Grafik-Designs eines Design-Objekts im fensterbasierten
System; Überprüfen, dass
ein korrektes Grafik-Design-Merkmal als das erste Grafik-Design-Merkmal ausgewählt ist;
und Durchführen
einer Operation auf dem ausgewählten Grafik-Design-Merkmal.
-
Kurzbeschreibung
der Zeichnung
-
Die
Figuren in den beigefügten
Zeichnungen stellen verschiedene Elemente entsprechend dem Erfindungsgegenstand
dar. Gleiche Bezugszeichen in den Zeichnungen bezeichnen gleiche
Elemente.
-
1 zeigt einen in einem Explizite-Geometrie-CAD-System
erzeugten Freiform-Umriss.
-
2 zeigt ein parametrisches
merkmalsbasiertes Entwurfs-CAD-System.
-
3 stellt schematisch den
Kommunikationsfluss zwischen CAD-Systemen
dar.
-
4 ist eine konzeptionelle Übersicht
der Erfindung.
-
5A ist ein Flussdiagramm,
das den allgemeinen Betrieb der Erfindung zeigt.
-
5B ist ein Flussdiagramm,
das beispielhafte Fehler-Erfassungsschritte
ausführlich
darstellt.
-
6–8 sind
schematische Ansichten entsprechend einem Merkmalsmuster-Matching.
Insbesondere zeigt 6 allgemein
den Datenfluss zwischen beispielhaften Systemelementen; 7 zeigt eine beispielhafte
Daten-Matrix; und 8 ist
ein Flussdiagramm, das Beispiel-Merkmalsmuster-Matching-Operationen
ausführlich
darstellt.
-
9A–C und 10A–D sind
schematische Ansichten entsprechend einer Nutzeremulation. Insbesondere
zeigt 9A allgemein eine Übersicht
einer Kommunikation zwischen beispielhaften Systemkomponenten; 9B ist ein Bildschirmausdruck, der
Aspekte des Auswählens
eines Objekts ausführlich
darstellt; 9C stellt Überwachungsanzeige-Steuerdaten für Änderungen
dar; 10A ist ein Flussdiagramm,
das die Hauptschritte für
eine Nutzeremulation darstellt; 10B ist
ein Flussdiagramm, das beispielhafte Einstell-Operationen ausführlich darstellt; 10C ist ein Flussdiagramm,
das beispielhafte Element-Auswahloperationen ausführlich darstellt;
und 10D ist ein Flussdiagramm
das beispielhafte Verifikations-Operationen ausführlich darstellt.
-
11A–D und 12–17 stellen
Kantenauswahl-Techniken dar. Insbesondere ist 11A eine perspektivische Ansicht eines
Quell-Objekts und einer Kante; 11B ist
eine perspektivische Ansicht des Quell-Objekts mit einem auf die
Kante angewendeten Merkmal; 11C ist
eine perspektivische Ansicht eines Zielobjekts und einer Kante; 11D ist eine perspektivische
Ansicht des Zielobjekts mit dem auf die Kante angewendeten Merkmal;
und 12 ist eine Operations-Übersicht
eines computerimplementierten Kantenauswahl-Prozesses. 13 ist ein Flussdiagramm,
das ein Verfahren zum Erfassen, ob sich zwei Kanten überlappen,
darstellt. 14 ist eine
schematische Ansicht einer Quell-Kante
und einer Reihe von Ziel-Kanten-Kandidaten, welche 14 ein Verfahren zum Ermitteln von Abschnitten darstellt. 15 ist ein Flussdiagramm,
das einen Kanten-Einschließ-Algorithmus
darstellt. 16 ist ein
Flussdiagramm, das ein Verfahren zum Erfassen einer Ursprungs-Kante
darstellt. 17 ist ein
Flussdiagramm, das einen Ketten-Erweiterungs-Algorithmus darstellt.
-
Ausführliche
Beschreibung der bevorzugten Ausführungsbeispiele
-
4 ist eine konzeptionelle
Zeichnung eines Ausführungsbeispiels
der Erfindung. Die Erfindung umfasst ein Verfahren und System zum
Austauschen von Computer Aided Design-Daten von einem Quell-Computersystem 401 zu
einem Ziel-Computer-System 403. Sowohl das Quell- als auch
das Ziel-Computer-System werden in einer Computer Aided Design-Umgebung
verwendet. Gemäß einem Ausführungsbeispiel
stellt ein Zwischensystem 400 die Funktionalität bereit,
um die Umwandlung vom Quell 401- zum Ziel 403- System durchzuführen. Ein Ausführungsabschnitt 404 führt zwei
Grundfunktionen aus. Als erstes extrahiert der Ausführungsabschnitt 404 CAD-Daten
von der Quelle 401. Als zweites erzeugt der Ausführungsabschnitt
CAD-Daten, die vom Ziel 403 genutzt werden können. Bei
einem Ausführungsbeispiel
stellt eine Datenbank 402 einen Wissenskatalog 405 von
Operationen bereit, die in entweder dem Quell 401- oder
Ziel-System ausgeführt
werden können,
um die CAD-Daten zu extrahieren und zu erzeugen. Im Wissenskatalog 405 ist
eine Folge von Operationen enthalten, die für Umwandlungsprozesse, wobei
die Operationen eine Anwenderprogrammier-Schnittstelle 408 aufweisen,
ein Muster-Matching-Verfahren 409,
ein Nutzeremulations-Verfahren 410 und ein Randdarstellungs-Verfahren 411 verwendet
werden.
-
Bei
einem Ausführungsbeispiel
wird vom Zwischensystem 400 eine Brücken-Datenstruktur 402' erzeugt. Die
Brücken-Datenstruktur 402' kann eine separat
erzeugte und persistent gespeicherte Datenstruktur sein, oder die
Brückenstruktur 402' kann eine rein
temporäre
Datenstruktur sein, die verwendet wird und dann aus dem Speicher
entfernt wird. Ist die Brücken-Datenstruktur 402' eine persistente
Datenstruktur, dann kann sie auch ein Teil der Datenbank 402 sein.
-
Ein
Vorteil des Erzeugens einer persistenten Brücken-Datenstruktur 402' ist, dass Versions-
und Extrahierungs/Erzeugungs-Information,
wie beispielsweise Rückgängig-Protokollierungen
(logs) oder Rückroll-Protokollierungen,
erzeugt werden können,
um Änderungen
zurückzurollen
oder neu zu schreiben, die fehlgeschlagen sind, als der CAD-Daten-Austausch
stattgefunden hat, oder um eine bestimmte Instanz des CAD-Designs
erneut zu erzeugen. Anstelle des Erzeugens einer einzelnen Datei für jede Version
des CAD-Designs kann eine bestimmte Instanz in einer inkrementellen
Weise neu erzeugt werden, wodurch Plattenplatz gespart wird. Ferner
kann das Beibehalten des Designziels einfach gewährleistet werden, da die Datenbank
oder Zwischen-Datenstruktur
ein Austauschmittel zum Beibehalten der Parameter, Merkmale, Historien
usw. des CAD-Designs bieten kann.
-
Ein
zugrunde liegendes Ziel bei den an dieser Stelle beschriebenen Datenaustausch-Verfahren ist,
dass das Designziel vom Quell-CAD-Modell
beibehalten werden soll. Was dies in der Praxis bedeutet, ist, dass
die resultierende CAD-Datenstruktur für das Ziel-Computersystem die
Möglichkeit
erhält, dass
ein nachfolgender Ingenieur die Ziel-CAD-Datenstruktur auf einer
Merkmal-zu-Merkmal-Basis
manipuliert – gerade,
als ob der Ingenieur auf der Quell-CAD-Datenstruktur arbeiten würde. Selbstverständlich wird
diese Stufe der Manipulation nicht immer möglich sein, und tatsächlich ist
sie nicht einmal eine notwendige Anforderung der Erfindung, ist
aber nichtsdestoweniger bevorzugt.
-
CAD-Daten-Austausch
-
5A ist ein Flussdiagramm,
das CAD-Daten-Austausch-Verfahren gemäß einem Ausführungsbeispiel
der Erfindung darstellt. Als eine einleitende Bemerkung soll angenommen
sein, dass die Semantiken des Quell-CAD-Daten-Modells bereits verstanden
sind. Ferner kann, wenn eine Brücken-Datenstruktur
genutzt wird, ein universelles Zwischen-CAD-Datenformat angewendet
werden. Daher kann das Wissen über
das Quell- und Ziel-CAD-System unabhängig von den Extrahierungs-
oder Erzeugungsprozessen sein.
-
In
Schritt 501 wird eine Anwenderprogrammier-Schnittstelle
("API") auf entweder dem Quell-CAD-System
oder dem Ziel-CAD-System
aufgerufen. Gemäß einem
Ausführungsbeispiel
wird die Ziel-CAD-System-API zuerst aufgerufen, und wenn die API
nicht funktioniert, dann wird die API auf dem Quell-CAD-System aufgerufen.
Jedoch wird bei einem anderen Ausführungsbeispiel ausschließlich die API
auf dem Ziel-CAD-System aufgerufen, oder ausschließlich die
API auf dem Quell-CAD-System wird aufgerufen. Wird beispielsweise
der Export-Prozess ausgeführt,
wird nur die Quell-CAD-System-API verwendet. Wird jedoch der Import-Prozess
ausgeführt, dann
wird nur die Ziel-CAD-System-API verwendet.
-
In
Schritt 502 wird das Ergebnis der API analysiert, um zu
ermitteln, ob ein Fehler aufgetreten ist. Im Allgemeinen wird die
API eine Fehler-Benachrichtigung zurückgeben, allerdings könnte der
API-Fehler ein andermal einen Subsystem-Absturz, wie beispielsweise
einen Seitenfehler oder einen allgemeinen Schutzfehler, hervorrufen.
Daher kann das Ermitteln, ob ein Fehler aufgetreten ist, nicht nur
das Überwachen
der Ausgabe der API sondern das Überwachen
der Ausführung
verschiedener Betriebsparameter des Quell- und/oder Ziel-CAD-Systems
ebenso wie der körperlichen
Eigenschaften der CAD-Datenobjekte selbst (beispielsweise auf einer
Merkmal-zu-Merkmal-Basis) umfassen.
-
Selbst
wenn die API, wenn in Schritt 502 getestet, erfolgreich
ist, wird in Schritt 503 ein zweiter Test durchgeführt, um
sicherzustellen, dass das Designziel des Quell-CAD-Daten-Modells
beibehalten wird, wenn das Ziel-CAD-Daten-Modell erzeugt wird. Zu
diesem Zweck umfasst das Testen des Designziels das Ermitteln, ob
ein bestimmtes Ziel-CAD-Merkmal immer noch von einem Ingenieur verändert werden
kann. Beispielsweise ist ein Test, um zu ermitteln, ob das Designziel
beibehalten wird, das Ausmaß zu
prüfen,
zu dem die Randdarstellungen im CAD-Daten-Modell verwendet wurden. Typischerweise
ist es, wenn das Ziel-CAD-Daten-Modell alle
Randdarstellungen sind, dann möglich,
dass das Designziel nicht beibehalten wurde. Jedoch kann ein Ziel-CAD-Modell unter
gewissen Umständen
mittels Randdarstellungen dargestellt werden und weiterhin teilweise
das Designziel beibehalten, beispielsweise, wenn die Randdarstellung
auf einer Merkmal-zu-Merkmal-Basis erzeugt ist.
-
Hat
die API erfolgreich das Designziel vom Quell-CAD-System beibehalten,
dann wird die API genutzt, um in Schritt 504 das spezielle
Merkmal für das
Ziel-CAD-System zu erzeugen. Wenn nicht, oder wenn die API als ein
Ergebnis des Tests in Schritt 502 fehlschlug, dann wird
in Schritt 505 ein Muster-Matching-Verfahren, das nachstehend ausführlich beschrieben
wird, ausgeführt.
-
Im
Allgemeinen ist das Muster-Matching-Verfahren ein Verfahren zum
Abbilden einer oder mehrerer Funktionen eines bestimmten Merkmals
von einem Quell-CAD-Daten-Modell in eine oder mehrere entsprechende
Funktionen für
das Ziel-CAD-Daten-Modell. Gemäß einem
Ausführungsbeispiel
wird das Muster-Matching-Verfahren verwendet, um "Best Practice"-Verfahren durchzuführen oder
bestimmte Entwurfsvorgaben durchzusetzen. Daher wird das Muster-Matching-Verfahren
typischerweise genutzt, um einige angrenzende Folgen von Operationen
in der Quell-Merkmalsliste zu finden und diese Folgen auf eine gewünschte Merkmalsliste für ein Ziel-CAD-System abzubilden,
welches Verfahren das Designziel beibehält. Eine genauere Beschreibung
eines Muster-Matching-Verfahrens wird nachstehend unter Bezugnahme
auf 6–8 dargestellt.
-
In
Schritt 506 wird ein Test durchgeführt, um das Ergebnis des Muster-Matching
in Schritt 505 zu ermitteln. Das Muster-Matching schlug
fehl, wenn kein Muster, das ein aktuelles Merkmal umfasste, mit einem
in der Datenbank gespeicherten Matching-Datensatz in Übereinstimmung gebracht werden
konnte. In Schritt 507 werden unter der Annahme eines erfolgreichen
Muster-Matching eine oder mehrere äquivalente Operationen für das Ziel-CAD-Modell oder eine
Brücken-Struktur
erzeugt, wenn dies der Fall sein sollte.
-
Schritt 508 zeigt
ein Funktions-Abbildungsverfahren. Im Allgemeinen ist der Unterschied
zwischen einem Muster-Matching und einer Funktionsabbildung, dass
das Muster-Matching mehrere Operationen auf mehrere äquivalente
Operationen abbildet, während
die Funktionsabbildung im Allgemeinen eine Eins-zu-Eins-Typ-Matching zwischen
Operationen ist und nicht notwendigerweise irgendwelche Design-
oder Praxis-Vorgaben beim Abbilden ausführt. Jedoch können Schritt 508 und
alle entsprechenden nachfolgenden Operationen im Muster-Matching-Verfahren
zusammengefasst werden – wobei die
Funktionsabbildung eine Teilmenge des Muster-Matching ist. In Schritt 509 wird
ein Test durchgeführt,
um zu ermitteln, ob die Funktionsabbildung zum Finden einer äquivalenten
Operation fehlschlug. War die Funktionsabbildung erfolgreich, dann
wird in Schritt 510 die äquivalente Operation für das Ziel-CAD-Modell
erzeugt.
-
Schlug
jedoch die Funktionsabbildung fehl, dann wird in Schritt 511 ein
Nutzeremulations-Verfahren ausgeführt. Im Allgemeinen emuliert
das Nutzeremulations-Verfahren die Menü- und/oder Maus-Operationen eines
Nutzers des Ziel-CAD-Systems oder des Quell-CAD-Systems. Beispielsweise kann das
Nutzeremulations-Verfahren angewendet werden, um Eigenschaften entweder
des Ziel- oder Quell-CAD-Objekts zu erfassen oder zusätzliche
Attribute oder Kommentare aufzudecken, die ein bestimmtes Merkmal
betreffen. Das Nutzeremulations-Verfahren kann auch angewendet werden,
um ein bestimmtes Merkmal aus dem Quell-CAD-System zu extrahieren
oder das äquivalente
Merkmal im Ziel-CAD-System zu erzeugen.
-
Bestimmte
Details der Nutzeremulations-Verfahren werden nachstehend unter
Bezugnahme auf 9A–C und 10A–D beschrieben.
-
In
Schritt 512 wird ein Test durchgeführt, um zu ermitteln, ob das
Nutzeremulations-Verfahren fehlschlug. Schlug das Nutzeremulations-Verfahren nicht
fehl, dann wird in Schritt 513 das Ziel-CAD-Modell-Merkmal erzeugt, und im Prozess
wird mit dem nächsten
Design-Merkmal des Quell-CAD-Modells fortgefahren. Schlug jedoch
das Nutzeremulations-Verfahren fehl, dann wird in Schritt 514 eine Randdarstellung
(d. h. eine Explizite-Geometrie-Darstellung im Gegensatz zu einer
PFB-Darstellung) erzeugt. Es ist im Stand der Technik allgemein
bekannt, wie eine Randdarstellung (oder "brep")
des speziellen Merkmals erzeugt wird. Beispielsweise kann oder können eine
oder mehrere API-Funktionen im Quell- oder Ziel-CAD-System aufgerufen
werden, um eine exportierbare brep zu erzeugen. Während es
allgemein bekannt ist, wie eine brep zu erzeugen ist, was an dieser
Stelle eindeutig ist, ist die Weise, in der ein 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
im brep enthalten ist. Ist das aktuelle Merkmal einmal enthalten,
dann kann das brep-Verfahren 411 das Erzeugen des Ziel-CAD-Modells
anhalten, und nachfolgende Merkmale können mittels anderer Verfahren
erzeugt werden.
-
Nach
Schritt 514 kann die Verarbeitung mit dem nächsten Design-Merkmal des Quell-CAD-Modells
fortfahren.
-
Es
ist wert, bestimmte Fehler-Erfassungsverfahren zu erwähnen, die
erfindungsgemäß ausgeführt werden
können.
Dazu bewegen wir uns zu 5B.
-
In
Schritt 531 ist ein Test gezeigt, der ermittelt, ob die
Fehlererfassung basierend auf einem API-Aufruf oder einigen anderen
Operationen (beispielsweise Muster-Matching, Funktionsabbildung, Nutzeremulation
oder brep) initialisiert ist. Folgt der Fehler-Erfassungsprozess einem API-Aufruf,
dann wartet das Zwischensys tem in Schritt 532 auf ein Signal
zurück
von der API, das kennzeichnend für
einen Erfolg oder Fehlschlag des API-Aufrufes ist. Anderenfalls
wird im Verfahren mit Schritt 534 fortgefahren.
-
In
Schritt 533 wird ein Test durchgeführt, um zu ermitteln, ob die
API fehlschlug. Schlug die API fehl, dann wird in Schritt 538 ein
Fehlschlag-Signal zum Datenaustausch-Prozess zurückgegeben. Wenn nicht, dann
wird Schritt 534 ausgeführt,
der ebenfalls Schritt 531 folgt. In Schritt 534 wird
eine Analyse einer körperlichen
und/oder geometrischen Eigenschaft durchgeführt, wobei die geometrischen und/oder
körperlichen
Eigenschaften des Quell-CAD-Modells mit dem Ziel-CAD-Modell verglichen
werden. Beispielsweise kann eine Flächeninhalt-Berechnung durchgeführt werden,
eine Massen- oder Dichteberechnung kann durchgeführt werden, und/oder eine Linien-
oder Umfangsberechnung kann durchgeführt werden. Andere Volumenmodell- oder
geometrische Modell-Berechnungen können ebenfalls durchgeführt werden.
-
In
Schritt 535 wird das Ergebnis des Vergleichs in Schritt 534 gegen
dem Ziel-CAD-System zugeordnete zugelassene Toleranzen getestet.
Es ist wert zu bemerken, dass die Toleranzen nicht nur auf die Quell-
und Ziel-CAD-Modell-Eigenschaften bezogen sein können sondern ebenso gerade
auf die Ziel-CAD-Objekt-Eigenschaften
in Bezug auf Entwurfs- oder Merkmalstoleranzen bezogen sein können, die
dem Ziel-CAD-System genau entsprechen. Liegt das Ergebnis innerhalb
der Toleranz des Ziel-CAD-Systems, dann wird im Prozess mit Schritt 539 fortgefahren,
der nachstehend beschrieben wird. Anderenfalls wird im Prozess mit
Schritt 536 fortgefahren, in dem das Ziel-Merkmal eingestellt
wird. Wurde beispielsweise erfasst, dass sich zwei Linien im Ziel-CAD-Objekt
nicht treffen, kann/können
bei einem Versuch, eine Überschneidung
zwischen den beiden Linien zu erzeugen, eine oder beide der zwei Linien
in Richtung der anderen erweitert werden. In Schritt 537 können die
Toleranzen wie vorstehend beschrieben nochmals getestet werden.
Schlägt
jedoch der Test fehl, dann wird in Schritt 538 eine Fehlschlag-Benachrichtigung
zum Datenaustausch-Prozess zurückgegeben.
-
Ist
der Test in Schritt 537 erfolgreich, dann kann in Schritt 539 eine
Rückgängig-Information
im Speicher persistent gespeichert werden, sodass, wenn erforderlich,
der Erzeugungsprozess rückgängig gemacht
werden kann. In der Praxis ist das, was in der Rückgängig-Information gespeichert
wird, ein Synchronisationspunkt oder -markierung für das Quell-CAD-Modell
ebenso wie die entsprechenden Operationen für das Ziel-CAD-Modell.
-
Beispielsweise
wird angenommen, dass ein spezielles Quell-CAD-Modell drei Merkmale hat. Beim Austauschen
des Quell-CAD-Modells mit dem Ziel-CAD-Modell werden die ersten
zwei Merkmale erfolgreich umgesetzt, aber das dritte schlägt fehl.
Es ist möglich,
dass der Austausch des dritten Merkmals in Wirklichkeit kein Fehlschlag
war; anstatt dessen verursachten der erste oder zweite Merkmalsaustausch,
dass der dritte Merkmalsaustausch fehlschlug. Bei solch einem Sachverhalt,
wenn das bestimmte Ziel-CAD-Merkmal (selbst) nicht erfolgreich das
Quell-CAD-Merkmal
reproduziert, ist es möglich, das
zweite Merkmal zurückzurollen
und dann den zweiten Merkmalsaustausch mittels eines neuen Verfahrens
zu wiederholen. Wenn das Einstellen des Austauschs des zweiten Merkmals
keine erfolgreiche Operation für
den Austausch des dritten Merkmals erreicht, dann kann das erste
Merkmal mit der Rückgängig-Information
zurückgerollt
werden.
-
In
Schritt 540 wird ein "Erfolg"-Signal zum Haupt-CAD-Daten-Austausch-Prozess
zurückgegeben.
Während
kein expliziter Schritt im Fehler-Erfassungsprozess zeigt der Vermerk 541,
dass eine nachfolgende Operation einen Fehlschlag von einer vorherigen
Operation identifizieren kann. In solch einem Fall kann die in Schritt 539 gespeicherte
Rückgängig-Information
verwendet werden, um die vorherige Operation–und jede der vorherigen Operation nachfolgenden
Operationen–rückgängig zu
machen. Der Fehler-Erfassungsprozess endet nach Schritten 538 und 541.
-
Bezug
nehmend auf das in 4 gezeigte System
und das in 5A gezeigte
Verfahren ist ein typischer Datenfluss wie folgt. Das Quell-CAD-System 401 umfasst
PRO/Engineer-CAD-Software.
Ein mit dem Ziel-CAD-System 403 arbeitender Ingenieur nutzt
Catia-CAD-Software. Der Ingenieur würde gern ein mit der PRO/Engineer-Software
entworfenes CAD-Modell nehmen und ein Catia-CAD-Modell erzeugen.
Ein CAD-Daten-Austausch-Prozess wird vom Ingenieur initialisiert.
-
Zurückkehrend
zum Datenfluss wird vom Zwischensystem 400 zunächst eine
Merkmalsliste oder ein Merkmalsbaum im Quell-CAD-System 401 geprüft. Das
Zwischensystem kann ein Standalone-System sein, oder es kann ein Plugin
in einem (oder beiden), dem Quell-CAD-System 401 und/oder dem
Ziel-CAD-System 403, sein.
-
Ein
Extrahierungsprozess 406 beginnt mittels Testens der API
des Quell-CAD-Systems 401 auf Funktionen, die einzelne
Merkmale zum Ziel-CAD-System 403 übersetzen. Wenn es im Quell-CAD-System 401 keine
APIs gibt. Im Prozess wird in einer iterativen Weise nach dem API-Verfahren 408 so
fortgefahren, dass das Muster-Erkennungsverfahren 409 (optional
für die
Extrahierung), das Nutzeremulations-Verfahren 410 und das
Randdarstellungs-Verfahren 411 jeweils
angewendet werden (nur wenn das vorangegangene Verfahren fehlschlug),
um das CAD-Modell für
das Ziel-CAD-System 403 zu erzeugen.
-
Wurde
das Quell-CAD-Daten-Modell einmal extrahiert, beginnt dann der Erzeugungsprozess 407. Der
Erzeugungsprozess testet die API des Ziel-CAD-Systems 403 auf
Funktionen, die die einzelnen Merkmale aus dem Extrahierungsprozess 406 übersetzen.
In einer gleichen iterativen Weise wird im Prozess von dem API-Verfahren 408 aus
mit dem Muster-Matching-Verfahren 409, dem Nutzeremulations-Verfahren 410 und
schließlich
dem Randdarstellungs-Verfahren 411 fortgefahren. Wiederum wird
das jeweilige Verfahren, wenn das vorangegangene Verfahren fehlschlug,
oder in einigen Fällen
in Kombination mit einem vorangegangenen Verfahren implementiert.
Beispielsweise kann das Muster-Matching-Verfahren 409 Operationen
aus dem API-Verfahren 408 oder Nutzeremulations-Verfahren 410 implementieren,
was aus der nachstehenden Erläuterung
deutlich wird.
-
Gemäß einem
Ausführungsbeispiel
speichert die Datenbank 402 Datenstrukturen, die Muster von
Matching-Daten für
das Muster-Matching-Verfahren 409 halten.
Die Datenbank kann ferner Nutzerschnittstellen-Daten, wie beispielsweise
Abbildungen grafischer Nutzerschnittstellen einer Anzahl von CAD-Systemen,
speichern. Ferner kann die Datenbank verschiedene brep-Verfahren
umfassen, die in einem bestimmten Ziel-CAD-System 403 am
wahrscheinlichsten erfolgreich sind.
-
Bei
einem anderen Ausführungsbeispiel
wird eine Brücken-Datenstruktur 402' erzeugt, die
ebenso das CAD-Modell für
das Ziel-CAD-System 403 als auch Zurückroll- und/oder Rückgängig-Protokollierungen
zum Zurückrollen
bestimmter Merkmale oder nicht erfolgreicher Operationen temporär oder persistent
halten kann. Bei wiederum einem anderen Ausführungsbeispiel kann die Brücken-Datenstruktur 402' ein universelles
Dateiformat sein, das selbst vom Ziel-CAD-System 403 in
ein natives Format umgewandelt wird. Solch ein universelles Dateiformat hat
den Vorteil des Beseitigens der Extrahierungsstufe 406 in
nachfolgenden CAD-Daten-Austausch-Prozessen (die Extrahierungsstufe 406 muss
zumindest einmal ausgeführt
werden) – übriglassend
lediglich die Erzeugungsstufe 407-Operationen, wenn mehr als
ein Typ von Ziel-CAD-Systemen 403 das vom Quell-CAD-System 401 genommene
CAD-Modell nutzt.
-
Muster-Matching
-
Bewegend
zu 6 stellt diese eine
Betriebsübersicht
eines Muster-Matching-Verfahrens gemäß einem Ausführungsbeispiel
der Erfindung dar. Ein Flüchtiger-Speicher-Bereich 603 eines
Computersystems hält
Teile von Daten von einem beispielsweise der Datenbank 402 und/oder
dem CAD-System 401 zugeordneten Persistent-Speicher, welche
Daten zum Teil auf einer oder mehreren magnetischen oder optischen
Persistent-Speichereinrichtungen
vorkommen können.
-
Der
Flüchtiger-Speicher-Bereich 603 umfasst
vier Speicherbereiche. Ein Matching-Daten-Bereich 604 speichert temporär statische
Matching-Daten zwischen, die Teil der System-Wissensbasis sind. Die Matching-Daten
sind eine Untermenge der Wissensbasis, die ein Bereich des Interesses
oder von höherer
statistischer Wahrscheinlichkeit zum Finden eines bekannten Musters
ist. Ein Gegenwärtiges-Objekt-Bereich 605 speichert
temporär
einen oder mehrere Abschnitte einer Merkmalsliste von einem Quell-CAD-System 401 zwischen – dieser
Zwischenspeicher stellt allgemein einen Satz von Daten (oder Operationen)
dar, der ausreichend angepasst ist, sodass er groß genug
ist, das größte Quell-Operationsmuster
zu halten.
-
Bereiche 604 und 605 werden
primär
verwendet, um E/A und damit im Zusammenhang stehende Plattenzugriffs-Latenzzeiten
zu reduzieren. Die Bereiche können
von variabler Größe sein,
und gemäß einem
Ausführungsbeispiel
kann der Speicher 603 ferner ein Hash oder einen Index
aufweisen, um Durchsuchungen in größeren Datensätzen oder zumindest
in Datensätzen,
die außerhalb
der Grenzen der im Speicher 603 gespeicherten Daten liegen, zu
beschleunigen.
-
Ein
Gegenwärtiges-Merkmal-Bereich 606 ist kleiner
als der Matching-Daten-Bereich 604. Der Gegenwärtiges-Merkmal-Bereich 606 hält die Quelloperation,
die vom Gegenwärtiges-Objekt-Bereich 605 aus
aufgestellt wurde, der die Basis einer Abfrage des Matching-Daten-Bereichs 604 ist.
-
Der
Gegenwärtiges-Matching-Bereich 607 speichert
temporär
Matching-Datensätze,
d. h. Information von den Datensätzen
der Wissensbasis 402, die kennzeichnen, wie das Ziel-CAD-System
das Ziel-CAD-Modell–oder
das Ziel-Merkmal–aufzubauen
hat. Der Gegenwärtiges-Matching-Bereich 607 kann
klein sein, ist er allerdings klein, dann sollte der Bereich häufig zu
einem persistenten Speicherbereich geschrieben und dann gelöscht werden.
Selbstverständlich
gilt das gleiche, wenn der Bereich groß ist, allerdings könnte die
Häufigkeit
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 Zwischendatentyp, der streng genommen nicht der Ziel-Datentyp
ist. Daher kann die Brückenstruktur 402' das Quell-CAD-Modell
betreffende zusätzliche
Information, das Ziel-CAD-Modell und Extrahierungs- sowie Erzeugungs-Information
aufweisen, die für
einen verlustfreien Zwei-Wege-Datenaustausch genutzt werden kann.
-
7 stellt beispielhafte Datenstrukturen
für die
in der Datenbank 402 ausgeführte Wissensbasis dar. Gemäß einem
Ausführungsbeispiel
weist die Datenstruktur eine Umwandlungstabelle 708 mit
einem Quell-CAD-Systemtyp und einem Ziel-CAD-Systemtyp auf. Abgleichend
die Quell- und Ziel-CAD-Systemtypen kann ein Computer, der die Schritte
der Erfindung ausführt,
auf einen Zeiger auf zusätzliche
Datensätze
oder Datenstrukturen zugreifen, die dem speziellen gewünschten
CAD-Daten-Austausch entsprechen. Während X's für
Umwandlungen gleicher CAD-Typen gezeigt sind, sind die Verfahren
der Erfindung gleichermaßen
anwendbar auf Umwandlungen von CAD-Modellen gleichartiger Typen
allerdings mit verschiedenen Versionen. Daher ist eine Umwandlung
eines CAD-Modells von einer PRO/Engineer-Version 2000i2 zu einer
PRO/Engineer-Version 20001, d. h. eine Rückwärts-Umwandlung, wie auch eine
Vorwärts-Umwandlung
(20001 zu 2000i2) möglich.
Zeiger, um Datensätze
für die
verschiedenen Versionsnummern anzupassen, können ebenfalls in der Struktur
enthalten sein.
-
Gemäß einem
anderen Ausführungsbeispiel ist
eine Umwandlungstabelle 708 nicht notwendig. Beispielsweise
ist die CAD-Daten-Austausch-Software
typischerweise in einem Plugin in einem Third-Party-CAD-System ausgeführt. Das
Plugin kann umwandlungsspezifisch sein, was bedeutet, dass das Plugin
nur Dateien von Typ A zu Dateien von Typ B (und umgekehrt) umwandelt.
In solch einem Fall ist die Umwandlungstabellen 708 -Information
bereits bekannt, weshalb die Tabelle 708 nicht notwendig
ist.
-
Bei
einem Aspekt des Muster-Matching-Verfahrens werden Matching-Datensätze 709 genutzt, um
den Muster (oder eben den Funktions-) Matching-Prozess zu bewirken.
Die Matching-Datensätze 709 weisen
zwei Bereiche auf. Der erste Bereich 710 speichert Quellfunktions-
oder -Operations-Information. Die Quellfunktions-Information entspricht
einer oder mehreren Operationen oder geometrischen Strukturen im
Quell-CAD-System. Der zweite Bereich 711 speichert Zielfunktions-Information
oder geometrische Strukturen für
das Ziel-CAD-System–beispielsweise
einen Zeiger auf eine Funktion, die die gewünschte Aktion ausführt. Die
Zielfunktions-Information entspricht einer oder mehreren Operationen
im Ziel-CAD-System–beispielsweise
kann die Zielfunktions-Information eine Funktion oder einen Zeiger
auf eine Funktion für
das API-Verfahren 408 aufweisen. Ein Ende-Der-Datei-Abschnitt 712 kann
ebenfalls enthalten sein, sodass Matching-Datensätze 709 zueinander
einfach identifiziert werden können,
da es möglich
ist, dass die Datensätze
eine variable Länge
aufweisen. Jedoch ist, wenn Matching-Datensätze 709 fester Länge verwendet
werden, der Ende-Der-Datei-Abschnitt 712 unnötig.
-
Ferner
können
zusätzliche
Datenstrukturen enthalten sein. Beispielsweise können, wie oben unter Bezugnahme
auf 6 erwähnt, die
Matching-Datensätze 709 unter
Verwenden bekannter Hash-Techniken in unterschiedliche Hash-Buckets aufgeteilt
sein, oder ein B-Baum oder ein anderer Typ einer Indexierungs-Struktur
kann verwendet werden, um Suchoperationen zu beschleunigen. Ferner
kann es effizient sein, die Matching-Datensätze 709 vor der Laufzeit
oder, wenn die Datensätze
einmal aktualisiert wurden, zu sortieren. Sind die Datensätze sortiert,
dann können
Bereiche des Speichers mit einer hohen Bezugsgebundenheit (bedeutend,
dass, wenn eine Speicheradresse X aufgerufen wird, dann wahrscheinlich
die Speicheradresse Y ebenfalls aufgerufen wird) zusammen gruppiert
werden können,
wodurch E/A- und Lese-Latenzzeiten
reduziert werden.
-
8 ist ein Flussdiagramm,
das ein Verfahren zum Muster-Matching,
wie auf den CAD-Daten-Austausch angewendet, ausführlich darstellt. Es ist angenehm
aber nicht notwendig, 8 unter
Bezugnahme auf 6 und 7 zu besprechen. Zum Zwecke
dieser Erläuterung
soll angenommen sein, dass die relevanten Bereiche des Quell-CAD-Modells 401 und
der Wissensbasis 402 in den Speicher 603 gelesen
wurden.
-
In
Schritt 801 wird ein gegenwärtiges Merkmal aus der Quellmerkmals-Liste
gelesen und in einen, den Gegenwärtiges-Merkmal-Bereich 606 geladen.
In Schritt 802 werden die Daten im Gegenwärtiges-Merkmal-Bereich 606 gegen
Quellfunktionen 710 im Matching-Daten-Bereich 604 mittels
Durchsuchens des Bereichs 606 nach einem Matching-Datensatz
verglichen. In Schritt 803 wird, wenn ein Matching gefunden
wurde, dann im Prozess mit Schritt 805 fortgefahren, andernfalls
wird zum Haupt-CAD-Daten-Austausch-Algorithmus
ein Fehlschlag-Signal zurückgegeben
(beispielsweise siehe 5).
-
In
Schritt 805 wird dem Gegenwärtiges-Matching-Datensatz 709 entsprechende
Information im Gegenwärtiges-Matching-Bereich 607 gespeichert. Die
Information kann der Gegenwärtiges-Matching-Datensatz 709 selbst,
ein Zeiger auf den Gegenwärtiges-Matching-Datensatz 709 in
der Wissensbasis 402 oder des Matching-Daten-Bereichs 604,
die Zielfunktionen 711 oder die mit irgendwelchen Unterstützungsdaten
(beispielsweise Parametern für
das Ziel-CAD-System
und/oder zusätzlicher, den
Extrahierungs- oder Erzeugungsprozess betreffender Information) übersetzten
Zielfunktionen 711 sein.
-
In
Schritt 806 wird ein Test durchgeführt, um sicherzustellen, dass
es keine zusätzlichen
Funktionen im Quell-Merkmal gibt, die auszutauschen sind. Sind zusätzliche
Funktionen zu verarbeiten, dann fährt das Verfahren mit Schritt 807 fort.
Anderenfalls kann der Gegenwärtiges-Matching-Datensatz 607 in Schritt 812 persistent
gespeichert werden (wenn noch nicht), und die nächste Funktion entsprechend diesem
Merkmal kann in Schritt 807 geladen werden, sodass die
Such- (808) und Matching (809) -Schritte ausgeführt werden
können.
-
In
Schritt 809 ist es möglich,
dass die der Suche hinzugefügte
(n) zusätzliche
(n) Funktionen) ein inkompatibles Matching erzeugt/en. In Schritt 813 wird
dieses Szenario behandelt. Gemäß einem
Ausführungsbeispiel
werden beliebige Änderungen,
die in der Ziel-Merkmalsliste durchgeführt oder zu ihr hinzugefügt wurden,
auf einer Merkmals-zu-Merkmals-Basis zurückgerollt (Schritt 814).
Ein Grund, dass dieser Prozess implementiert werden kann, ist, dass
ein nachfolgender Versuch, die fehlgeschlagene(n) Operation(en)
zu behandeln, effizienter eine Folge von Operationen (beispielsweise
ein gesamtes Merkmal) anstatt eine einzelne Operation abbilden kann.
Bei einem anderen Ausführungsbeispiel
wird der zuletzt gespeicherte Matching-Datensatz als die Basis für die Ziel-Merkmalsliste
verwendet (Schritt 815), und die verbleibenden Funktionen
können
mit dem Ziel-CAD-System über
ein alternatives Verfahren ausgetauscht werden. In Schritt 816 wird
die Matching-Datensatz-Information für das Ziel-CAD-Modell eingegeben.
-
Zurückkehrend
zu Schritt 809 wird, wenn ein Matching gefunden ist, dann
in Schritt 810 Information entsprechend dem Matching-Datensatz 709 gespeichert.
Gibt es in Schritt 811 im Quell-CAD-Modell mehr Operationen, dann wird im
Verfahren zu Schritt 807 zurückgekehrt. Anderenfalls wird
die gespeicherte Zielfunktions-Liste,
die mehrere Sätze
von Information entsprechend den Zielfunktionen 711 aufweisen
kann, in Schritt 812 in das Ziel-CAD-Modell eingegeben.
-
Es
ist wert zu bemerken, dass, während
der oben beschriebene Muster-Matching-Prozess unter Bezugnahme auf
ein spezielles Merkmal definiert wurde, welcher Prozess das bevorzugte
Ausführungsbeispiel
ist, es möglich
ist, das Muster-Matching in Bezug auf einzelne Funktionen ohne Beachtung
ihrer Gesamtbeziehung zu einem bestimmten Merkmal auszuführen.
-
Gemäß einem
Ausführungsbeispiel
wird, nachdem ein bestimmtes Merkmal unter Verwenden des Muster-Matching-Verfahrens
erzeugt worden ist, dann eine Körperliche-
und/oder Geometrische-Eigenschaft-Analyse
(wie oben erläutert)
auf dem Ziel-Merkmal durchgeführt,
und die Eigenschaften werden gegen körperliche/geometrische Eigenschaften
des Quell-Merkmals verglichen. Stimmen die Eigenschaften nicht überein,
dann können
die Parameter der Ziel-Merkmalsliste eingestellt werden, bis die Eigenschaften
innerhalb einer akzeptablen Toleranz liegen.
-
Nutzeremulation
-
9A–C stellen
Aspekte einer Nutzeremulation dar, was ein Rückfall- oder alternatives Verfahren
ist, das verwendet wird, um die Extrahierungs- und Erzeugungsprozesse
durchzuführen.
Gemäß einem
Ausführungsbeispiel
werden die Nutzeremulations-Verfahren
genutzt, um Daten vom Quell-CAD-System mit dem Ziel-CAD-System direkt auszutauschen.
Alternativ können
die Nutzeremulations-Verfahren genutzt werden, Daten vom Quell-CAD-System zum Ziel-CAD-System über eine Zwischendatei,
wie beispielsweise die Brücken-Datenstruktur,
auszutauschen. Bei wiederum einem anderen Ausführungsbeispiel werden die Nutzeremulations-Verfahren
genutzt, um Information in entweder dem Quell-CAD-Modell oder dem
Ziel-CAD-Modell zu erlangen.
-
Beispielsweise
können
die nachstehend beschriebenen Nutzeremulations-Verfahren genutzt werden,
um Attribute zu sammeln oder Information entsprechend einem Quell-
oder Ziel-Merkmal zu laden, um Analysen geometrischer oder körperlicher Eigenschaften
durchzuführen
oder eine bestimmte Kante oder Fläche im Quell- oder Ziel-CAD-Modell auszuwählen. Bei
wiederum einem anderen Ausführungsbeispiel
können
die Nutzeremulations-Verfahren genutzt werden, einen Prozess mit
einem bekannten Nutzerschnittstellen-Verhalten zu automatisieren.
-
Bewegend
zu 9A ist diese eine
architektonische Übersicht
eines Ausführungsbeispiels
der Nutzeremulations-Verfahren. Die Figur ist nützlich beim Verstehen, wie
die unterschiedlichen Software-Module eines programmierten Computers
interagieren.
-
CAD-System-Software 901 weist
eine Nutzerschnittstelle auf. Die Nutzerschnittstelle interagiert typischerweise über eine
Zeigervorrichtung, wie beispielsweise eine Maus, oder über Tastatursteuerung mit
einen Nutzer. Zum Zwecke dieser Erläuterung werden die Maus- und
Tastatur-Steuerungen "Schnittstellen-Eingaben" genannt. Tatsächlich jedoch
interagiert die Nutzerschnittstelle nicht direkt mit den Schnittstellen-Eingaben.
In der Praxis werden Schnittstellen-Eingaben über einen Gerätetreiber
(nicht gezeigt) weitergeleitet und auf einem Computerbildschirm
(nicht gezeigt) dargestellt. Zugleich wird den Schnittstellen-Eingaben
entsprechende Information über
beispielsweise einen X-Server 902 zum CAD-System 901 weitergeleitet.
Die Nutzerschnittstelle des CAD-Systems 901 wiederum kann auf
die Schnittstellen-Eingaben mittels Sendens von Daten oder Befehlen
zurück über den
X-Server 902 antworten, die dann auf dem Computermonitor
ausgegeben werden.
-
Es
ist zu bemerken, dass ein X-Server ausschließlich ein beispielhaftes grafisches
fensterbasiertes Modul ist. Unter bestimmten Betriebssystemen wird
die Rolle des X-Servers von anderen Grafik-Bild-Servern oder -Modulen
ausgeführt.
Diese Module können
beispielsweise bei Microsoft Windows NT die ausführbaren Dateien USER.EXE und GDI.EXE
umfassen. In anderen Umgebungen könnten zusätzlich ausgeführte oder
interpretierte Module, wie beispielsweise in Java Script oder unter
verwenden verschiedener Java-Klassen erzeugte Schnittstellen, eine
gleiche Funktionalität
für die
Anwendungs- oder Betriebssystem-Umgebung erreichen.
-
Beispielsweise
kann ein Nutzer einen Zeiger (mit einer Maus) von Position (x1,
y1) zu (x2, y2) bewegen und dann einen Mausklick ausführen. Die Maus
sendet die Schnittstellen-Eingaben zu einem Gerätetreiber, der die Bewegung
in elektrische Signale übersetzt.
Die Schnittstellen-Eingaben werden zum X-Server 902 gesendet,
der eine Bitmap-Anzeige für
den Monitor ansteuert. Elektrische Signale werden auch zum CAD-System 901 gesendet.
Das CAD-System 901 empfängt
die Schnittstellen-Eingaben und ermittelt, wie die CAD-Software
auf die Schnittstellen-Eingaben antworten (oder sich ändern) sollte.
Die Antwort kann das Ändern
der Farbe eines bestimmten Menüeintrags,
das Darstellen einer Menü-Pull-down-Liste
oder das Auswählen
eines Merkmals oder eines bestimmten Objekts umfassen. Ermittelt
das CAD-System 901 einmal, wie sich die Anzeige ändern soll,
führt die
CAD-Software die entsprechende Zustandsänderung intern durch und sendet
dann zusätzlich
Information zurück
zum X-Server 902, sodass die Computeranzeige entsprechend
geändert
werden kann.
-
Erfindungsgemäß interagiert
die Nutzerschnittstelle nicht direkt mit dem X-Server 902.
Anstatt dessen interagiert die Nutzerschnittstelle mit einem oder
mehreren Softwaremodulen, wobei zumindest eines von ihnen einen
Nutzer emuliert. Bei einem Ausführungsbeispiel
der Erfindung wirkt ein Proxy 903 als ein Puffer zwischen
dem CAD-System 901 (und seiner Nutzerschnittstelle) und
dem X-Server 902. Signale, die den Proxy 903 passieren,
werden fort zu einem Interpreter 904 weitergeleitet, der
die Signale prüft
und eine Nutzerantwort emuliert. Die emulierte Nutzerantwort kann über den
Proxy 903 zurück
zur Nutzerschnittstelle oder zum X-Server 902 zurückgesendet
werden. (Es ist wert zu bemerken, dass der Proxy 903 und
der Interpreter 904 in einem einzigen Software-Modul vorhanden
sein können, beispielsweise
einem Plugin, das über
das CAD-System 901 angekoppelt ist.)
-
Bei
einem alternativen Ausführungsbeispiel können Daten-
und Steuersignale zwischen dem X-Server 902 und dem CAD-System 901 von
einem Plugin in der CAD-Software erfasst werden. Beim Antworten
auf die erfassten Signale tritt das Plugin in einen Zustand ein,
der im Wesentlichen eine Zeitverzögerung ist. Ein zweiter Sub-Thread,
der die erfassten Signale verarbeitet, kann dann vom Plugin abgelegt
werden. Hat das Plugin die Signale einmal verarbeitet, kann es dem
CAD-System entsprechende Zustandsinformation (in einem dem Plugin
zugeordneten reservierten Speicher) speichern und dem Plugin signalisieren,
den Wartezustand zu beenden.
-
Inzwischen
kehrt das CAD-System unter der Voraussetzung, dass das Plugin beendet
ist, zur normalen Verarbeitung zurück. Das nächste Mal, wenn vom Plugin
Signale erfasst werden, kann das Plugin erneut dem CAD-System befehlen,
das Plugin einzubinden und dann das Verarbeiten im Sub-Thread wiederaufzunehmen – Aufnehmen
des Prozesses, wo er verlassen wurde. Während dieses Verfahren nicht Thread-sicher
sein kann, ist es eine nützliche
Methode zum Ausführen
zweier Prozesse, die sich in einer normalen Betriebsumgebung gegenseitig
ausschließen.
-
Gemäß einem
Ausführungsbeispiel
hat, bevor das Plugin beendet wird, der Sub-Thread einen Zeitgeber
initialisiert. Der Zeitgeber kann genutzt werden, um zu erfassen,
wann ein externer Verarbeitungsfehler auftritt. Läuft der
Zeitgeber ab, bevor die Verarbeitung der Zustandsinformation durch
den Sub-Thread wiederaufgenommen worden ist, kann dann eine Fehlernachricht
zurückgegeben
werden, sodass der Nutzeremulations-Prozess abgebrochen oder zurückgerollt
werden kann.
-
Gemäß einem
Ausführungsbeispiel
erlaubt das zugrunde liegende CAD-System, C-Bibliotheks-Implementierung
oder Plattform keine sicheren Cross-Thread-Aufrufe. Um dieses Verbot
zu umgehen (work around), wenn der Sub-Thread die CAD-System-API
direkt aufrufen muss, nutzt der Sub-Thread Interprozess-Kommunikation,
Fernprozedur-Aufrufe oder Cross-Thread-Benachrichtigungstechniken,
um eine Anforderung an das Plugin weiterzuleiten, sodass der Aufruf
im Interesse des Sub-Threads ausgezuführt wird.
-
9B ist ein Bildschirmausdruck 905,
der Aspekte des Auswählens
eines Objekts ausführlich darstellt,
was ein nützlicher
Prozess ist, auf den die Nutzeremulations-Verfahren angewendet werden können. In
einer Umgebung weist der Bildschirm einer Werkzeugleiste 912,
die textbasierte Menüoptionen
hat, eine Hauptansicht 910 des Objekts (hier ein Würfel) und
eine optisch nähergeholte
Ansicht 909 eines Bereichs des Objekts auf. Die optisch
nähergeholte
Ansicht 909 weist ferner eine Knopfleiste 908 auf,
die maus-auswählbare
Optionen hat, die typischerweise zum Spezifizieren für das CAD-System verwendet
werden, ob ein bestimmtes Merkmal des Objekts ausgewählt wurde.
Ferner sind auf dem Bildschirmabdruck 905 eine Statusanzeige 906 und
eine Koordinatenanzeige 907 gezeigt, wobei die Koordinatenanzeige 907 eine
gegenwärtige
Position des Zeigers 913 zeigt. Ein Grafikelement, hier
eine Kante 911, des Objekts ist hervorgehoben gezeigt.
(Wie an dieser Stelle verwendet, bezeichnet der Begriff "Grafikelement" eine Linie, Kante,
Fläche,
Oberfläche oder
ein anderes grafisches Designmerkmal des CAD-Objekts – gewöhnlich in
zwei- oder dreidimensionaler Form, die für eine Computeranzeige dargestellt
wird.)
-
9C ist ein Diagramm eines
beispielhaften Signals vom X-Server 902.
In diesem Fall kann das Signal eine Farbanzeige für ein im
fensterbasierten System angezeigtes spezielles Grafikelement sein.
Gemäß einem
Ausführungsbeispiel
beinhaltet ein Akt des Auswählens
eines Grafikelements an dem Objekt das Überwachen eines oder mehrerer
Signale vom X-Server 902 auf einen Zustandsübergang
in einer Farbanzeige, die einem der Knöpfe in der Knopfleiste 908 zugeordnet
ist, oder in der Statusanzeige 906. Das Erfassen des Zustandsübergangs
einer Anzeige kann implizit kennzeichnen, dass ein Nutzeremulations-Prozess nicht fehlschlug.
-
Beispielsweise
kann der X-Fenster-Text in der Statusanzeige 906 Farben
in Abhängigkeit
davon ändern,
ob das System auf eine Nutzerantwort wartet oder eine vorherige
Antwort verarbeitet. Eine andere Möglichkeit ist, Text für Dialog-Boxen
oder Popup-Fenster
nach Wörtern
zu durchsuchen, die ein Fehlschlagen oder einen Erfolg einer vorherigen Operation
kennzeichnen.
-
10A–D sind
Flussdiagramme, die Schritte für
die Nutzeremulations-Verfahren ausführlich darstellen. Die Nutzeremulations-Verfahren
werden typischerweise vom Interpreter 904 in Kombination mit
anderen Elementen eines Computersystems ausgeführt.
-
Bewegend
zunächst
zu 10A stellt diese die
ersten Schritte für
eine Nutzeremulation dar. In Schritt 1001 werden Einstelloperationen
durchgeführt,
sodass der Interpreter 904 auf das fensterbasierte System
eingestellt werden kann. In Schritt 1002 wird ein im fensterbasierten
System gezeigtes Grafikelement ausgewählt.
-
In
Schritt 1003 wird ein Test durchgeführt, um zu verifizieren, dass
das korrekte (oder gewünschte) Grafikelement
ausgewählt
ist. Beispielsweise kann das Auswählen und Verifizieren des Grafikelements das
Durchlaufen einer Merkmalsliste in einem CAD-Modell und das Überwachen eines Signals vom X-Server 902 beinhalten.
Alternativ können
emulierte Mauserbewegungen und -klicks zum X-Server 902 gesendet
werden, und die dem CAD-System 901 zurückgegebenen resultierenden
Zustandssignale können
auf Zustandsübergänge oder
Text-Zeichenketten überwacht
werden.
-
Ist
das korrekte Grafikelement einmal ausgewählt, wird dann in Schritt 1004 eine
Operation auf dem Grafikelement ausgeführt. Die Operation kann das
Durchführen
einer Eigenschaftsanalyse, das Lesen von dem Grafikelement entsprechenden
Attributen, das Verstecken oder Unterdrücken des Grafikelements, das
Initiierens eines Exportbefehls (beispielsweise Erzeugen eines brep)
oder das Modifizieren von dem Grafikelement entsprechenden Attributen
sein. In Schritt 1005 wird ein Test durchgeführt, um
zu ermitteln, ob die Operation fehlschlug. Schlug die Operation
fehl, dann wird das nächste
CAD-Austausch-Verfahren versucht, anderenfalls kann das Austausch-Verfahren
als erfolgreich betrachtet werden.
-
10B ist ein Flussdiagramm,
das Schritte zum Durchführen
der Einstelloperationen darstellt. In Schritt 1007 werden
die auf der Anzeigevorrichtung gezeigten Fenster identifiziert.
Die Fensteridentifizierung basiert auf irgendetwas oder allem des
Folgenden in Abhängigkeit
vom spezifischen beteiligten CAD-System:
(1) der Fensterhierarchie (beispielsweise der Anzahl von Kind-Fenstern,
der Position der verschiedenen Fenster in der Fensterliste); (2)
einer beliebigen in den Fenstern angezeigten Text-Zeichenkette;
und/oder (3) der Gestaltung der Fenster (beispielsweise deren Breite,
Höhe, Verhältnis von Breite
zu Höhe,
Position auf dem Bildschirm). Die Fenster können im Speicher mit von der
CAD-Daten-Austausch-Software ausgewählten Kennungen gespeichert
werden, oder sie können
mit Kennungen gespeichert werden entsprechend dem dem Fenster zugeordneten
Text (beispielsweise ein Titel oder eine Kopfzeile). Als nächstes werden
in Schritt 1008 Signale entsprechend den Bewegungen des
Zeigers (beispielsweise 913) auf die Koordinaten des fensterbasierten
Systems (beispielsweise 907) kalibriert. Die Kalibrierung
wird im Speicher gespeichert, sodass Einstellungen oder Übersetzungen
auf vom Interpreter erzeugte Signale durchgeführt werden können, sodass
die Signale auf die speziellen Fensterumgebungs- und Zeigervorrichtungs-Einstellungen eingestellt
(beispielsweise skaliert) werden.
-
In
Schritt 1009 wird ein Menü-Abbilden ausgeführt. Im
Allgemeinen beinhaltet das Menü-Abbilden
das Lesen des Textes der Haupt-Werkzeugleiste 912-Optionen,
das Senden eines Mausklicks für
die jeweilige Option und ferner das Abbilden der Unter-Optionen.
Die Ergebnisse des Abbildens werden ferner im Speicher gespeichert,
sodass sie mit zukünftigen
Operationen zusammengelegt werden können, die auszuführen sind,
wenn beispielsweise Nutzeremulation als Teil der Muster-Matching-Verfahren angewendet
wird. Das Menü-Abbilden
kann auch verwendet werden, um die (nationale) Sprache oder Version
der CAD-Software zu verifizieren.
-
10C ist ein Flussdiagramm,
das Schritte zum Auswählen
eines Grafikelements darstellt. Die Schritte sind insbesondere auf
das Auswählen
eines Merkmals oder Aspekts eines in einem Fenster dargestellten
Objekts anstelle einer Option aus einer Haupt-Werkzeugleiste 912 oder einer
ihrer Unter-Optionen bezogen.
-
In
Schritt 1010 wird ein Test durchgeführt, um zu verifizieren, dass
das Grafikelement im Ziel-Fenster sichtbar ist. Befindet sich das
Grafikelement nicht im Ziel-Fenster, dann können die Fensterpositionierung
oder der Blickwinkel beispielsweise unter Verwenden der Haupt-Werkzeugleiste 912 eingestellt werden.
In Schritt 1011 wird oder werden eines oder mehrere Merkmale,
die andere als das gewünschte Merkmal
sind (beispielsweise solche Merkmale, die an das gewünschte Merkmal
direkt angrenzen oder in der Nähe
liegen), versteckt oder unterdrückt.
Bei einem alternativen Ausführungsbeispiel
werden das eine oder die mehreren Merkmale gelöscht, aber nur da, wo sie später wiederhergestellt
werden können. Als
nächstes
wird in Schritt 1012 ein Bereich des Ziel-Fensters verkleinert
(das Objekt kleiner machend), und in Schritt 1013 wird
das Fenster über dem
Ziel-Grafikelement zentriert. In Schritt 1014 wird zur
Mitte des Ziel-Fensters ein Mausklick gesendet.
-
Bewegend
zu 10D ist diese ein
Flussdiagramm, das ein Verfahren zum Verifizieren, dass das richtige
Element ausgewählt
ist, darstellt. In Schritt 1016 wird eine Rückgabe-Zeichenkette
oder Statusanzeige vom X-Server 902 geprüft, um zu
verifizieren, dass das korrekte Grafikelement ausgewählt wurde.
Gemäß einem
Ausführungsbeispiel wird,
wenn das korrekte Grafikelement oder irgendeine Auswahl nicht erfasst
wurde, dann im Prozess mit Schritt 1012 (oder Schritt 1002)
fortgefahren, sodass das Ziel-Fenster
erneut über
einem anderen Punkt zentriert werden kann, und/oder der Zoomfaktor
kann verkleinert werden (das Objekt größer machend).
-
Ist
jedoch, wie in Schritt 1017 dargestellt, ein Fehler erfasst,
dann wird die Nutzeremulation abgebrochen, und in der Verarbeitung
wird mit dem nächsten
CAD-Daten-Austausch-Verfahren fortgefahren. Wird kein Fehler erfasst,
dann wird in Schritt 1019 dem CAD-Objekt entsprechende
Zustandsinformation vor irgendwelchen Änderungen, die vom Nutzeremulations-Prozess
ausgeführt
werden, persistent gespeichert.
-
Schritt 1020 zeigt
einen Test auf einen Fehler einer nachfolgenden Operation, beispielsweise
bei einer Operation, die beim Behandeln des CAD-Datenobjekts außerhalb
eines Nutzeremulations-Verfahrens – einer
API, eines Muster-Matching, einer späteren Nutzeremulation oder
eines brep-Prozesses – aufgetreten
ist. Schlug die nachfolgende Operation fehl, dann ist es möglich, dass
in Wirklichkeit die Nutzeremulation von der vorherigen Operation ein
Fehlschlag war, obwohl kein unmittelbarer Fehler erfasst wurde (beispielsweise
aus einer Eigenschaftsanalyse). Daher wird in Schritt 1022 die
in Schritt 1019 gespeicherte Information aus dem CAD-Daten-Modell
zurückgerollt
(beispielsweise ein Zurückroll-Prozess).
Schlug die nachfolgende Operation nicht fehl, dann wird die Zustandsinformation
in Schritt 1021 gelöscht.
-
Kantenauswahl
-
Ein
Teil des CAD-Daten-Austausch-Prozesses kann das Ausführen von
Operationen beinhalten, die eine Identifizierung eines Teils oder
Merkmals eines definierten CAD-Modells erfordern. Zu diesem Zweck
bieten die nachstehend beschriebenen Kantenauswahl-Verfahren ein
neues und nützliches Werkzeug,
das verwendet werden kann, wenn solche Operationen durchgeführt werden – die Verfahren werden
zum Zwecke des In-Beziehung-Setzens von Quell-Kanten mit Ziel-Kanten
in einer Mehrzahl von Computer Aided Design-Systemen angewendet. Beispielsweise
können
die Operationen eine Abrundungs- oder Abschrägungs-Operation an einem Ziel-CAD-Modell
oder das Auswählen
einer Fläche eines
Objekts umfassen. Der Prozess kann ein Standalone-Prozess sein,
der Prozess kann Schritte aus dem Nutzeremulations-Prozess (oben
beschrieben) integrieren, oder der Prozess kann in den Nutzeremulations-Prozess
integriert sein. Ferner ist zu bemerken, dass in den beigefügten Figuren
und Beschreibung Abstraktionen von Linien und Formen verwendet werden,
wie sie dem Auge erscheinen könnten,
obwohl das, auf dem tatsächlich
gearbeitet wird und das bei den Verfahren verwendet wird, Daten-Repräsentationen
von Linien und Formen sind.
-
11A–D stellen
das gegenwärtige
Problem dar. 11A stellt
ein dreidimensionales Objekt 1101 in einem Quell-CAD-System dar. Das Objekt hat
eine ein wenig abgerundete Seite, die mittels vier Flächen (nur
die Fläche 1105 und 1106 werden
aufgerufen) dargestellt ist. Eine Kante 1102 stellt eine mittels
der vier Flächen
gebildete Krümmung
dar. Eine Abrundungs-Operation wird im Quell-CAD-Modul spezifiziert,
wobei die Operation an der Kante 1102 ausgeführt wird.
Bezug nehmend auf 11B wird,
wenn die Abrundungs-Operation ausgeführt wird, eine abgerundete
Kante 1104 ausgebildet, wo die Kante 1102 einmal
existierte. Das Objekt 1101 ist nun als Objekt 1101' gezeigt.
-
Wie
oben erwähnt,
ist ein zugrunde liegendes Ziel des CAD-Daten-Austausch-Verfahrens, dass das Designziel
vom Quell-CAD-Modell im Ziel-CAD-Modell beibehalten wird. Demgemäß sind in
einigen Fällen
in Ziel-CAD-Modellen häufig
feiner granularisierte Darstellungen eines Quell-CAD-Modells zu
finden, während
unter anderen Umständen die
umgekehrte Beziehung besteht. 11C–-D zeigen
solch eine feiner granularisierte Darstellung des als im Ziel-CAD-System
ausgeführten
Ziel-CAD-Modells. Beispielsweise bestehen im Objekt 1103 die vier
Flächen,
die die Kante 1102 im Objekt 1101 aufweisen, nun
aus acht Flächen,
die Flächen 1107, 1108, 1109 und 1110 aufweisen
und nun die Kante 1102' ausmachen.
Was gewünscht
ist, ist, die Kante 1102 mit der Kante 1102' derart in Beziehung
zu setzen, dass das Merkmal 1104 im Ziel-CAD-System als Merkmal 1104' erzeugt werden
kann.
-
12 stellt eine Operations-Übersicht
des Kantenauswahl-Algorithmus' dar. Ein Objekt
(beispielsweise eine Randdarstellung eines Blocks) existiert im
Quell-CAD-System 1202, wobei das Objekt eine Kante "a" hat. Kante "a" wird
mittels eines Exportierungs-Moduls 1208 zu einer globalen
Szenerie 1210 für
das Datenaustausch-Produkt exportiert. Ist die Kante "a" einmal in der globalen Szenerie 1210 identifiziert,
muss das Importierungs-Modul 1206 nun die entsprechende
Kante im Ziel-CAD-System 1204 identifizieren. Vom Ziel-CAD-System
wird dann eine lokale Szenerie 1212 exportiert, wobei die
lokale Szenerie eine Mehrzahl von Kandidaten-"Kanten" darstellt, die mit der Kante "a" übereinstimmen
können.
An dieser Stelle ist zu bemerken, dass die lokale Szenerie 1212 in
einer inkrementellen Weise exportiert wird. Während es möglich ist, dass die gesamte lokale
Szenerie 1212 mit einem Mal exportiert werden kann, ist
dies im Allgemeinen nicht der Fall, was mittels des in 12 bezeichneten zirkulären Datenflusses
bezeichnet ist.
-
Ist
die lokale Szenerie 1212 (oder ein Bereich von ihr) einmal
exportiert, beginnt dann das Kantenauswahl-Modul 1207 den
Prozess des In-Beziehung-Setzens. Kanten im Ziel-CAD-System 1204, die
unnötig
sind, werden aus dem Status eines Kandidaten entfernt, während ein
Abbilden der anderen beibehalten wird, wobei das Abbilden idealerweise eine
zwischen den Ziel-CAD-System 1204-Kanten und
den Quell-CAD-System 1202-Kanten ein n:m darstellt, wobei
n größer oder
gleich m ist. Da das Abbilden beibehalten wird, können nachfolgende
Operationen auf Kante "a" als Anwenden auf
Kanten "b1" und "b2" identifiziert werden.
Folgend gibt es mehrere Verfahren, die zum Auswählen einer Kante unabhängig oder
in Kombination angewendet werden können.
-
Kanten-Überlappungs-Algorithmus
-
Die
zugrunde liegende Voraussetzung des Kanten-Überlappungs-Algorithmus' ist, dass zwei Kanten
(d. h. von einem Quell-CAD-Modell und einem Ziel-CAD-Modell – der globalen
und lokalen Szenerie) überlappen,
wenn deren Überschneidung topologisch
eindimensional ("1-D") ist. Überlappen die
beiden Kanten, dann liegen sie auf demselben geometrischen Träger (geometrical
carrier).
-
Bei
einem Ausführungsbeispiel
wird die Geometrie einer Kante als eine nicht uniforme rationale B-Spline
(non-uniform rational B-spline – "NURBS") dargestellt. Das
Erstellen der NURBS-Darstellung der
Geometrie der Kante gibt jeder Kante einen Startpunkt und einen
Endpunkt. Ist die Kante geschlossen (d. h. ein Kreis), dann stimmen
der Startpunkt und der Endpunkt überein.
Während
gemäß einem
Ausführungsbeispiel
Startpunkte und Endpunkte verwendet werden, ist es ebenso zulässig, Start-
und End-Eckpunkte zu verwenden. Andere Ausführungsbeispiele der Erfindung
sind derart vorgesehen, dass eine andere Darstellung einer Kante
auch diskrete lineare Segmente mit entsprechenden kartesischen Koordinaten
sein können.
-
Bewegend
zu 13 stellt diese ein
Flussdiagramm dar, das den Kanten-Überlappungs-Algorithmus darstellt.
In Schritt 1302 werden die Start- und Endpunkte der NURBS,
die die jeweilige Kante darstellt, aus der NURBS extrahiert.
-
In
Schritt 1304 werden Abschnitte in beispielsweise der Quell-Kante ermittelt.
Die Abschnitte repräsentieren
die Anzahl, wie oft die Quell-Kante geteilt ist, wenn die Ziel-Kanten-Start-
und End-Punkte auf sie abgebildet werden. Daher hat, wenn ein einziger
Punkt in der Ziel-Kante in der Quell-Kante gefunden wird, die Quell-Kante
dann zwei Abschnitte. Jedoch, wenn zwei Punkte in der Ziel-Kante
in der Quell-Kante gefunden werden, dann hat die Quell-Kante drei
Abschnitte. Es ist in Schritt 1304 nützlich, die extrahierten Punkte
zu ordnen – die
Abschnitte der Quell-Kante liegen zwischen jedem aufeinanderfolgendem
Paar von verschiedenen (geordneten) Punkten.
-
14 stellt ein Beispiel des
Ermittelns von Abschnitten einer Quell-Kante dar. Eine Quell-Kante "E" (1402) und drei Kandidaten 1404 für Ziel-Kanten "F1" (1406)
, "F2" (1408)
und "F3" (1410)
sind dargestellt. Das Ermitteln der Abschnitte der Quell-Kante E gegenüber den
verschiedenen Zielkanten-Kandidaten 1404: E hat einen Abschnitt
in Bezug auf F1; E hat zwei Abschnitte in Bezug auf F2; und E hat
drei Abschnitte in Bezug auf F3. Beim Identifizieren der Abschnitte
ist zu bemerken, dass die Quellkante immer zumindest einen Abschnitt
aber nicht mehr als drei Abschnitte hat.
-
Zurückkehrend
zu 13 wird in Schritt 1308 eine
Abschnitt-Einschließ-Operation
durchgeführt.
Der Abschnitt-Einschließ-Algorithmus, von
dem Schritt 1308 ein Teil ist, setzt voraus, dass die Quellkante
und die Zielkante den gleichen geometrischen Träger haben. Die Abschnitt-Einschließ-Operation wählt den
Mittelpunkt eines durch die Quellkante definierten Abschnitts aus.
In Schritt 1310 wird ein Test durchgeführt, um zu ermitteln, ob sich
der ausgewählte
Mittelpunkt innerhalb der Zielkante befindet. In Schritt 1312 werden,
wenn sich der ausgewählte Mittelpunkt
innerhalb der Zielkante befindet, dann die Quell- und Zielkanten
als überlappend
erklärt,
und das Ergebnis wird zurückgegeben.
Befindet sich der Mittelpunkt nicht innerhalb der Zielkante, dann
wird eine Überlappung
als nicht existierend angenommen, eine geeignete Antwort wird in
Schritt 1314 zurückgegeben.
-
Es
ist zu bemerken, dass der obige Prozess keine laserartige Genauigkeit
erfordert. Es wurde von den Erfindern erkannt, dass verschiedene
CAD-Systeme ein nicht lineares Segment auf unterschiedliche Weise
darstellen können.
Es ist nicht das Ziel des CAD-Daten-Austausch-Systems, Quell-CAD-Modelle
exakt in der gleichen Weise in ein Ziel-CAD-Modell erneut zu erzeugen – d. h.
mit dem gleichen zugrunde liegenden Know-how. Anstatt dessen ist
es das Ziel, ein akzeptables Ziel-CAD-Modell zu erzeugen, das das
Know-how der Quell- und Ziel-CAD-Systeme berücksichtigt. Daher ist beim
Ermitteln, ob ein bestimmter Punkt auf der Quellkante oder Zielkante
innerhalb der anderen liegt, in die Analyse eine Toleranz entworfen.
Demgemäß können mathematische oder
statistische Analysen angewendet werden, um solch eine Toleranz
abzubilden, oder die Toleranz kann in das CAD-Daten-Austausch-System
hart kodiert sein.
-
Kanten-Einschließ-Algorithmus
-
Während die
Granularität
des Ziel-CAD-Modells idealerweise die gleiche oder feiner als das Quell-CAD-Modell
ist, ist es möglich,
dass das Ziel-CAD-Modell eine bestimmte Kante in einer Weise darstellt,
die effizienter als das Quell-CAD-Modell ist. Bei solch einem Sachverhalt
ist es nützlich,
einen Kanten-Einschließ-Algorithmus
(gegenüber
den Abschnitt-Einschließ-Operationen) durchzuführen, um zu
verifizieren, dass all die Abschnitte der Quellkante in der Zielkante
enthalten sind. Es ist ferner zu bemerken, dass dieser Prozess genutzt
werden kann, um die Überlappung
zweier Kanten zu verifizieren, selbst wenn die Zielkante in einer
feineren Granularität
als die Quellkante dargestellt ist.
-
Wie
das der Fall beim Kanten-Überlappungs-Beispiel
war, können
die Quell- und Zielkanten aus der globalen und lokalen Szenerie
(dargestellt in 12)
verwendet werden. In Abhängigkeit
von der gewünschten
Verifizierung (d. h. die Zielkante weist mehr Darstellungs-Abschnitte
als die Quellkante auf oder umgekehrt), kann die Eingabe in den
Kanten-Einschließ-Algorithmus
gemäß der gewünschten Ausgabe
ausgewählt
werden. Ferner kann der Kanten-Einschließ-Algorithmus
in Verbindung mit dem Kanten-Überlappungs-Algorithmus,
der oben beschrieben ist, angewendet werden.
-
An
dieser Stelle ist zum Zwecke der Erläuterung angenommen, dass die
Zielkante mehr Darstellungs-Abschnitte als die Quellkante hat, als
der Fall oben unter Bezug auf 11A–D war. Ferner wird, wenn ein Satz von Zielkanten
mit einer Quellkante "e" überlappt, dieser Satz von Zielkanten
als ein "verbundener" Satz bezeichnet.
Ferner wird eine Sequenz von gerichteten Kanten, sodass der Endpunkt
der jeweiligen gerichteten Kante der Startpunkt ihres Nachfolgers
ist, als eine "Kette" bezeichnet.
-
Bewegend
zu 15 zeigt diese ein
Flussdiagramm des Kanten-Einschließ-Algorithmus'. In Schritt 1502 wird
eine Reihe von Speicherplätzen,
die repräsentativ
für eine
Kette von Zielkanten ("C") ist, gelöscht. In
Schritt 1504 wird eine erste Zielkante vorzugsweise aus
der lokalen Szenerie lokalisiert, und dem Satz "C" hinzugefügt. 16, die nachstehend beschrieben
wird, stellt ein Ausführungsbeispiel eines
Algorithmus' zum
Finden der ersten Zielkante dar. Gemäß einem anderen Ausführungsbeispiel sucht
das System eine Kante innerhalb einer gegebenen Nähe einer
Quellkante "e".
-
In
Schritt 1506 wird ein Test durchgeführt, um zu ermitteln, ob eine
Zielkante gefunden wurde, und ob die Zielkante die Quellkante "e" überlappt.
Wurde keine Zielkante gefunden oder überlappen die Kanten nicht,
dann wird die Zielkante in Schritt 1522 aus dem Status
eines Kandidaten als eine Matching-Kante entfernt. Anderenfalls
wird die Zielkante in Schritt 1508 in Vorwärtsrichtung
erweitert, sodass sie eine nächste,
verbundene Kante einschließt.
In Schritt 1510 wird ein Test durchgeführt, um zu ermitteln, ob die
neu erweiterte Kante von der Quellkante "e" beinhaltet
wird. In Schritt 1512 wird, wenn die neu erweiterte Kante
von der Quell-Kante "e" beinhaltet wird, dann
die nächste
verbundene Kante (vorhergehend erweitert) an die Zielkante angehängt und
in der Kette von Kanten "C" gespeichert. Der
Prozess wiederholt sich, bis die Zielkante in Vorwärtsrichtung
nicht weiter erweitert werden kann.
-
In
Schritts 1514 wird der gleiche Prozess, der vorhergehend
unter Bezugnahme auf Schritte 1508–1512 beschrieben
wurde, durchgeführt,
allerdings wird hier die Zielkante in Schritten 1514, 1516 und 1518 in
Rückwärtsrichtung
erweitert. Ferner wird, wenn die erweiterte Kante nicht von der Quell-Kante "e" beinhaltet wird, dann in der Verarbeitung
mit Schritt 1520 fortgefahren.
-
Es
ist zu bemerken, dass ein Ausführungsbeispiel
des Kanten-Erweiterungsprozesses,
der in Schritten 1508, 1510 und 1512 als
auch in den Schritten 1514, 1516 und 1518 dargestellt
wurde, nachstehend unter Bezugnahme auf 17 beschrieben wird.
-
In
Schritt 1520 wird die Kette von Kanten "C" als
die Zielkanten zurückgegeben,
welche Kette mit der Quellkante übereinstimmt.
-
Finden einer
Ursprungs-Kante
-
Bewegend
zu 16 stellt sie ein
Ausführungsbeispiel
eines computerimplementierten Verfahrens zum Finden der Ursprungs-Kante für den Kanten-Einschließ-Algorithmus
dar. In Schritt 1602 wird von der Quellkante "e" ein Punkt "p" ausgewählt. Der "p" kann ein innerer Punkt von "e" sein, oder er kann ein Start- oder Endpunkt sein.
In Schritt 1604 wird eine Menge von Kanten "F" (beispielsweise aus der lokalen Szenerie)
erzeugt, die den Punkt "p" beinhaltet. (Es
ist zu bemerken, dass die Menge von Kanten "F" bereits
in der lokalen Szenerie existiert haben könnte, allerdings können zusätzliche
Mitglieder der Menge "F" in Schritt 1604 hinzugefügt sein – da die
Erzeugung der lokalen Szenerie ein inkrementeller Prozess ist.)
-
In
Schritt 1606 werden nicht überlappende Kanten in der Menge "F" aus der Menge "F" entfernt. Im
Allgemeinen kann jede Kante in der Menge "F" iterativ
gegen die Quellkante "e" getestet werden,
um zu verifizieren, dass die beiden Kanten überlappen.
-
In
Schritt 1608 wird ein Test durchgeführt, um zu ermitteln, ob die
Menge "F" leer ist. Ist die
Menge "F" leer, dann trat
ein Fehler auf, wie in Schritt 1614 dargestellt. Ist die
Menge "F" nicht leer, dann
wird in Schritt 1610 ein Test durchgeführt, um zu ermitteln, ob die
Menge "F" mehr als zwei Zielkanten
hält. Hält die Menge "F" mehr als zwei Zielkanten, dann trat
ein Fehler auf, wie in Schritt 1614 dargestellt. Umfasst
jedoch die Menge "F" eine oder zwei Zielkanten,
dann wird in Schritt 1612 eine Kante zum Verarbeiten zurückgegeben.
(Die zweite Kante kann verarbeitet werden, wenn die zurückgegebene
Kante die Quellkante "e" nicht ausreichend überlappt.)
-
Es
ist zu bemerken, dass Schritt 1614 ein oder mehrere Korrekturschemata
beinhalten kann, wobei das spezielle ausgewählte Fehlerkorrekturschema
eine Wirkung in Schritten 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 – wobei der zweite Punkt "p'" nahe
dem Punkt "p" ist.
-
Es
ist zu bemerken, dass 16 den
Rest der in 15 dargestellten
Schritte kurzschalten kann, wenn beispielsweise eine Einzel-Zielkante identifiziert
ist, die die Quellkante vollständig
beinhaltet (und selbst vollständig
von ihr beinhaltet wird).
-
Ketten-Erweiterungs-Algorithmus
-
Bewegend
zu 17 stellt sie einen
computerimplementierten Prozess zum Erweitern einer Kette von Kanten
("C") gemäß einem
Ausführungsbeispiel
der Erfindung dar, welche Kanten die Quellkante "e" repräsentieren.
Das Verfahren kann als ein Ersatz für den oben unter Bezugnahme
auf 15 beschriebenen
Prozess (Schritte 1508, 1510 und 1512 oder
Schritte 1514, 1516 und 1518) angewendet
werden oder ein Anhängsel
zum Prozess sein. Ferner kann der Ketten-Erweiterungs-Algorithmus
gleichermaßen
auf den Prozess des Erweiterns einer Kette von Kanten in Vorwärtsrichtung
oder Rückwärtsrichtung
angewendet werden.
-
In
Schritt 1702 wird ein Mitglied des Satzes von Kanten, d.
h. der Kette von Kanten "C", zur letzten Kante
im Satz gemacht. Zum Zwecke der Erläuterung wird diese Kante als
Kante "c" bezeichnet. In Schritt 1704 wird
eine Menge von Zielkanten, die am Ende von "c" angrenzen,
identifiziert. Diese Menge von angrenzenden Kanten wird als Menge "F" bezeichnet. In Schritt 1706 werden
Kanten in der Menge "F", die die Quellkante "e" nicht überlappen, entfernt – gemäß einem
der oben beschriebenen Überlappungs-
oder Einschließ-Prozesse.
-
In
Schritt 1708 wird ein Test durchgeführt, um zu ermitteln, ob die
Menge "F" leer ist. Ist "F" leer, dann fährt der Algorithmus mit Schritt 1718 fort.
Ist die Menge "F" nicht leer, dann
wird in Schritt 1710 ein Test durchgeführt, um zu ermitteln, ob die
Menge "F" mehr als eine Zielkante
aufweist. Resultiert Schritt 1710 in einer Antwort, die
für eine
Menge von "F" kennzeichnend ist,
die größer als
1 ist, dann trat ein Fehler auf, und Schritt 1716 wird
ausgeführt.
Schritt 1716 kann das Zurückgeben eines Fehlerergebnisses
oder das Anzeigen umfassen, dass eine neue Kante "c" ausgewählt werden sollte, oder dass
die bestehende Kante "c" in eine andere Richtung
erweitert werden sollte.
-
Gibt
es jedoch exakt eine Kante, die an die Zielkante "c" angrenzt, dann wird in Schritt 1712 eine Kante
(Kante "f") zum Satz "C" hinzugefügt. In Schritt 1714 wird
Kante "f" getestet, um zu
ermitteln, ob sie die erste Kante im Satz C ist (d. h. es gibt mehr
angrenzende Kanten, die nicht Mitglieder des Satzes "C" sind). Ist Kante "f" nicht
die erste Kante in Satz "C", dann wird Kante "f" in Schritt 1720 als Kante "c" gesetzt, und der Prozess fährt mit
Schritt 1704 fort. Anderenfalls wird in Schritt 1718 der
Satz "C" zurückgegeben,
und der Prozess ist abgeschlossen.
-
Schließlich ist
zu bemerken, dass es gewünscht
sein kann, den obigen Prozess in einer anderen Richtung zu wiederholen – da der
oben beschriebene Prozess nur in Bezug auf eine einzige Richtung
der Erweiterung beschrieben wurde, wie im oben unter Bezugnahme
auf 15 beschriebenen charakteristischen
Ausführungsbeispiel
dargestellt.
-
Die
obigen Verfahren sind darauf ausgerichtet, als eine oder mehrere
Sequenzen von Befehlen ausgeführt
zu sein, d. h. eine Computersoftware oder ein Computerprogrammprodukt,
die einen oder mehrere Prozessoren oder technische Systeme dazu bringen,
die an dieser Stelle beschriebenen Verfahren und Umwandlungen durchzuführen. Das
Computersoftwareprodukt kann ausgeführte Objektbefehle und interpretierten
Programmcode oder verschiedene Script-Sprachen aufweisen.
-
Das
Computersoftwareprodukt kann auf einem Standalone-Computer gestartet
werden, beispielsweise einem Computersystem, auf dem Microsoft Windows
NT (TM) läuft,
und ist für
ein bestehendes Computer Aided Design-System, wie beispielsweise
ProEngineer 2000i2 (TM), ein Plugin. Jedoch können die Prozesse bei anderen
Ausführungsbeispielen
in der Funktionalität
separiert sein. Beispielsweise können
die Extraktions- oder Export-Prozesse auf einem ersten Computersystem
laufen, während die
Erzeugungs- oder Import-Prozesse auf einem zweiten Computersystem
laufen können.
Ferner kann wiederum bei einem anderen Ausführungsbeispiel ein Middleware-System,
das als Server (eines Client-Server-Systems) arbeitet, die Prozesse
entweder eigenständig
(selbstverständlich
unter Verwendung der APIs auf einem von zwei Client-Systemen) oder
als ein Zwischenglied zwischen den verschiedenen Prozessen ausführen.