Comment écrire des propriétés différentes sur plusieurs configurations

Bonjour,
J’ai des fichiers famille de pièces pour de la visserie comportant beaucoup de configurations. Pour chaque configuration qui porte une propriété $Numéro je souhaite renommer la configuration comme suit: $Numéro&(&Configuration&)& et créer une configuration Titre = $Numéro.
J’utilise donc Intégration mais du coup il prend la propriété $Numéro de la configuration active et utilise cette propriété dans toutes les configs
Y-a-t-il une solution pour lire et écrire la propriété $Numéro de chaque configuration?

sujet connexe: https://forum.lynkoa.com/t/comment-renommer-plusieurs-configurations-avec-le-module-integration-de-mycadtools/104255



Une partie de ma solution avec batchproperties

1 « J'aime »

Pour renommer le nom de la configuration en fonction de la propriété, pourquoi ne pas le faire dans la famille de pièce directement en mettant =$Numéro dans la 1ère colonne (nom de la config=
Attention à bien sélectionner « Standard » dans le format de cette colonne avant de mettre la formule.Ici dans l’exemple je reprends la valeur d’une autre propriété (D1) pour renommer ma configuration:
image
Tu peux appliquer la même chose avec $Numéro et il suffit ensuite d’étirer la formule excel jusqu’au bas de ton tableau (fait une sauvegarde de ton fichier avant au cas où)
Je ne vois pas l’intérêt de passé par Intégration pour renommer les config dans une famille de pièce, la façon Excel est bien plus simple, à mon avis.

3 « J'aime »

Sinon via Intégration cela ne fonctionne effectivement pas ni avec famille de pièce, ni sans famille de pièce:


@fmarchand ou l’un de ses collègues pourra peut-être nous confirmer l’erreur dans la règle, si il y en a une, ou bien le bug sur ce renommage?(version 2022 Sp2.1)

1 « J'aime »

Oui je suis d’accord qu’avec la table excel c’est plus simple.
C’est que j’ai beaucoup de fichiers a traiter, et plusieurs propriétés à renseigner que nous avons préalablement extraite de notre erp. C’est pourquoi je cherche un traitement de « masse »
Objectif récupération des données dans 3DEXPERIENCE
Merci pour les réponses, je donnerais des nouvelles et @fmarchand a été sollicité aussi sur la question

2 « J'aime »

Sinon autre solution via macro vba.
Ce code modifié depuis celui de codestack fait parfaitement le job, pour moi la propriété testé était $PROPRIETE@NUMERO:

'**********************
'Copyright(C) 2022 Xarial Pty Limited
'Reference: https://www.codestack.net/solidworks-api/data-storage/custom-properties/rename-configurations-based-custom-property/
'License: https://www.codestack.net/license/
'**********************

Dim swApp As SldWorks.SldWorks
Dim swModel As SldWorks.ModelDoc2

Sub main()

    Set swApp = Application.SldWorks
    
    Set swModel = swApp.ActiveDoc
    
    If Not swModel Is Nothing Then
        
        Dim prpName As String
        
        'prpName = InputBox("Specify the property name to read the value from")
        prpName = "NUMERO" 'ici le nom de la propriété à modifier
        
        'If prpName <> "" Then
            
            Dim vConfNames As Variant
            Dim i As Integer
            
            vConfNames = swModel.GetConfigurationNames()
            
            For i = 0 To UBound(vConfNames)
                    
                Dim swConf As SldWorks.Configuration
                Set swConf = swModel.GetConfigurationByName(vConfNames(i))
                
                Dim prpVal As String
                
                If swConf.CustomPropertyManager.Get3(prpName, False, "", prpVal) Then
                    
                    If prpVal <> "" Then
                        swConf.Name = prpVal
                    End If
                    
                End If
                
            Next
            
        'End If
        
    Else
        MsgBox "Please open the model"
    End If
    
End Sub

Modifie le avec ta propriété et test le sur une pièce (après une sauvegarde).
Si cela fonctionne, pour le lancer en batch tu te créer une règle dans Intégration avec condition SOLIDWORKS= systématique, et dans opération, Divers macro et tu va chercher la macro précédemment enregistré avec le code ci-dessus.

1 « J'aime »

Bonjour,
Finalement j’ai utilisé Intégration avec une petite manip supplémentaire.
Je récupère tous les noms de configs et nom de fichiers de mes différents fichiers vis à l’aide de smartbom. Je les associe à ma matrice de propriétés sous excel via une RECHERCHEV et ensuite avec intégration je peux écrire toutes les propriétes dans la bonne config (voir captures d’écran)


Nota: je n’ai pas pris le temps de tester la macro de @sbadenis (j’suis pas très à l’aise avec les macros :slight_smile: )

Le tout c’est d’arriver au bon résultat.

2 « J'aime »