DE60009122T2 - Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen - Google Patents

Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen Download PDF

Info

Publication number
DE60009122T2
DE60009122T2 DE60009122T DE60009122T DE60009122T2 DE 60009122 T2 DE60009122 T2 DE 60009122T2 DE 60009122 T DE60009122 T DE 60009122T DE 60009122 T DE60009122 T DE 60009122T DE 60009122 T2 DE60009122 T2 DE 60009122T2
Authority
DE
Germany
Prior art keywords
computer
source
cad
target
feature
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE60009122T
Other languages
English (en)
Other versions
DE60009122D1 (de
Inventor
Ari Rappoport
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Proficiency Ltd
Original Assignee
Proficiency Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Proficiency Ltd filed Critical Proficiency Ltd
Application granted granted Critical
Publication of DE60009122D1 publication Critical patent/DE60009122D1/de
Publication of DE60009122T2 publication Critical patent/DE60009122T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/19Recognition using electronic means
    • G06V30/196Recognition using electronic means using sequential comparisons of the image signals with a plurality of references
    • G06V30/1983Syntactic or structural pattern recognition, e.g. symbolic string recognition
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional [3D] objects
    • G06V20/653Three-dimensional [3D] objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Exposure Of Semiconductors, Excluding Electron Or Ion Beam Exposure (AREA)
  • Image Analysis (AREA)
  • Image Generation (AREA)
  • Hardware Redundancy (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Collating Specific Patterns (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)
  • Complex Calculations (AREA)
  • Telephonic Communication Services (AREA)

Description

  • 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.
  • 68 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.
  • 9A9C und 10A10D 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.
  • 11A11D und 1217 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 68 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 9A9C und 10A10D 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
  • 9A9C 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.
  • 10A10D 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.
  • 11A11D 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. 10C10D 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 11A11D 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 15081512 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.

Claims (11)

  1. Verfahren für rechnerimplementierten Datenaustausch zwischen zwei unterschiedlichen Systemen zum rechnergestützten Entwurf mit unterschiedlichen Modellen zum rechnergestützten Entwurf: Auswählen einer bestimmten Operation aus einer Merkmalsliste eines Quellsystems zum rechnergestützten Entwurf (401); Vergleichen der bestimmten Operation mit einem Übereinstimmungs-Datensatz (604) aus einer Wissensbasis (402), wobei der Übereinstimmungs-Datensatz (604) eine Operation, die dem Quellsystem zum rechnergestützten Entwurf (401) entspricht, und eine oder mehrere Operationen, die einem Zielsystem zum rechnergestützten Entwurf (403) entsprechen, aufweist; und Speichern einer Information, die dem Übereinstimmungs-Datensatz (604) entspricht, in einem Speicher, wobei die Information eine Übereinstimmung mit der bestimmten Operation aus der Merkmalsliste repräsentiert, wobei der Übereinstimmungs-Datensatz (604) als eine Basis zum Konstruieren einer äquivalenten Merkmalsliste für das Zielsystem zum rechnergestützten Entwurf (403) verwendet wird, wobei der Übereinstimmungs-Datensatz eine oder mehrere Operationen zum Erzeugen eines Äquivalents in dem Zielsystem zum rechnergestützten Entwurf zu dem Merkmal des Quellsystems zum rechnergestützten Entwurf aufweist.
  2. Verfahren gemäß Anspruch 1, ferner aufweisend: Wiederholen des Vergleichsschritts für eine Mehrzahl von nachfolgenden Operationen aus der Merkmalsliste; und Speichern einer neuen Information, die einem neuen Übereinstimmungs-Datensatz entspricht, wobei die neue Information eine Mehrzahl von Übereinstimmungen mit einer Mehrzahl von Operationen aus der Merkmalsliste des Quellsystems zum rechnergestützten Entwurf repräsentiert.
  3. Verfahren gemäß Anspruch 1 oder 2, ferner aufweisend das Entfernen von einem oder mehreren gespeicherten Informationssätzen, die einem oder mehreren Übereinstimmungs-Datensätzen entsprechen, aus dem Speicher, wenn eine aktuelle Operation nicht mit einer Operation in einem aktuellen Übereinstimmungs-Datensatz übereinstimmt.
  4. Verfahren gemäß Anspruch 1, 2 oder 3, ferner aufweisend: Durchführen einer Eigenschaftsanalyse (534) bei einem Merkmal, das von der Merkmalsliste in dem Zielsystem zum rechnergestützten Entwurf (403) erzeugt wurde; Vergleichen des Ergebnisses der Eigenschaftsanalyse mit entsprechenden Eigenschaften des Merkmals (534, 536, 537) des Quellsystems zum rechnergestützten Entwurf (401); und Zurückweisen der gespeicherten Information, die dem Übereinstimmungs-Datensatz entspricht, als ungültig, wenn das Ergebnis des Vergleichs der physikalischen Eigenschaften außerhalb eines Schwellwertes ist.
  5. Rechnerlesbares Medium mit einer oder mehreren darin gespeicherten Befehlsfolgen, um einen oder mehrere Prozessoren zum Durchführen der Schritte, die in einem der obigen Patentansprüche aufgezählt sind, zu veranlassen.
  6. Technisches System zum Austausch von Daten zum rechnergestützten Entwurf, das System aufweisend ein technisches Quellsystem (401), das ein Quellmodell zum rechnergestützten Entwurf aufweist, wobei das System ferner gekennzeichnet ist durch: eine Wissensbasis (402), das eine Mehrzahl von Übereinstimmungs-Datensätzen (604) aufweist, wobei die Übereinstimmungs-Datensätze (604) 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 (606) des Quellmodells zum rechnergestützten Entwurf entspricht; Abfragen der Mehrzahl von Übereinstimmungs-Datensätzen (604) basierend auf der ausgelesenen Information; und Zurückgeben einer Information, die einem bestimmten Übereinstimmungs-Datensatz aus der Mehrzahl von Übereinstimmungs-Datensätzen entspricht, wobei die Information eine oder mehrere Operationen zum Erzeugen eines zu dem Merkmal des Quellmodells zum rechnergestützten Entwurf äquivalenten Merkmals in einem unterschiedlichen Modell zum rechnergestützten Entwurf repräsentiert.
  7. Technisches System gemäß Anspruch 6, ferner aufweisend eine Brücken-Datenstruktur (402'), wobei die Brücken-Datenstruktur zum Halten einer Information, die das Quellmodell zum rechnergestützten Entwurf betrifft, und von Eigenschaften des Prozesses, durch den das Quellmodell zum rechnergestützten Entwurf geändert wurde, eingerichtet ist.
  8. Technisches System gemäß Anspruch 6 oder 7, ferner aufweisend ein technisches Zielsystem (403), wobei das technische Zielsystem (403) eingerichtet ist, so dass eine Ziel-Merkmalsliste, die von dem unterschiedlichen Modell zum rechnergestützten Entwurf erzeugt wurde, verwendet wird.
  9. Technisches System gemäß Anspruch 6, 7 oder 8, wobei das ausführbare Rechnerprogramm ferner eingerichtet ist zum Ausführen einer Eigenschaftsanalyse (534) zwischen dem Quellmodell zum rechnergestützten Entwurf und dem unterschiedlichen Modell zum rechnergestützten Entwurf; und Zurückweisen des unterschiedlichen Modells zum rechnergestützten Entwurf, wenn die Eigenschaftsanalyse aufdeckt, dass entweder das Quellmodell zum rechnergestützten Entwurf oder das unterschiedliche Modell zum rechnergestützten Entwurf außerhalb einer akzeptierbaren Toleranz (535, 536, 537, 538) sind.
  10. Technisches System gemäß Anspruch 6, 7, 8 oder 9, ferner aufweisend eine Protokolldatei, wobei die Protokolldatei eingerichtet ist, so dass eine Information, die einem oder mehreren Übereinstimmungs-Datensätzen (604) des unterschiedlichen Modells zum rechnergestützten Entwurf entspricht, entfernt wird, wenn eine aktuelle Übereinstimmung fehlschlägt.
  11. Technisches System gemäß Anspruch 6, 7, 8, 9 oder 10, wobei die Wissensbasis (402) ferner eine rechnergestützte Entwurfssystemmatrix aufweist, die eingerichtet ist, so dass Zeiger zu einem oder mehreren Speicherplätzen gehalten werden, wo die Mehrzahl von Übereinstimmungs-Datensätzen (604) gespeichert sind.
DE60009122T 1999-09-07 2000-09-06 Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen Expired - Fee Related DE60009122T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US391311 1999-09-07
US09/391,311 US6614430B1 (en) 1998-09-08 1999-09-07 System and method for the exchange of CAD data
PCT/IB2000/001439 WO2001018672A2 (en) 1999-09-07 2000-09-06 Pattern matching for data exchange between computer aided design systems

Publications (2)

Publication Number Publication Date
DE60009122D1 DE60009122D1 (de) 2004-04-22
DE60009122T2 true DE60009122T2 (de) 2005-02-17

Family

ID=23546117

Family Applications (4)

Application Number Title Priority Date Filing Date
DE60009122T Expired - Fee Related DE60009122T2 (de) 1999-09-07 2000-09-06 Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen
DE60008264T Expired - Fee Related DE60008264T2 (de) 1999-09-07 2000-09-06 Datenaustausch zwischen cad-systemen
DE60008397T Expired - Fee Related DE60008397T2 (de) 1999-09-07 2000-09-06 Benutzer emulation für datenaustausch beim rechnergestützten entwurf
DE60004691T Expired - Lifetime DE60004691D1 (de) 1999-09-07 2000-09-06 Verfahren und gerät zur kantenkorrelation zwischen design-objekten

Family Applications After (3)

Application Number Title Priority Date Filing Date
DE60008264T Expired - Fee Related DE60008264T2 (de) 1999-09-07 2000-09-06 Datenaustausch zwischen cad-systemen
DE60008397T Expired - Fee Related DE60008397T2 (de) 1999-09-07 2000-09-06 Benutzer emulation für datenaustausch beim rechnergestützten entwurf
DE60004691T Expired - Lifetime DE60004691D1 (de) 1999-09-07 2000-09-06 Verfahren und gerät zur kantenkorrelation zwischen design-objekten

Country Status (8)

Country Link
US (1) US6614430B1 (de)
EP (4) EP1218828B1 (de)
JP (4) JP2003509736A (de)
AT (4) ATE259517T1 (de)
AU (4) AU7035600A (de)
DE (4) DE60009122T2 (de)
IL (4) IL148347A0 (de)
WO (4) WO2001018669A2 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834312B2 (en) * 2000-05-02 2004-12-21 Cadopener.Com 11C Method and apparatus for delivery of data over a network
US7039569B1 (en) * 2000-06-09 2006-05-02 Haws Richard R Automatic adaptive dimensioning for CAD software
US20020067364A1 (en) * 2000-06-22 2002-06-06 Lane John F. Method for browsing various intelligent design data abstractions
US7099803B1 (en) * 2000-09-06 2006-08-29 Proficiency Solutions Ltd. Data exchange between computer aided design systems
US6828963B1 (en) * 2000-09-06 2004-12-07 Proficiency Ltd. Pattern matching for data exchange between computer aided design systems
US6985835B1 (en) * 2000-09-06 2006-01-10 Proficiency Solutions Ltd. Method and apparatus for edge correlation between design objects
WO2002037406A1 (en) * 2000-10-30 2002-05-10 Translation Technologies, Inc. Computational geometry system, interrupt interface, geometric model comparator, and method
US6992685B2 (en) * 2001-02-23 2006-01-31 Autodesk, Inc. Measuring geometry in a computer-implemented drawing tool
US20020178157A1 (en) * 2001-05-25 2002-11-28 International Business Machines Corporation Method, device, and computer program product for facilitating a custom design process
US20030154058A1 (en) * 2001-06-11 2003-08-14 Keener Bryan F. Methods and systems for validating translated geometry
US6686914B2 (en) * 2001-06-11 2004-02-03 General Electric Company Methods and systems for automatically translating geometric data
JP2003044722A (ja) * 2001-07-31 2003-02-14 Amada Co Ltd 加工編集会議方法及びそのシステム
US20030045947A1 (en) * 2001-08-30 2003-03-06 The Boeing Company System, method and computer program product for controlling the operation of motion devices by directly implementing electronic simulation information
US20040128648A1 (en) * 2001-08-30 2004-07-01 Ari Rappoport Face correlation between computer aided design models
US20030098862A1 (en) * 2001-11-06 2003-05-29 Smartequip, Inc. Method and system for building and using intelligent vector objects
US6993401B1 (en) * 2001-11-07 2006-01-31 Autodesk, Inc. Method and apparatus for simplified determination of a design schedule utilizing computer aided design (CAD) model information
US20030101098A1 (en) * 2001-11-27 2003-05-29 Erich Schaarschmidt Process and device for managing automatic data flow between data processing units for operational order processing
US20030135557A1 (en) * 2002-01-11 2003-07-17 Autodesk, Inc. Distributed revision block service
DE10206658B4 (de) * 2002-02-15 2011-11-17 Qimonda Ag Verfahren zum Überprüfen einer integrierten elektrischen Schaltung
US7643968B1 (en) 2002-02-25 2010-01-05 Autodesk, Inc. Method and apparatus for simplified patterning of features in a computer aided design (CAD) model
US20030163604A1 (en) * 2002-02-26 2003-08-28 Parametric Technology Corporation Method and apparatus for design and manufacturing application feature interoperability
US7013468B2 (en) * 2002-02-26 2006-03-14 Parametric Technology Corporation Method and apparatus for design and manufacturing application associative interoperability
US7492364B2 (en) * 2002-07-23 2009-02-17 Imagecom, Inc. System and method for creating and updating a three-dimensional model and creating a related neutral file format
US7698016B2 (en) * 2003-02-18 2010-04-13 Tti Acquisition Corporation Feature-based translation system and method
US7337030B2 (en) * 2003-03-12 2008-02-26 Right Hemisphere Limited Automated derivative view rendering system
US7086028B1 (en) * 2003-04-09 2006-08-01 Autodesk, Inc. Simplified generation of design change information on a drawing in a computer aided design (CAD) environment
KR20060110293A (ko) * 2003-11-14 2006-10-24 코닌클리케 필립스 일렉트로닉스 엔.브이. 제품 데이터 교환
US7661101B2 (en) * 2004-01-15 2010-02-09 Parametric Technology Corporation Synchronous and asynchronous collaboration between heterogeneous applications
JP2006072837A (ja) * 2004-09-03 2006-03-16 Ykk Corp 製品設計方法、製品設計装置、製品設計システム及び製品設計プログラム
WO2007086120A1 (ja) * 2006-01-26 2007-08-02 Fujitsu Limited 情報処理装置、シミュレーション方法、情報処理プログラム
US7587302B2 (en) * 2006-01-31 2009-09-08 Autodesk, Inc. Graphic interactive method to reorder sequential data values on graphic objects
US8860752B2 (en) * 2006-07-13 2014-10-14 Apple Inc. Multimedia scripting
US20080126018A1 (en) * 2006-08-22 2008-05-29 Bor-Tsuen Lin Method for constructing object by stacking up functional feature
FR2907944B1 (fr) * 2006-10-27 2008-12-12 Airbus France Sas Procede et dispositifs d'aide a la modelisation d'objets 3d.
FR2907936B1 (fr) * 2006-10-27 2008-12-19 Airbus France Sas Procede et dispositifs d'aide au positionnement relatif d'objets durant une phase de conception.
JP5056079B2 (ja) * 2007-03-07 2012-10-24 富士通株式会社 設計方法及びプログラム
US20080238946A1 (en) * 2007-03-29 2008-10-02 Boeing Company A Corp. Of Delaware System and method for providing a replica of a graphic presentation
WO2009095034A1 (de) * 2008-01-31 2009-08-06 Siemens Aktiengesellschaft Verfahren und system zur qualifizierung von cad objekten
EP2266066B1 (de) * 2008-04-24 2011-12-21 Siemens Aktiengesellschaft Verfahren und system zur erkennung von gruppierungseigenschaften
US9430588B2 (en) * 2008-07-11 2016-08-30 Autodesk, Inc. Assembly connection method for attaching virtual parts in a computer aided design software environment
WO2010030696A2 (en) * 2008-09-10 2010-03-18 Lcdesign, Inc. Assembly-based parametric modeler
US8073812B2 (en) * 2008-10-15 2011-12-06 Microsoft Corporation Preserving user intention in distributed data systems
EP2351374A1 (de) * 2008-11-25 2011-08-03 Thomson Licensing Verfahren und vorrichtungen zur artefaktentfernungsfilterung auf sparsity-basis für die videokodierung und dekodierung
US8516410B2 (en) * 2008-12-30 2013-08-20 International Business Machines Corporation Method of migrating electronic devices operating in current mode to a target technology
US10108432B1 (en) * 2009-04-16 2018-10-23 Intuit Inc. Generating a script based on user actions
CN101989307A (zh) * 2009-07-30 2011-03-23 中国商用飞机有限责任公司 一种针对视界的飞机驾驶舱风挡设计方法
CN101930464B (zh) * 2010-08-25 2012-08-08 华南理工大学 一种面向rfid物流应用的松散性异构数据交换系统及方法
US8635197B2 (en) * 2011-02-28 2014-01-21 International Business Machines Corporation Systems and methods for efficient development of a rule-based system using crowd-sourcing
US8756048B2 (en) * 2011-04-15 2014-06-17 Stmicroelectronics S.R.L. Method for technology porting of CAD designs, and computer program product therefor
CN102520971B (zh) * 2011-12-30 2014-12-10 北京数码大方科技股份有限公司 基于cad软件的数据交互方法及装置
US8924909B2 (en) * 2012-06-13 2014-12-30 Purdue Research Foundation Microelectromechanical system design and layout
US10885235B2 (en) * 2012-08-13 2021-01-05 The Boeing Company Multi-user virtual product development environment
US20140198109A1 (en) * 2013-01-16 2014-07-17 International Business Machines Corporation Method and system for preserving a graphics file
CN103793535B (zh) * 2014-02-28 2017-01-25 武汉大学 一种基于遗传算法的异构cad模型数据交换的系统及方法
US20150278401A1 (en) * 2014-03-28 2015-10-01 Siemens Product Lifecycle Management Software Inc. Intelligent offset recognition in cad models
CN104484163B (zh) * 2014-11-20 2017-09-05 北京索为高科系统技术有限公司 一种基于统一建模环境的异构模型转换方法
CN106874020B (zh) * 2015-12-10 2021-02-02 五八同城信息技术有限公司 启动插件的方法及装置
US10816957B2 (en) * 2017-03-10 2020-10-27 Robert Kirkwood CAD integration through virtual persistent identifiers and design change recognition
EP3567500B1 (de) * 2018-05-09 2021-07-14 Siemens Aktiengesellschaft Erstellung eines dreidimensionalen modells zur datenübertragung
US11847381B2 (en) * 2018-05-21 2023-12-19 Dassault Systemes Solidworks Corporation Three-dimensional graphical annotations with semantic attributes
FR3087025A1 (fr) * 2018-10-04 2020-04-10 Movida Production Procede pour transformer un modele tridimensionnel (3d) en un modele 3d embarquable dans une interface humain-machine d’un equipement mobile
CN109948114B (zh) * 2019-03-20 2023-05-12 武汉轻工大学 弧长曲线积分自动计算方法、设备、存储介质及装置
US11693868B2 (en) 2020-06-08 2023-07-04 Apriori Technologies, Inc. Insight generation based on retrieved PLM data
AU2021338607A1 (en) 2020-09-14 2023-03-30 Cornell Pump Company LLC Interactive parts drawings with a real-time bill of materials
US20220284142A1 (en) * 2021-03-08 2022-09-08 nTopology, Inc. Systems and methods for computer-aided design (cad) exchange
EP4160461A1 (de) * 2021-10-04 2023-04-05 Autodesk, Inc. Erzeugung dreidimensionaler oberflächenmuster zur erleichterung der teileerzeugung in einer rechnergestützten entwurfs- und herstellungsschnittstelle
DE102021126062A1 (de) 2021-10-07 2023-04-13 H&F Solutions GmbH Verfahren und System zum Konvertieren von Daten aus einem Ursprungsdateiformat in ein Zieldateiformat
DE102021126065A1 (de) 2021-10-07 2023-04-13 H&F Solutions GmbH Verfahren und System zur Erzeugung und Anwendung eines Modells beim Konvertieren von Daten

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5386500A (en) * 1987-06-02 1995-01-31 Cubital Ltd. Three dimensional modeling apparatus
JPH01175671A (ja) 1987-12-29 1989-07-12 Nippon Steel Corp 図面データの変換方法
US5600789A (en) * 1992-11-19 1997-02-04 Segue Software, Inc. Automated GUI interface testing
CA2187925C (en) * 1994-04-21 2000-04-25 Colin Jones Interface device and method
JPH0877217A (ja) * 1994-09-09 1996-03-22 Hitachi Ltd 論理動作記述データ変換制御方法
US5646862A (en) 1994-09-29 1997-07-08 Ford Motor Company Vendor-neutral integrated vehicle electrical design and analysis system and method
US5717905A (en) 1994-12-15 1998-02-10 Kao Corporation CAD system and bezier-curve data converting apparatus and method thereof in said CAD system
JPH08335279A (ja) 1995-06-08 1996-12-17 Olympus Optical Co Ltd 設計支援システム
US5870588A (en) 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
JPH09190526A (ja) * 1996-01-11 1997-07-22 Hitachi Ltd 図面データの形式変換システム
US5815415A (en) 1996-01-19 1998-09-29 Bentley Systems, Incorporated Computer system for portable persistent modeling
US6128023A (en) * 1996-12-20 2000-10-03 Fujitsu Limited Apparatus and method for editing character train on CAD picture plane and storage medium storing CAD character train editing program
US6542937B1 (en) 1998-02-27 2003-04-01 Amada Company, Limited Apparatus and method for transferring and editing sheet metal part data
US6373917B1 (en) * 2000-08-30 2002-04-16 Agilent Technologies, Inc. Z-axis elimination in an X-ray laminography system using image magnification for Z plane adjustment
WO2002037406A1 (en) 2000-10-30 2002-05-10 Translation Technologies, Inc. Computational geometry system, interrupt interface, geometric model comparator, and method

Also Published As

Publication number Publication date
EP1214647A2 (de) 2002-06-19
WO2001018672A2 (en) 2001-03-15
WO2001018672A3 (en) 2002-05-23
JP2003509738A (ja) 2003-03-11
ATE262199T1 (de) 2004-04-15
WO2001018670A3 (en) 2002-03-14
IL148349A0 (en) 2002-09-12
US6614430B1 (en) 2003-09-02
ATE259973T1 (de) 2004-03-15
DE60008264D1 (de) 2004-03-18
AU7035500A (en) 2001-04-10
ATE259517T1 (de) 2004-02-15
EP1218828B1 (de) 2003-08-20
WO2001018669A3 (en) 2002-01-17
JP2003509736A (ja) 2003-03-11
EP1226514B1 (de) 2004-03-17
IL148347A0 (en) 2002-09-12
AU7035600A (en) 2001-04-10
IL148346A0 (en) 2002-09-12
AU7440900A (en) 2001-04-10
WO2001018696A3 (en) 2001-08-02
EP1218833A2 (de) 2002-07-03
EP1226514A2 (de) 2002-07-31
IL148348A0 (en) 2002-09-12
DE60004691D1 (de) 2003-09-25
WO2001018669A2 (en) 2001-03-15
WO2001018696A2 (en) 2001-03-15
JP2003509737A (ja) 2003-03-11
DE60009122D1 (de) 2004-04-22
EP1218828A2 (de) 2002-07-03
DE60008264T2 (de) 2004-12-09
EP1214647B1 (de) 2004-02-18
WO2001018670A2 (en) 2001-03-15
JP2003509740A (ja) 2003-03-11
DE60008397D1 (de) 2004-03-25
ATE247851T1 (de) 2003-09-15
AU7035400A (en) 2001-04-10
DE60008397T2 (de) 2005-02-17
EP1218833B1 (de) 2004-02-11

Similar Documents

Publication Publication Date Title
DE60008397T2 (de) Benutzer emulation für datenaustausch beim rechnergestützten entwurf
DE60106779T2 (de) Verfahren und systeme zur rand-darstellung pro merkmal
DE69406296T2 (de) Objekorientiertes anzeigesystem
DE60031664T2 (de) Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra
US6828963B1 (en) Pattern matching for data exchange between computer aided design systems
DE69737913T2 (de) Gerät und verfahren zur eingabe von daten fuer ein biegemodell zur blecherzeugung
DE69229530T2 (de) Automatisiertes neues Layout-Verfahren mit dimensionaler Verknüpfung
DE68927454T2 (de) Graphische Bildaufbereitung
US5561747A (en) Boundary evaluation in non-manifold environment
DE112019000972T5 (de) Verfahren und Systeme für vereinfachte grafische Abbildungen von bipartiten Graphen
US6985835B1 (en) Method and apparatus for edge correlation between design objects
DE69710478T2 (de) System zur übersetzung von dateien mit visuellen wiedergabeobjekten und methode zur durchführung
DE3608438A1 (de) Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc
DE112020005732B4 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112021000927T5 (de) Systeme, Verfahren und Vorrichtungen für die Bildverarbeitung
CN116502303A (zh) 一种基于场景层级实例信息增强的bim模型可视化方法
DE112018002626T5 (de) Verfahren und Systeme zur optimierten visuellen Zusammenfassung von Sequenzen mit zeitbezogenen Ereignisdaten
DE69404438T2 (de) Objektorientiertes graphisches auswahlsystem
DE102018216787A1 (de) Verfahren, Computerprogrammprodukt und Computervorrichtung zum Auswerten volumetrischer Subdivisionsmodelle
DE19817583B4 (de) Verfahren und System zur Datenverarbeitung für dreidimensionale Objekte
DE102023104824A1 (de) Instanziierungssteuerung bzw. Regelung einer Grafikverarbeitungseinheit
DE60008201T2 (de) Übersetzung von Daten mit elektronischen Bildern
DE102020202723A1 (de) Automatische-Codeerzeugung-Verfahren und computerlesbares Speichermedium, das ein Automatische-Codeerzeugung-Programm speichert
WO2004003798A2 (de) Informationserzeugungssystem für die produktentstehung
DE69230728T2 (de) Auf relationalen grössen basierendes verfahren für den objektorientierten rechnerunterstützten geometrischen entwurf.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee