DE60008397T2 - Benutzer emulation für datenaustausch beim rechnergestützten entwurf - Google Patents

Benutzer emulation für datenaustausch beim rechnergestützten entwurf Download PDF

Info

Publication number
DE60008397T2
DE60008397T2 DE60008397T DE60008397T DE60008397T2 DE 60008397 T2 DE60008397 T2 DE 60008397T2 DE 60008397 T DE60008397 T DE 60008397T DE 60008397 T DE60008397 T DE 60008397T DE 60008397 T2 DE60008397 T2 DE 60008397T2
Authority
DE
Germany
Prior art keywords
cad
edge
computer
control signals
target
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
DE60008397T
Other languages
English (en)
Other versions
DE60008397D1 (de
Inventor
Ari Rappoport
Faigon Ofer
Moshe Mevasseret ZADKA
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
Publication of DE60008397D1 publication Critical patent/DE60008397D1/de
Application granted granted Critical
Publication of DE60008397T2 publication Critical patent/DE60008397T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

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)
  • Image Analysis (AREA)
  • Exposure Of Semiconductors, Excluding Electron Or Ion Beam Exposure (AREA)
  • Image Generation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)
  • Collating Specific Patterns (AREA)
  • Complex Calculations (AREA)
  • Telephonic Communication Services (AREA)
  • User Interface Of Digital Computer (AREA)

Description

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

