Bonjour,
Est il possible d'ajouter une propriété personnalisée par macro, en effet j'ai récupéré des vieilles pièces d'un gros dossier qui n'ont pas de propriétés "MASSE" "SW-Masse@mapiece.SLDPRT" ni "DESCRIPTION" "texte", ça serait plus rapide de les ajouter par une petite macro.
Si qqu'un a un début de piste ça serait sympa, j'ai rien trouvé sur le forum.
Cordialement.
1 « J'aime »
Merci Olivier42,
Oui pratique, mais tu ne peux pas assigner "SW-Masse@ ", et je préfere le faire au fur et a mesure sur chaque pièce que je modifie.
Cordialement
Bonjour,
si vous le faites au fur et à mesure que vous modifiez les pièces ; le copier-coller devrait faire l'affaire.
1 « J'aime »
Bonjour,
Merci d.roger pour ton aiguillage très intéressant, après de nombreux bricolages j'ai réussi à faire une macro qui fonctionne! le soucis c'est que je veux ajouter des propriétés non seulement à la config mais aussi aux propriétés générales et là je n'y arrive pas.
Si vous pouviez m'aider ça serait sympa.
Cordialement
Option Explicit
Public Enum swCustomInfoType_e
swCustomInfoUnknown = 0
swCustomInfoText = 30
swCustomInfoDate = 64
swCustomInfoNumber = 3
swCustomInfoDouble = 5
swCustomInfoYesOrNo = 11
End Enum
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swConfigMgr As SldWorks.ConfigurationManager
Dim swConfig As SldWorks.Configuration
Dim swCustPropMgr As SldWorks.CustomPropertyManager
Dim retVal As Long
Dim noma As String
Dim nomb As String
Dim nom As String
Dim Att As String
Sub main()
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
Set swConfigMgr = swModel.ConfigurationManager
Set swConfig = swConfigMgr.ActiveConfiguration
noma = swModel.GetTitle
nom = noma & """"
nomb = """"
Att = swModel.GetCustomInfoValue("", "DESIGNATION")
Set swCustPropMgr = swConfig.CustomPropertyManager
' Add custom property MASSE ET DESIGNATION to this configuration
retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, nomb & "SW-Mass@" & nom)
retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, Att)
End Sub
Bonjour,
Il ne faut pas mettre le nom de configuration dans les options de swCustPropMgr.Add2. en laissant le nom de conf vide ça se met dans les propriétés générales.
Bonjour,
Voici un petit exemple qui permet de remplir dans toutes les configurations, y compris dans les propriétés générales :
Sub main()
Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As ModelDocExtension
Dim configNames() As String
Dim configName As String
Dim swConfig As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim i As Long
Dim retVal As Long
Set swApp = Application.SldWorks
Set swModel = swApp.ActiveDoc
configNames = swModel.GetConfigurationNames
For i = 0 To UBound(configNames)
configName = configNames(i)
Set swConfig = swModel.GetConfigurationByName(configName)
Set swCustPropMgr = swConfig.CustomPropertyManager
retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, """SW-Mass@@Défaut@Plaque-2.SLDPRT""")
retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, "Ma désignation")
Next i
Set swModelDocExt = swModel.Extension
Set swCustPropMgr = swModelDocExt.CustomPropertyManager("")
retVal = swCustPropMgr.Add2("MASSE", swCustomInfoText, """SW-Mass@@Défaut@Plaque-2.SLDPRT""")
retVal = swCustPropMgr.Add2("DESCRIPTION", swCustomInfoText, "Ma désignation")
End Sub
Cordialement,
4 « J'aime »
Merci d.roger, j'essaie ce soir...
Bien cordialement
Bonjour,
Je reviens à la charge car j'arrive à récupérer l'info "DESIGNATION" dans les propriétés générales:
Att = swModel.GetCustomInfoValue("", "DESIGNATION")
Mais quelle est la commande pour récupérer cette info si la propriété "DESIGNATION" est spécifiquement dans une configuration (défaut).
Merci de votre aide...
Cyril.f m'a renseigné.
Merci
Merci beaucoup d.roger, ça marche nickel!!
Top contributeur en macro!!
Bien cordialement