Macros Récupération Propriété d'une piece dans une mise en plan

Bonjour a tous,

J’ai créer un macros d’export de ma nomenclature en fichier CSV qui fonctionne bien.

Je souhaite maintenant l’améliorer en formatant le nom de fichier de sortie.
Pour cela je doit récupéré la valeur d’une propriété de la pièce qui s’appelle « DRAWING_NUM » pour la mettre dans une variable, alors que je me situe dans la mise en plan et que cette propriété n’existe pas dans la mise en plan.

Est ce que l’un d’entre vous a une idée pour réalisé cela ?
J’ai déjà trouver plusieurs exemple de récupération de propriété sur ce forum mais aucun ne correspond a mon cas de figure

Merci par avance

Bonjour,

il suffirait de la rajouter dans votre modèle de plan pour qu’elle appelée a partie de celle-ci

1 « J'aime »

Bonjour,

Est-ce que c’est toujours une pièce dans le plan et est-ce qu’il n’y a qu’un modèle appelé dans ces plans?

1 « J'aime »

Oui il y’a déjà des vues dans le plan, et les propriétés de pièce sont récupéré pour le remplissage du cartouche

Re,
En gros le code ci-dessous permet à partir de la première vue « scannée » de récupérer la propriété DRAWING_NUM du fichier rattaché à la vue.

Dim swApp                       As SldWorks.SldWorks
Dim swModel                     As SldWorks.ModelDoc2
Dim swDraw                      As SldWorks.DrawingDoc
Dim swView                      As SldWorks.View
Dim swCustProp                  As CustomPropertyManager
Dim bRet                        As Boolean
Dim ResolvedValOut              As String
Dim sValout                     As String
Dim WasResolved                 As Boolean

Sub main()
Set swApp = CreateObject("SldWorks.Application")

Set swModel = swApp.ActiveDoc

Set swDraw = swModel
        
Set swView = swDraw.GetFirstView 'Active le fond de plan

Set swView = swView.GetNextView 'Active la première vue après le fond de plan

Set swModel = swView.ReferencedDocument 'Récupère le fichier associé à la première vue
Set swModelDocExt = swModel.Extension
Set swCustProp = swModelDocExt.CustomPropertyManager("")

bRet = swCustProp.Get5("DRAWING_NUM", False, sValout, ResolvedValOut, WasResolved) 'Récupération de la propriété "DRAWIND_NUM"

Debug.Print ResolvedValOut 'Utiliser ResolvedValout ou sValout, tout dépend si c'est une valeur calculée ou une valeur fixe

Set swModel = Nothing
Set swApp = Nothing

End Sub

2 « J'aime »

Merci Cyril.f ca marche nickel !

1 « J'aime »