Claims (19)

  1. Technisches System zum Emulieren von Nutzer-Interaktionen, wobei das System aufweist: ein Computer Aided Design-Modul (901), eingerichtet, eine Grafik-Design-Funktionalität bereitzustellen; einen Grafik-Bild-Server (902), eingerichtet, mit dem Computer Aided Design-Modul, einer Zeigereinrichtung und einer Anzeigeeinrichtung zu kommunizieren; einen Proxy (903), eingerichtet, Datensignale und Steuersignale zwischen dem Grafik-Bild-Server und dem Computer Aided Design-Modul zu erfassen; und einen Interpreter (904), der kommunikativ mit dem Proxy gekoppelt ist, wobei der Interpreter eingerichtet ist, die vom Proxy erfassten Datensignale und Steuersignale auszuwerten und Datensignale und Steuersignale zu senden, die an das Computer Aided Design-Modul adressiert sind, wobei mittels der Datensignale und Steuersignale eine Nutzer-Interaktion mit dem Computer Aided Design-Modul emuliert wird.
  2. Technisches System gemäß Anspruch 1, wobei die an das Computer Aided Design-Modul adressierten Datensignale und Steuersignale vom Interpreter erzeugte Zeigereinrichtungs-Signale aufweisen, mittels denen eine Menü-Hierarchie im Computer Aided Design-Modul gesteuert wird.
  3. Technisches System gemäß Anspruch 1 oder 2, wobei die vom Interpreter gesendeten Datensignale und Steuersignale Signale aufweisen, mittels denen Eigenschaftsanalyse-Information von einem Computer Aided Design-Modell, das dem Computer Aided Design-Modul entspricht, extrahiert wird.
  4. Technisches System gemäß Anspruch 1, 2 oder 3, wobei die vom Interpreter erzeugten Datensignale und Steuersignale Kalibrierungs-Signale aufweisen, eingerichtet, die vom Interpreter erzeugten Zeigereinrichtungs-Signale auf einen mit der Anzeigeeinrichtung zusammenhängenden Parametersatz mittels eines iterativen Prozesses des Sendens und Empfangens zu bzw. vom Grafik-Bild-Server einzustellen.
  5. Technisches System gemäß Anspruch 1, 2, 3 oder 4, wobei die vom Interpreter erzeugten Datensignale und Steuersignale so konfiguriert sind, dass ein bestimmter Teil des Computer Aided Design-Modells ausgewählt wird.
  6. Computerimplementiertes Verfahren zur Nutzer-Emulation in einem Grafik-Software-System, aufweisend: Initialisieren (1001) eines Interpreters (904) mit Betriebsparametern eines fensterbasierten Systems (windowing system); Auswählen (1002) eines ersten Teils des Grafik-Designs eines Designobjekts im fensterbasierten System; Überprüfen (1003), dass ein korrekter Teil des Grafik-Designs als der erste Teil des Grafik-Designs ausgewählt ist; und Durchführen (1004) einer Operation auf dem ausgewählten Teil des Grafik-Designs.
  7. Verfahren gemäß Anspruch 6, wobei der Schritt des Initialisierens aufweist: Identifizieren (1007) einer Mehrzahl von Fenstern im fensterbasierten System; und Kalibrieren (1008) von Koordinaten zwischen Pixeln des fensterbasierten Systems und Zeigerbewegungen.
  8. Verfahren gemäß Anspruch 7, ferner aufweisend das Abbilden (1009) einer Mehrzahl von Teilen einer grafischen Nutzerschnittstelle in einen Speicher, so dass die Kalibierung der Koordinaten mit speziellen Bestandteilen der grafischen Nutzerschnittstelle, die den Teil des Grafik-Designs aufweisen, in Übereinstimmung gebracht werden kann.
  9. Verfahren gemäß Anspruch 6, 7 oder 8, wobei der Schritt des Auswählens des Teils des Grafik-Designs aufweist: Verbergen (1011) eines oder mehrerer Teile des Grafik-Designs; Zoomen (1012) eines den Teil des Grafik-Designs aufweisenden Pixelbereichs im fensterbasierten System, wobei durch das Zoomen verursacht wird, dass der Teil des Grafik-Designs im fensterbasierten System signifikant in der Größe reduziert wird; Zentrieren (1013) des Teils des Grafik-Designs in der Mitte des Pixelbereichs; Senden (1014) eines Maus-Klicks in die Mitte des Pixelbereichs; und Prüfen eines Signals, das als Antwort auf den Akt des Sendens zurückgegeben worden ist, auf Information, dass ein Teil des Grafik-Designs ausgewählt worden ist.
  10. Verfahren gemäß Anspruch 6, 7, 8 oder 9, wobei der Schritt des Überprüfens, dass der erste korrekte Teil des Grafik-Designs ausgewählt ist, aufweist: Suchen (1016) einer Zeichenkette in einem als Antwort auf das Auswählen des Teils des Grafik-Designs zurückgegebenen Signal; Speichern (1019) von Zustandsinformation entsprechend einer vorliegenden Instanz des fensterbasierten Systems und des auf ihm betriebenen Teils des Grafik-Designs; und Widerrufen der Operation, wenn eine nachfolgende Operation fehlschlägt.
  11. Computerlesbares Medium mit darauf gespeicherter einer oder gespeicherten mehreren Sequenzen von Befehlen, so dass ein oder mehrere Prozessoren dazu gebracht werden, die Schritte gemäß einem der obigen Ansprüche 6, 7, 8, 9 oder 10 auszuführen.
  12. Computerimplementiertes Verfahren zum Emulieren eines Nutzers eines Anwendungsprogramms in einem Unterprogramm des Anwendungsprogramms, wobei das Verfahren aufweist: Erfassen eines ersten Satzes von Datensignalen und Steuersignalen von einem Grafik-Bild-Server (902); Eintreten in einen Zeitverzögerungs-Modus; Ablegen eines Sub-Threads, der die erfassten Datensignale und Steuersignale verarbeitet; Beenden des Zeitverzögerungsmodus'; Zurückgeben der Verarbeitung an das Anwendungsprogramm; Erfassen eines zweiten Satzes von Datensignalen und Steuersignalen vom Grafik-Bild-Server (902); Wiederaufnehmen der Verarbeitung des ersten Satzes von Datensignalen und Steuersignalen zusammen mit dem zweiten Satz von Datensignalen und Steuersignalen mittels des Sub-Threads; und Zurückgeben einer computeremulierten Nutzerantwort nach dem Schritt des Wiederaufnehmens der Verarbeitung.
  13. Verfahren gemäß Anspruch 12, ferner aufweisend: Speichern von Zustandsinformation entsprechend dem Sub-Thread; und wobei der Schritt des Wiederaufnehmens der Verarbeitung mittels eines zweiten Sub-Threads durchgeführt wird, der die gespeicherte Zustandsinformation zusammen mit dem zweiten Satz von Datensignalen und Steuersignalen nutzt.
  14. Verfahren gemäß Anspruch 12, ferner aufweisend: Speichern von Zustandsinformation entsprechend dem Sub-Thread; und wobei der Schritt des Wiederaufnehmens der Verarbeitung unter Verwenden einer Inter-Prozess-Kommunikation durchgeführt wird, bei der die gespeicherte Zustandsinformation zusammen mit dem zweiten Satz von Datensignalen und Steuersignalen genutzt wird.
  15. Verfahren gemäß Anspruch 12, ferner aufweisend: Speichern von Zustandsinformation entsprechend dem Sub-Thread; und wobei der Schritt des Wiederaufnehmens der Verarbeitung unter Verwenden eines Cross-Thread-Messaging durchgeführt wird, bei dem die gespeicherte Zustandsinformation zusammen mit dem zweiten Satz von Datensignalen und Steuersignalen genutzt wird.
  16. Verfahren gemäß Anspruch 12, ferner aufweisend: Speichern von Zustandsinformation entsprechend dem Sub-Thread; und wobei der Schritt des Wiederaufnehmens der Verarbeitung unter Verwenden eines oder mehrerer Fernprozedur-Aufrufe durchgeführt wird, bei denen die gespeicherte Zustandsinformation zusammen mit dem zweiten Satz von Datensignalen und Steuersignalen genutzt wird.
  17. Verfahren gemäß Anspruch 12, 13, 14, 15 oder 16, ferner aufweisend Initialisieren eines Zeitgebers, der ein Fehlschlagen der computeremulierten Nutzerantwort überwacht; und Abbrechen der computeremulierten Nutzerantwort, wenn der Zeitgeber abläuft, bevor er zurückzusetzen ist.
  18. Verfahren gemäß Anspruch 17, ferner aufweisend das Verwerfen (backing-out) einer Mehrzahl von computeremulierten Nutzerantworten, wenn der Zeitgeber abläuft, bevor er zurückzusetzen ist.
  19. Computerlesbares Medium mit darauf gespeicherter einer oder gespeicherten mehreren Sequenzen von Befehlen, so dass ein oder mehrere Prozessoren dazu gebracht werden, die Schritte gemäß einem der obigen Ansprüche 12, 13, 14, 15, 16, 17 oder 18 durchzuführen.
