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 »