Macro pour ajouter proprieté

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 »

Planificateur de tâche : MAJ des propriétés

http://help.solidworks.com/2016/french/SolidWorks/sldworks/HIDD_TASK_CUSTOM_PROPS.htm?id=b4a248bb4ed54a87a79966b065a1d4f4#Pg0&ProductType=&ProductName=

 

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,

Regarde http://help.solidworks.com/2016/English/api/sldworksapi/Get_Custom_Properties_for_Configuration_Example_VB.htm, il y a un exemple d'ajout.

Cordialement

2 « J'aime »

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

Merci beaucoup d.roger, ça marche nickel!!

Top contributeur en macro!!

Bien cordialement

1 « J'aime »

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