DE60008397T 1999-09-07 2000-09-06 Benutzer emulation für datenaustausch beim rechnergestützten entwurf Expired - Fee Related DE60008397T2 (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/001356 WO2001018670A2 (en) 1999-09-07 2000-09-06 User emulation for computer aided design data exchange

Publications (2)

Publication Number Publication Date
DE60008397D1 DE60008397D1 (de) 2004-03-25
DE60008397T2 true DE60008397T2 (de) 2005-02-17

Family

ID=23546117

Family Applications (4)

Application Number Title Priority Date Filing Date
DE60008264T Expired - Fee Related DE60008264T2 (de) 1999-09-07 2000-09-06 Datenaustausch zwischen cad-systemen
DE60009122T Expired - Fee Related DE60009122T2 (de) 1999-09-07 2000-09-06 Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen
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 Before (2)

Application Number Title Priority Date Filing Date
DE60008264T Expired - Fee Related DE60008264T2 (de) 1999-09-07 2000-09-06 Datenaustausch zwischen cad-systemen
DE60009122T Expired - Fee Related DE60009122T2 (de) 1999-09-07 2000-09-06 Mustererkennung für den datenaustausch zwischen rechnergestützten entwurfssystemen

Family Applications After (1)

Application Number Title Priority Date Filing Date
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) ATE247851T1 (de)
AU (4) AU7035600A (de)
DE (4) DE60008264T2 (de)
IL (4) IL148346A0 (de)
WO (4) WO2001018696A2 (de)

Families Citing this family (65)

