Création, ouverture et enregistrement de fichiers

Rejoignez le forum des designers !

Votre expertise est essentielle pour la communauté. Rejoignez-nous et apportez vos connaissances !

Rejoindre le forum maintenant

Partagez, apprenez et évoluez avec les meilleurs professionnels du secteur.


Bienvenue ! Voici la deuxième partie de cette série d’articles de blog, et je vais vous expliquer comment travailler avec le contenu de la base de données 3DEXPERIENCE (3DX).

Tout d’abord, Dassault n’aime pas utiliser le mot « fichier » lorsque nous parlons de 3DX. Comme vous le savez peut-être, tout le contenu de 3DX est stocké dans la base de données, et chaque élément de cette base de données est désormais appelé « entité PLM ». (Notez qu’en fin de compte, il existe un fichier pour chaque élément de la base de données, stocké quelque part sur un serveur). Toutefois, à partir de maintenant, nous utiliserons les termes « entité PLM » ou « objet PLM » pour chaque élément de cette base de données.

C’est probablement l’une des plus grandes différences entre V5 et 3DX.

Basé sur des documents vs. basé sur des bases de données

V5 est basé sur des documents. Lorsque vous voyez un modèle sur votre écran dans V5, il est représenté par deux objets : l’objet Document et l’objet Window. Lorsque vous ouvrez ou enregistrez un modèle dans V5, CATIA lit ou enregistre un fichier.

Figure 1

Ce que vous voyez sur l’écran de 3DX est également représenté par deux objets, mais il s’agit maintenant de l’objet Editor et de l’objet Window. L’objet Window remplit la même fonction que dans V5, à savoir l’affichage du modèle à l’écran. Le rôle de l’objet Editor, cependant, est celui de « contrôleur » du contenu du modèle. C’est-à-dire qu’il contient l’application courante et maintient la liste de toutes les commandes qui peuvent être lancées à partir de l’application.

L’éditeur possède une propriété ActiveObjectqui est l’objet que vous voyez à l’écran. Pour obtenir l’objet actif, vous pouvez utiliser les commandes suivantes en VBA et, à partir de là, travailler avec lui.

01 : Dim oActiveObj As AnyObject

02 : Set oActiveObj = CATIA.ActiveEditor.ActiveObject

L’objet de contenu correspond à une entité PLM dans la base de données, qui est représentée par une carte de métadonnées et un fichier de stockage. Cela crée une « couche supplémentaire » entre la session 3DX et les fichiers de la base de données. Pour obtenir le fichier, le système lit d’abord les métadonnées, qui indiquent l’emplacement exact du fichier.

Figure 2

Dans 3DX, vous ne pouvez pas simplement « ouvrir » ou « enregistrer » le modèle. Vous devez demander à un « service » 3DX de le faire pour vous.

J’aborderai en détail les « services » de 3DX dans la troisième partie de cette série, mais pour l’instant, nous allons rester simples.

Recherche et ouverture à partir de la base de données

Pour introduire un modèle dans une session 3DX, vous devez d’abord le rechercher (SearchService), puis l’ouvrir (PLMOpenService). Le code VBA ressemblerait à ceci :

Récupérez l’objet SearchService et créez une requête de recherche.

01 : Dim oSearchService As SearchService

02 : Set oSearchService = CATIA.GetSessionService(« Search »)

03 : Dim oDBSearch As DatabaseSearch

04 : Set oDBSearch = oSearchService.DatabaseSearch

05 : oDBSearch.BaseType = « VPMReference » ‘ recherche un PhysicalProduct

06 : oDBSearch.AddEasyCriteria « V_Name », « <model_title&gt ; » ‘ recherche en utilisant le Titre

‘ Lancez la recherche

07 : oSearchService.Search

Récupérer la liste des entités trouvées

08 : Dim cPLMEntities As PLMEntities

09 : Set cPLMEntities = oDBSearch.Results

‘ Obtenez le service PLMOpen &amp ; ouvrez la première entité trouvée

10 : Dim oPLMOpenService As PLMOpenService

11 : Set oPLMOpenService = CATIA.GetSessionService(« PLMOpenService »)

12 : Dim oEditor As Editor

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

Sauvegarde dans la base de données

Pour enregistrer le modèle actuel dans la base de données, vous devez utiliser la commande PLMPropagateService. Le code VBA ressemblerait à ceci :

‘ Obtenez l’objet PropagateService

01 : Dim oSaveService As PLMPropagateService

02 : Set oSaveService = CATIA.GetSessionService(« PLMPropagateService »)

‘ Sauvegarde dans la base de données (sauvegarde uniquement le contenu de l’éditeur actif !)

03 : oSaveService.PLMPropagation

Création d’un nouveau contenu

Maintenant, pour créer un nouveau contenu, vous devez utiliser un autre service – PLMNouveauService.

01 : Dim oServ As PLMNewService

02 : Set oServ = CATIA.GetSessionService(« PLMNewService »)

03 : Dim oEditor As Editor

04 : oServ.PLMCreate « <content_type&gt ; », oEditor

Le <content_type&gt ; peut prendre les valeurs suivantes :

  • « Dessin » : Crée un dessin
  • « 3DShape » : Crée une forme en 3D
  • « 3DPart » : Crée une pièce en 3D
  • « VPMReference » : Crée un produit physique

Voici la mauvaise nouvelle : la création d’une nouvelle pièce 3D ou d’un produit physique à partir d’une macro nécessite une licence spéciale, VMX ou E70. Sans cette licence, vous ne pouvez créer qu’un dessin ou une forme 3D. En général, la plupart des entreprises ne disposent pas de cette licence, ce qui signifie que vous pouvez créer une nouvelle pièce 3D ou un nouveau produit physique à partir d’une macro. ne vous attendez pas à pouvoir créer une nouvelle pièce en 3D ou un produit physique à l’aide de scripts !


Rejoignez le forum des designers !

Votre expertise est essentielle pour la communauté. Rejoignez-nous et apportez vos connaissances !

Rejoindre le forum maintenant

Partagez, apprenez et évoluez avec les meilleurs professionnels du secteur.