Dateien erstellen, öffnen und speichern

Treten Sie dem Forum für Designer bei!

Ihr Fachwissen ist wichtig für die Gemeinschaft. Helfen Sie uns und bringen Sie Ihr Wissen ein!

Jetzt dem Forum beitreten

Tauschen Sie sich aus, lernen Sie und wachsen Sie mit den besten Fachleuten der Branche.


Willkommen zurück! Dies ist Teil 2 dieser Serie von Blogbeiträgen. Hier erkläre ich Ihnen, wie Sie mit den Inhalten der 3DEXPERIENCE (3DX) Datenbank arbeiten.

Zunächst einmal verwendet Dassault nicht gerne das Wort „Datei“, wenn wir über 3DX sprechen. Wie Sie vielleicht wissen, wird der gesamte 3DX-Inhalt in der DB gespeichert, und jedes einzelne Element in dieser DB wird jetzt als „PLM-Entität“ bezeichnet. (Allerdings gibt es letztendlich für jedes Element in der DB eine Datei, die irgendwo auf einem Server gespeichert ist). Dennoch werden wir von nun an die Begriffe „PLM-Entität“ oder „PLM-Objekt“ für jedes Element in dieser DB verwenden.

Dies ist wahrscheinlich einer der größten Unterschiede zwischen V5 und 3DX.

Dokumentenbasiert vs. DB-basiert

V5 ist dokumentenbasiert. Wenn Sie ein Modell auf Ihrem Bildschirm in V5 sehen, wird es durch zwei Dinge dargestellt – das Dokument-Objekt und das Fenster-Objekt. Wenn Sie ein Modell in V5 öffnen oder speichern, liest oder speichert CATIA tatsächlich eine Datei.

Abbildung 1

Was Sie auf dem 3DX-Bildschirm sehen, wird ebenfalls durch zwei Dinge dargestellt, aber jetzt sind es das Editor-Objekt und das Window-Objekt. Das Window-Objekt erfüllt dieselbe Funktion wie in V5, nämlich die Anzeige des Modells auf dem Bildschirm. Das Editor-Objekt hat jedoch die Rolle des „Controllers“ für den Inhalt des Modells. Das heißt, es enthält die aktuelle App und verwaltet die Liste aller Befehle, die von der App aus gestartet werden können.

Der Editor hat eine Eigenschaft ActiveObject, das ist das Objekt, das Sie auf dem Bildschirm sehen. Um an das aktive Objekt heranzukommen, können Sie die folgenden Befehle in VBA verwenden und von dort aus mit ihm arbeiten.

01: Dim oActiveObj As AnyObject

02: Set oActiveObj = CATIA.ActiveEditor.ActiveObject

Das Inhaltsobjekt entspricht einer PLM-Entität in der DB, die durch eine Metadatenkarte und eine Speicherdatei dargestellt wird. Dadurch entsteht eine „zusätzliche Schicht“ zwischen der 3DX-Sitzung und den Dateien in der DB. Um die Datei abzurufen, liest das System zunächst die Metadaten, aus denen hervorgeht, wo genau sich die Datei befindet.

Abbildung 2

In 3DX können Sie das Modell nicht einfach „öffnen“ oder „speichern“. Sie müssen einen 3DX-„Dienst“ bitten, dies für Sie zu tun.

Ich werde die 3DX-„Dienste“ in Teil 3 der Serie im Detail besprechen, also halten wir es erst einmal einfach.

Suchen und Öffnen aus der DB

Um ein Modell in die 3DX-Sitzung zu bringen, müssen Sie es zunächst suchen (SearchService) und dann öffnen (PLMOpenService). Der VBA-Code würde etwa so aussehen:

‚ Holen Sie das SearchService-Objekt und erstellen Sie eine Suchabfrage

01: Dim oSearchService As SearchService

02: Set oSearchService = CATIA.GetSessionService(„Suche“)

03: Dim oDBSearch As DatabaseSearch

04: Set oDBSearch = oSearchService.DatabaseSearch

05: oDBSearch.BaseType = „VPMReference“ ‚ sucht nach einem PhysicalProduct

06: oDBSearch.AddEasyCriteria „V_Name“, „<model_title>“ ‚ sucht anhand des Titels

‚ Starten Sie die Suche

07: oSearchService.Search

‚ Abrufen der Liste der gefundenen Entitäten

08: Dim cPLMEntities As PLMEntities

09: Set cPLMEntities = oDBSearch.Results

‚ Holen Sie den PLMOpen-Dienst & öffnen Sie die erste gefundene Entität

10: Dim oPLMOpenService As PLMOpenService

11: Set oPLMOpenService = CATIA.GetSessionService(„PLMOpenService“)

12: Dim oEditor As Editor

13: oPLMOpenService.PLMOpen cPLMEntities.Item(1), oEditor

Speichern in der DB

Um das aktuelle Modell in der DB zu speichern, müssen Sie die Funktion PLMPropagateService. Der VBA-Code würde etwa so aussehen:

‚ Abrufen des PropagateService-Objekts

01: Dim oSaveService As PLMPropagateService

02: Set oSaveService = CATIA.GetSessionService(„PLMPropagateService“)

‚ In der DB speichern (speichert nur den Inhalt des aktiven Editors!)

03: oSaveService.PLMPropagate

Neue Inhalte erstellen

Um nun neue Inhalte zu erstellen, müssten Sie einen weiteren Dienst verwenden – PLMNewService.

01: Dim oServ As PLMNewService

02: Set oServ = CATIA.GetSessionService(„PLMNewService“)

03: Dim oEditor As Editor

04: oServ.PLMCreate „<content_type>“, oEditor

Die <content_type> string kann die folgenden Werte haben:

  • „Zeichnung“: Erzeugt eine Zeichnung
  • „3DShape“: Erzeugt ein 3D-Shape
  • „3DTeil“: Erzeugt ein 3D-Teil
  • „VPMReferenz“: Erzeugt ein physisches Produkt

Die schlechte Nachricht ist, dass Sie zum Erstellen eines neuen 3D-Teils oder eines physischen Produkts aus einem Makro eine spezielle Lizenz benötigen, entweder VMX oder E70. Ohne diese Lizenz können Sie entweder nur eine Zeichnung oder eine 3D-Form erstellen. In der Regel verfügen die meisten Unternehmen nicht über diese Lizenz, was bedeutet, – erwarten Sie nicht, dass Sie ein neues 3D-Teil oder ein physisches Produkt mit Hilfe von Skripten erstellen können!


Treten Sie dem Forum für Designer bei!

Ihr Fachwissen ist wichtig für die Gemeinschaft. Helfen Sie uns und bringen Sie Ihr Wissen ein!

Jetzt dem Forum beitreten

Tauschen Sie sich aus, lernen Sie und wachsen Sie mit den besten Fachleuten der Branche.