Macro - Importer block + enregistrer

Bonjour la communauté,

Merci à tous pour vos précieux conseils à travers différents posts. Ceci est mon premier message sur le forum :-)

Voici ma requête : j'ai une centaines de bloc (.SLDBLK) enregistrés individuellement sur mon PC dans le même dossier.

J'aimerai créer/lancer une macro qui 

créer une nouvelle pièce (ou insérer comme nouvelle esquisse dans un part existant)

insérer le bloc sur l'origine (mettre une échelle de bloc x4) /sur  plan de face par exemple

fermer et enregistrer la pièce (avec le même nom que le bloc encore mieux)

pour l'ensemble de mon dossier "blocs" de manière automatique 

 

Solidworks version 2020

TB connaissance SW, débutant macro

Merci à tous pour votre contribution

Cordialement

Franck / dessinateur CAO depuis 8ans

A tester sur un bloc pour voir si cela fonctionne mais voici le lien vers le sujet:

https://r1132100503382-eu1-3dswym.3dexperience.3ds.com/#community:yUw32GbYTEqKdgY7-jbZPg/iquestion:G8lFvoZCTzWDcYa61U3jaA

Et le code pour changer l'échelle mettre scl=4

Prendre la réponse de RiriFifi et tester le code (en général son code est efficace.

Si cela fonctionne bien il faudra adapter ce code sur tout les fichiers d'un répertoire, en récupérant le nom du bloc pour l'enregistrement.

Bonjour,

Pour les noob comme nous en création de macro, il y a une fonctionnalité de capture des fonctions sous SW. Tu lances l'enrgistrement, tu fais ta manipulation et SW créée automatiquement le code de ce que tu as fait à l'écran.

Avec ça tu as 90% de ta macro.

Il ne te manquera que la (les?) boucle(s) permettant de changer de fichier .sldblk ainsi que la déclaration des variables (nom de fichier d'enregistrement, sûrement quelques variables temporaires en plus..).

 

Bon courage

Merci pour vos retours !

J'ai regarder le lien sur 3dexpérience, j'ai mis à jour les données (chemin de mes fichiers et autres) mais rien ne se passe au lancement de la macro. j'ai exécuter la dite macro avec un fichier ouvert, depuis une esquisse, sans rien d'ouvert rien ne se passe... Domage

J'ai bien enregistré une macro qui fait le job à peu près pour 1 fichier.

Par contre je ne sais pas intégré une boucle et un enregistrement sous le même nom que le bloc. Y a t'il un topic concernant ces éléments, cela pourrait être une alternative à ma recherche.

Merci pour votre temps

 

Pour la macro tu as bien copier celle de RIRIFIFI? 

As tu bien créer le 2ème module class1?

Ci-joint la macro depuis une pièce sélectionnée un plan puis lancer la macro et cela fonctionne (à part que le block n'est pas fixé)

C'est à amélioré mais on s'approche.

Après vu ta demande si tu as seulement 100 block à modifié pas sûr que développer une macro qui n'existe pas soit plus rapide pour 1000 block ou plus en revanche je dis pas. 100 block =1 à 2h soit bien moins que le dev d'un macro même pour quelqu'un d'initié.


block.swp

Bonjour sbadenis,

Merci pour ton retour. Oui je pense que j'ai bien utilisé la macro de ririfififi avec class1 et module1 séparé et des données (chemin de fichier...) conforme à mes dossiers.

Merci pour ta macro mais cela ne répond pas vraiment à mon besoin. Pour ma part avec ma macro j'arrive à faire une nouvelle pièce, insérer le bloc à l'échelle enregistrer et fermer. Pour 1 modèle défini.

Il me manque l'aspect "boucle" qui automatiserait l'ouverture du block suivant et reproduire les actions.

J'ai cherché mais je coince malheureusement... Je vais passé en mode "manuel" du coup

Bonjour Franck,

Réponse peut-être un peu tardive, mais la macro jointe devrait répondre à votre problème.
Génération des pièces avec esquisse dans le plan de face, insertion à l'origine, à l'échelle 4.
3 lignes sont à modifier pour l'adapter à votre système:
- ligne 35: répertoire source des documents de blocs (avec extension"SLDBLK");
- ligne 36: répertoire destination des fichiers de pièces, au même nom que les blocs, avec extension "SLDPRT";
- ligne 40: chemin et nom du modèle de pièce par défaut de votre version de SolidWorks.

A tester sur votre PC...

Cordialement.

 


insertionbloc.swp
2 « J'aime »

Super ! Merci m.blt

j'ai néanmoins un bug lors de l'exécution, je vais essayer de comprendre ...

ligne 42

Set swSkMgr = swModel.SketchManager

je souligne que j'ai mis en place mes chemins etc...

Si quelqu'un a un idée?

Merci

 

Bonjour,

Quel est le type de l'erreur ? Celle-ci ?

Si c'est le cas, il faut vérifier que les variables Part et swModel ne sont pas vides: il suffit en mode debug de laisser le curseur au dessus de l'une de ces deux variables pour afficher son contenu.
Si elles sont égales à Nothing, c'est que l'instruction précédente Part = swApp.NewDocument... (ligne 40) ne renvoie rien, et le document SolidWorks n'est pas ouvert. D'où l'erreur au moment de créer le gestionnaire d'esquisse.
La chaine de caractères qui définit le fichier modèle est sans doute erronée, il faut vérifier, avec beaucoup de soin, qu'il existe bien, avec le chemin indiqué (sur mon fichier source il se trouve dans le dossier de SW 2018).

1 « J'aime »

WONDERFUL, tout marche à merveille à présent.

Mon template se nomme "part" et non "pièce" dans mon dossier

Un grand MERCI à tous et plus particulièrement à  m.blt