Existe t-il un maoyen de supprimer les propriétés personalisés d'un fichier pièce et d'en remettre des nouvelles de façon automatique. Nous avons un certain nombre de fichier ne possédant pas les propriété que nous utilisons (ex fichier de profil pour le mécano soudé). Le but est de remttre rapîdement les nouvelles propriétés dans ces fichiers.
Nous évoluons sous SW 2016 version Prenium - Nous ne possédons aps les outils MyCad.
Oui cela permet de mettre à jour des propriétés existante ou d'en créer des nouvelle mais il n'y pas possibilité de supprimer des propriétés existant afin de ne pas se retrouver avec une liste de propriété importante et des champs inutiles. Comment peut-on faire pour supprimer les propriétés existantes ?
Tu pourras utiliser le planificateur de tâches pour créer et remplacer tes propriétés, et si tu utilises l'enregistreur de macro pour supprimer les propriétés dont dû n'a pas besoin. Tu pourras aussi lancer celle-ci avec le planificateur et choisir les fichiers en questions.
Dim swModel As SldWorks.ModelDoc2
Dim swModelDocExt As SldWorks.ModelDocExtension
Dim config As SldWorks.Configuration
Dim cusPropMgr As SldWorks.CustomPropertyManager
Dim lRetVal As Long
Dim ValOut As String
Dim ResolvedValOut As String
Dim wasResolved As Boolean
Dim nNbrProps As Long
Dim vPropNames As Variant
Dim vPropTypes As Variant
Dim vPropValues As Variant
Dim resolved As Variant
Dim custPropType As Long
Dim K As Long
Dim NomProperty As String
Set cusPropMgr = swModelDocExt.CustomPropertyManager("")
nNbrProps = cusPropMgr.Count
vPropNames = cusPropMgr.GetNames
For K = 0 To nNbrProps - 1
cusPropMgr.Get2 vPropNames(K), ValOut, ResolvedValOut
custPropType = cusPropMgr.GetType2(vPropNames(K))
If vPropNames(K) = "Description" Then
NomProperty = ResolvedValOut
End If
If vPropNames(K) = "Dessinateur" Then
PropMgr.Delete(vPropNames(K))
End If
Next K
les lignes :
If vPropNames(K) = "Description" Then NomProperty = ResolvedValOut End If
permettent de relever la valeur de la propriété personnalisée "Description".
Les lignes :
If vPropNames(K) = "Dessinateur" Then PropMgr.Delete(vPropNames(K)) End If
permettent de supprimer la propriété personnalisée "Dessinateur".
Ok, je vois le principe mais au niveau de la macro je ne suis pas assez de connaisnce en VBA, pour la créer, j'ai essayer d'enregister une macro aecla supression des propriétés mais cela ne fonctionne pas ... la macro est quasi "vide"
Parfait, jsute une derniière chose au niveau du planificateur de tâches, je lance la macro avec "exécuter la tâche personnalisé" mais peut-on cibler tel ou tel dossier, je veux d'abord faire un test avec une partie des fichiers.
Ok, pour lancer la création de nouvelle propriété sur un dossier, mais pour utiliser la macro de suppression j'utilise "exécuter la tâche" ( voir image jointe) il n'ya pas de champs pour pointer un dossier en particulier ...
Je ne connais pas suffisament cette fonctionnalité mais rien ne t'empêche de gérer ça dans ta macro en chargeant un fichier contenant la liste de tes 3D à traiter. Il faut alors que ta macro ouvre chaque fichier dans SW, supprime les propriétés personnalisées puis l'enregistre avant de passer au suivant.
Merci pour votre retour et vos explication, mais je manque vraiment de compétences pour réaliser ce type de macro ... je préfère donc faire simple ... lancer la macro depuis le planificateur de tâche en spécifiant un dossier particulier, cela est possible ? dans un second temps j'ajouterai les nouvelles propriété via le planificateur de tâches (cette seconde partie est ok pour moi)
Je ne sais pas si cela est possible mais à mon avis il faudra quand même que la macro analyse tous les fichiers présents dans le dossier qui serait passé en argument par le planificateur de tâche.
Pour ce type d'opération à faire je ne suis pas certain qu'il y est vraiment besoin du planificateur de tache (celui-ci ne servant qu'à éxécuter la macro à un horaire décalé).
Ok je comprends d. roger mais "ac cobra 427" indique que l'on peut lancer la macro depuis le planificateur de tâches ... ac cobra 427 peux tu m'indique la démarche à suivre et comment selectioner seulement les fichiers souhaité (ok pour les proriété personnalisés, Nok poour lancer la macro sur certins fichiers)
Dsl je n'ai jamais eu besoin du planificateur de tâches, je pensais que ça fonctionnait car ils parlent de pouvoir lancer une macro... Au pire des cas si vous n'avez jamais eu les outils Mycad vous pouvez télécharger et tester pendant 1 mois je crois...
Voir screenshots.. Exécuter la tâche personnalisée.
Autrement quel est le code pour VBA pour créer une ligne de propiété et associer une valeur, je pensais le faire avec le planificateur de têche mais cela ne fonctionne pas très bien il n'accepte pas les champs vide (ex la description sera rempli manuellement après par le dessinateur)