Macro - Déplacer un fichier

Bonjour,

 

je cherche un moyen de déplacer des fichiers pièces et assemblages avec mise à jour de la position des pièces dans les fichiers d'assemblage et ceci par l'intermédiaire d'une macro.

L'idéal pour moi serai de pouvoir utiliser solidworks explorer par l'intermédiaire d'une macro.

Le but étant de pouvoir archiver mes pièces et assemblages de manière automatique.

Avez vous des pistes pour réaliser une telle tâche ?

 

Merci.

 

Bonjour, il faudrait un peu plus de détails.

Vous avez des notions en programmation VBA ?

SolidWorks Explorer ne peut pas lancer de macros, il faudra passer par SolidWorks.

Pour commencer, on peut faire une macro par apprentissage d'un "enregistrer sous" d'une pièce sous SolidWorks pour voir le code. Si l'assemblage est ouvert, la pièce est remplacée dans celui ci s'il est enregistré.

Toutes les pièces d'un assemblage donné doivent être déplacées dans le même dossier ?

Merci pour la réponse.

Alors oui j'ai des notion de VBA, je sais écrire des macros solidworks qui marchent et j'utilise effectivement la technique d'enregistrement pour apprendre de nouvelle commandes.

Toutes les pièces d'un assemblage et l'assemblage lui même ne seront pas placés au même endroit dans mon archive.

Si je comprend ce que tu proposes, c'est, avec une macro :

1) Je déplace toutes mes pièces et tous mes assemblages là où je veux dans mes dossiers d'archives

2) J'ouvre toutes les pièces que je viens de mettre dans mes archives.

3) J'ouvre mon assemblage, et solidworks refait lui même tous les liens.

4) J'enregistre mon assemblage et le tour et joué.

Oui, j'ai l'impression que ça peut marcher tout ça, et c'est faisable pour moi. Ca me parait juste un peu lourd comme méthode pour les gros assemblages. C'est pour ca que je preférerai une méthode du type solidworks explorer en mode macro. 

C'est une solution, mais c'est lourd en effet, et je pensais plus à ouvrir l'assemblage avec les pièces aux anciens emplacements, puis lancer la macro pour enregistrer automatiquement aux nouveaux emplacements pour ensuite enregistrer l'assemblage à jour.

 

La question est, comment savoir quelle pièce va dans quel dossier ?

Tu as un marqueur comme une propriété personnalisée ou une partie du nom de fichier pour te l'indiquer ?

Sinon ça ne sera pas possible...

Et comme je l'ai indiqué plus haut à ma connaissance SolidWorks Explorer ne peut pas lancer de macros, il faudra passer par SolidWorks.

1 « J'aime »

Oui, je vais essayer de programmer ta méthode et voir ce que ça donne.

J'ai effectivement une propriété perso pour chacune des pièces qui me dit où je dois archiver la pièce. Savoir où je dois archiver la pièce est la partie la plus facile du travail :)

Merci bien en tout cas pour les conseils

Donc quelques pistes supplémentaires :

1) Avoir un assemblage ouvert,

2) Traverser tous les composants de celui ci, voir ce lien :

http://help.solidworks.com/2012/English/api/sldworksapi/Traverse_Assembly_at_Component_Level_Example_VB.htm

3) Ouvrir chacune des pièces (une par une avec une boucle),

3) Vérifier la propriété personnalisé par exemple pour la propriété "chemin" :

CHEMIN = SWmoddoc.GetCustomInfoValue("", "chemin")

 

4) Enregistrer-sous ta pièce (avec la macro par apprentissage que tu as faite) ou ce lien :

http://help.solidworks.com/2012/English/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IModelDocExtension~SaveAs.html

 

5) Mettre à jour ta propriété personnalisée qui indique l'endroit ou la pièce doit être enregistrée ?

6) Fermer la pièce.

7) Enregistrer l'assemblage.


PS : 8) choisir cette réponse comme la meilleure si cet algorithme te convient ;-)

J'arrive après la bataille ... et honnetement, je me demandais comment vous alliez faire pour désigner le dossier de reception des pièces. Apparement, c'est résolu avec une propriétée perso.

 

Bon parcontre, question con. Au lieu de faire de l'enregistrer sous et ouvrir toutes les pièces, pourquoi ne pas passer par une composition à emporter ?

On peut y désigner pièce par pièce le dossier d'enregistrement, le nouveau nom et ne pas perdre le lien (même joindre les 2D, mais c'est un peu plus lourd)

Du coup, vu que le dossier de réception est déjà défini pour chaque entité, ça doit être facile à mettre en place.

 

Enfin bon je dis ça, mais j'ai jamais testé. Je ne sais même pas si c'est possible à programmer. Juste une piste en passant ;)

1 « J'aime »
La composition à emporter permet aussi de modifier uniquement le chemin des pièces si on ne modifie pas l'assemblage ? Si c'est le cas, il me semble que ce n'est pas automatisable car avec une macro, on ne pourra pas cocher ou décocher les cases dans la fenêtre de la composition à emporter...
1 « J'aime »

Pour répondre à ta question, oui. Tu peux uniquement modifier le chemin des pièces si tu ne changes pas l'assemblage. pour toutes les pièces ou simplement pour certaines. Changer les noms, etc. Bref c'est assez cool (et non, je n'en suis pas fan !)

 

Parcontre, c'est effectivement la crainte que j'avais le cochage et décochage des cases.

Du coup je pensais à le contourner en lui disant de ne pas enregistrer par dessus (ou inversement) Mais ce n'est pas très propre, tu as raison.

1 « J'aime »

Oui, je viens d'essayer l'astuce de la composition à emporter, et comme vous le dites tous les deux ça ne semble pas possible avec une macro.

1 « J'aime »