Rejoignez le forum des designers !
Votre expertise est essentielle pour la communauté. Rejoignez-nous et apportez vos connaissances !
Rejoindre le forum maintenantPartagez, 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> ; » ‘ 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 & ; 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> ; », oEditor
Le <content_type> ; 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 maintenantPartagez, apprenez et évoluez avec les meilleurs professionnels du secteur.