Bonjour,
Je m’explique sur mon problème : j’ai plusieurs fichiers 3D SolidWorks (.sldprt) dans un workflow PDM avec des données (date de création de la première révision et par qui, origine…) dans ma carte (je précise que ces données sont fixes et ne sont jamais recalculées par PDM).
Je souhaite remplacer ces fichiers par des nouveaus fichiers 3D (même 3D de base + quelques esquisses en plus) en masse. J’ai un configurateur qui génére les fichiers 3D et je viens ensuite écraser les fichiers dans PDM avec les nouveaux. Mon problème est comment récupérer les propriétés de l’ancien fichier pour remettre dans le nouveau ? Mon configurateur met à jours les propriétés « techniques » dans mes fichiers mais pas « historiques » (créateur, révision…)
Si vous avez une idée
Peux être une macro pour récupérer toutes les propriétés de l’ancien fichier pour les recoller dans le nouveau fichier ?
Bonjour,
Tout dépend comment vous voulez fonctionner. Soit via une macro récupérant les données des cartes de données soit directement via une macro qui récupère les informations dans les fichiers.
Autre solution, utiliser les branchements et récupérer les données à copier lors de la fusion (ce qui vient de la copie et ce qui vient du fichier d’origine).
1 « J'aime »
Bonjour,
Merci du retour.
Les branchements/fusions je ne connais pas trop le fonctionnement de ces fonctions mais je vais me pencher dessus.
Voici comment j’ai procédé :
- création d’un dossier temporaire en local sur mon PC
- dupliquer et renommer mes X nouveaux fichiers 3D
- utiliser une macro pour ouvrir les anciens 3D/récupérer les propriétés dans Excel/fermer les anciens 3D/ouvrir les nouveaux 3D/coller les propriétés dans le nouveaux 3D/fermer les fichiers
- extrait de PDM les anciens 3D et les remplacer par les nouveaux (simple copier/coller + remplacer)
- archiver les fichiers
A première vue cela fonctionne, les propriétés ont été reprises dans les fichiers et cartes de données mais je rencontre un problème d’affichage dans mes colonnes. En effet ce sont les propriétés initiales (celles du fichier 3D dupliqué X fois) qui s’affichent (du coup différentes de celles de la carte de données). J’ai tenté de rafraîchir, changer d’état… mais rien n’y fait. La seule façon est de modifier les champs dans la carte de données (supprimer le dernier caractère et le remettre par exemple) puis sauvegarder et rafraîchir. Cela fonctionne mais perd tout son sens de mettre à jour en masse les données (certains champ comme Révision sont en lecture seule et donc non modifiable par un utilisateur normal).
Avez-vous une idée de où cela peut venir ? Peut être ma méthode est-elle à revoir ?
… D’instinct; il manque quand même une étape de reconstruction (il faut « forcer » la mise à jour des nouvelles propriétés dans les nouveaux 3D en ouvrant l"éditeur de propriétés (Celui de Solidworks ou Smartproperties selon l’outil utilisé)…
En fait le problème des cartes de données et l’affichage des données dans l’explorateur peut provenir de la zone où les propriétés sont renseignées (dans personnaliser ou spécifique à la configuration)
L’explorateur affiche normalement les informations provenant de la dernière configuration active au moment de l’archivage.
Sinon peut-être tester également avec les API du coffre pour plutôt jouer sur les variables de cartes, ouvrir le fichier, enregistrer/archiver.
Bonjour,
Je ne l’ai pas précisé en détails mais j’ai bien mis un « ForceRebuild » dans ma macro.
Merci
Bonjour,
Effectivement l’affichage reprend les propriétés spécifiques de la configuration active et ma macro ne met pas à jour les propriétés spécifiques à chaque configuration mais seulement les propriétés de @.
Pour mon cas je n’utilise que les propriétés générales (je n’ai pas besoin des configurations) et j’ai donc modifié la macro pour supprimer toutes les propriétés spécifiques des configurations. J’ai également modifié les propriétés de la variable dans l’administration (portée à @configuration) pour éviter de recréer les propriétés spécifiques.
Cela semble fonctionner.
@Cyril_f Merci de l’aiguillage qui m’a permis de résoudre mon problème.
1 « J'aime »