* 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
EP1337963A4 (de) * 2000-10-30 2005-11-02 Translation Technologies Inc Rechen-geometriesystem, interrupt-schnittstelle, geometrischer modellkomparator und verfahren
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
US6686914B2 (en) * 2001-06-11 2004-02-03 General Electric Company Methods and systems for automatically translating geometric data
US20030154058A1 (en) * 2001-06-11 2003-08-14 Keener Bryan F. Methods and systems for validating translated geometry
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
US7013468B2 (en) * 2002-02-26 2006-03-14 Parametric Technology Corporation Method and apparatus for design and manufacturing application associative interoperability
US20030163604A1 (en) * 2002-02-26 2003-08-28 Parametric Technology Corporation Method and apparatus for design and manufacturing application feature 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
EP1687767A1 (de) * 2003-11-14 2006-08-09 Koninklijke Philips Electronics N.V. Produktdaten-austausch
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
EP2245564B1 (de) * 2008-01-31 2011-08-31 Siemens Aktiengesellschaft Verfahren und system zur qualifizierung von cad-objekten
WO2009129824A1 (de) * 2008-04-24 2009-10-29 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
JP2012510202A (ja) * 2008-11-25 2012-04-26 トムソン ライセンシング ビデオ符号化および復号のためのスパース性に基づくアーティファクト除去フィルタリングを行う方法および装置
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
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
DE69511080T2 (de) * 1994-04-21 2000-02-03 British Telecomm Schnittstellenanordnung und verfahren
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
EP1337963A4 (de) 2000-10-30 2005-11-02 Translation Technologies Inc Rechen-geometriesystem, interrupt-schnittstelle, geometrischer modellkomparator und verfahren

Also Published As

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

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
DE68927781T2 (de) Geometrisches Modellierungsverfahren und -gerät
US6828963B1 (en) Pattern matching for data exchange between computer aided design systems
US7099803B1 (en) Data exchange between computer aided design systems
DE60031664T2 (de) Computerverfahren und vorrichtung zum schaffen von sichtbarer graphik unter verwendung von graph algebra
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE69233037T2 (de) Automatisiertes neues Layout mit dimensionaler Verknüpfung
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
US6985835B1 (en) Method and apparatus for edge correlation between design objects
DE112019000972T5 (de) Verfahren und Systeme für vereinfachte grafische Abbildungen von bipartiten Graphen
DE112012005657T5 (de) Computerprogrammprodukt und Verfahren zum Erzeugen und Simulieren eines Modells eines Objekts
DE102017007967A1 (de) Verarbeiten und rendern eines dreidimensionalen Modells
DE202016009145U1 (de) Deep-Learning-basierte funktionale Korrelation von volumetrischen Designs
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE112018002626T5 (de) Verfahren und Systeme zur optimierten visuellen Zusammenfassung von Sequenzen mit zeitbezogenen Ereignisdaten
DE69930352T2 (de) Verfahren und Vorrichtung zur Animierung von Videospezialeffekten
DE10038499A1 (de) Verfahren und System für die verbesserte Entwicklungsprüfung mittels angepasster Ablaufverfolgung
DE19581872B4 (de) Dreidimensionales Graphikaufbereitungssystem
DE19817583B4 (de) Verfahren und System zur Datenverarbeitung für dreidimensionale Objekte
DE102017006557A1 (de) Verwenden von Markierungen zum Verfolgen von hochfrequenten Offsets für Patchabgleichsalgorithmen
DE60008201T2 (de) Übersetzung von Daten mit elektronischen Bildern
DE10063514A1 (de) Verwendung einer gespeicherten Prozedur zum Zugriff auf Indexkonfigurationsdaten in einem fernen Datenbankverwaltungssystem
DE102018128592A1 (de) Erzeugen eines Bilds unter Verwendung einer Map, die verschiedene Klassen von Pixeln repräsentiert
WO2004003798A2 (de) Informationserzeugungssystem für die produktentstehung

Legal Events

Date Code Title Description
8332 No legal effect for de
8370 Indication related to discontinuation of the patent is to be deleted
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee