JMBZ38 Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 Bonsoir à tous, Je suis à la recherche d'une méthode, Lisp ou script pour remplacer un bloc dans plusieurs fichiers. Je m'explique : J'ai 250 fichiers dans lesquels le cartouche (bloc "CART_01" avec attributs) n'est plus à jour. J'ai donc récupérer ce cartouche et fait les modifications demandées et sauvé en "CART_01". J'insère "CART_01" dans un de mes fichiers, AutoCAD me dit que ce bloc existe déjà et me demande si je veux le remplacer. Je réponds que oui et le tour est joué, mon dessin a bien le nouveau cartouche, les attributs sont bien renseignés et je passe au fichier suivant ... Compte tenu de ce travail répétitif, je me disais qu'il devait bien exister un moyen d'effectuer cette opération de façon automatique. Alors merci pour les infos !!
Steven Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 Salut.Si j'ai bien compris, tu souhaites changer les attributs du cartouche sur plusieurs fichiers en même temps. C'est bien ça?Si c'est le cas, il existe le lisp PAT de Patrick_35 qui te permettra de changer les attributs d'un bloc sur plusieurs fichies en même temps sans devoir les ouvrir.Bonne soirée. Steven________________________________________ Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD. Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD. En rêve; AutoCAD sous Linux.
bryce Posté(e) le 18 novembre 2011 Posté(e) le 18 novembre 2011 Bonjour, D'après ce que je comprends, je suppose que les modifs ne concernent pas les attributs, mais plutôt la géométrie du bloc (sans quoi une simple redéfinition du bloc ne suffirait pas à faire la mise à jour).A mon avis, le plus simple serait de passer par un script. Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 19 novembre 2011 Auteur Posté(e) le 19 novembre 2011 En effet ce n'est pas une simple mise à jour d'attributs. Pour cela j'utilise le super Lisp "Pat".Dans mon cas il s'agit bien de modifier le contenu du cartouche ne faisant pas appel à des attributs (géométrie, organisation générale,...).L'objectif est donc bien d'automatiser une insertion et remplacement de bloc sur les fichiers d'un répertoire complet.
JMBZ38 Posté(e) le 20 novembre 2011 Auteur Posté(e) le 20 novembre 2011 Quelqu'un a une petite idée sur le contenu de ce script ?? J'en ai écrit voici quelques années lors d'une formation, et j'avoue être un peu démuni !! Merci beaucoup
bryce Posté(e) le 20 novembre 2011 Posté(e) le 20 novembre 2011 Bonsoir, Probablement quelque chose comme ceci:_-insert nomdubloc_à_remplacer=nouveaubloc.dwg _s 1 0,0 0 _erase _l (ligne vide) Pour que AutoCAD puisse trouver nouveaubloc.dwg, le fichier devra se trouver dans un chemin de support (dans le même dossier que les dessins à traiter, dans un chemin de recherche d'AutoCAD...).Tu peux aussi indiquer un chemin complet (C:\mes_blocs\nouveaubloc.dwg), s'il ne contient pas d'espaces. Pour générer le script, tu peux utiliser le bien connu SuperAutoScript de Caderix. Si tu veux, tu peux aussi tester Sequence, que je suis en train de mettre au point.Dans ce cas, tu pourras dans le 2e onglet importer le fichier remplacer_bloc.seq pour récupérer la séquence de commandes toute faite. ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 21 novembre 2011 Auteur Posté(e) le 21 novembre 2011 Merci pour ces infos. J'ai un peu galéré, mais le script à fonctionné. En voici un extrait.la série de retour ligne correspond à des attributs. _open chemin\xx.dwg _-insert cart1=chemin\Cart2.dwg 0,0 1 1 0 _erase _l zoom et projectname toto _qsave fermer Connaissez-vous un moyen pour faire une sélection par type d'objet (seulement les rouge pour les basculer dans un calque spécifique) et ceci toujours dans un script ? Faut-il plutôt passer par un lisp ? CMDDIA n'a pas d'effet sur la commande filter.
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Bonjour, Pour les attributs, tu aurais pu mettre ATTREQ à 0 avant de lancer le script pour éviter d'avoir à ajouter des lignes vides. ;)Pour info, tu as utilisé quel logiciel pour créer ton script ? Concernant la sélection, on ne peut pas désactiver la boîte de dialogue des commandes FILTER ou Sélection rapide.Il faut donc passer par du Lisp, sachant qu'on peut très bien utiliser du Lisp dans un script (à condition bien sûr d'avoir un AutoCAD complet). Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 21 novembre 2011 Auteur Posté(e) le 21 novembre 2011 Je ne connaissais pas ATTREQ, merci. pour la rédactioon du script, j'ai utilisé Notepad...
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Pour taper les chemins des 250 fichiers et répéter 250 fois les commandes ? :unsure: Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 21 novembre 2011 Auteur Posté(e) le 21 novembre 2011 J'ai d'abord fait un "dir/B" pour récupérer dans un fichier texte la liste des fichiers en format abrégé, puis testé le script sur 1 fichier de la liste. Le plus long a été de faire les copié/collé ! J'ai 3 fichier script pour éviter de m'embrouiller !!
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Le plus long a été de faire les copié/collé !Tu m'étonnes ! :D Tu aurais gagné beaucoup de temps en utilisant SAS ou Sequence... ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 21 novembre 2011 Auteur Posté(e) le 21 novembre 2011 Tu m'étonnes ! :D Tu aurais gagné beaucoup de temps en utilisant SAS ou Sequence... ;) "Séquence" semble en effet adapté à mon besoin. Un lien vers SAS ?? Je risque d'avoir de nouveau ce type d'opérations à faire, je prends les devants. En tout cas merci beaucoup pour cette aide précieuse.
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Sur le site de Caderix:http://www.caderix.com/crbst_2.html Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Patrick_35 Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Tu m'étonnes ! :D Tu aurais gagné beaucoup de temps en utilisant SAS ou Sequence... ;)Salut Je tiens le pari, pour 250,3000 ou 10000 fichiers, le même temps de saisie, même avec des sous-répertoires ;) Il suffit, comme l'indique JMBZ38, d'utiliser la commande ms-dos dir avec les options /s et /b (voir /on pour les puristes)Ensuite, avec un éditeur de texte, de faire deux rechercher/remplacer pour obtenir le script souhaitéLe 1er en remplaçant le C:\ (par exemple) avec _open C:\Le second en remplaçant le .dwg par .dwg et ma/mes commandes qui suive(nt) Une autre solution est d'utiliser Excel, d'ouvrir le fichier texte (créé avec la commande dir) et d'utiliser la formule CONCATENER puis de sauvegarder au format texte @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Je sais tout ça, j'ai même déjà posté ici des vidéos pour faire des scripts avec Excel. ;)Mais ça prend forcément plus de temps et de réflexion pour écrire la formule de concaténation, avec dans certains cas l'obligation d'insérer un saut de ligne avec la fonction CHAR(), etc.Quand au copier-coller pour remplacer le .dwg par une chaîne, j'ai un gros doute si celle-ci contient des sauts de ligne (en tout cas avec le Notepad)... :unsure: J'ai également inclus dans Sequence la possibilité d'utiliser des variables et même des fonctions DIESEL (sans interactivité avec AutoCAD bien sûr), pour réussir à faire des choses impossibles avec SAS ou un éditeur de texte. Dans tous les cas, même si toi tu n'aurais pas forcément gagné beaucoup de temps, c'est un fait que JMBZ38 lui en aurait gagné beaucoup, en évitant des centaines de copier-coller ! ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Patrick_35 Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Mais ça prend forcément plus de temps et de réflexion pour écrire la formule de concaténation, avec dans certains cas l'obligation d'insérer un saut de ligne avec la fonction CHAR(), etc.Perso, je fais un lisp que je teste sur un dessin et qu'ensuite j'appelle depuis le script.C'est pour moi le plus simple Quand au copier-coller pour remplacer le .dwg par une chaîne, j'ai un gros doute si celle-ci contient des sauts de ligne (en tout cas avec le Notepad)... :unsure:Et le bon et vieux edit du ms-dos ;) J'ai également inclus dans Sequence la possibilité d'utiliser des variables et même des fonctions DIESEL (sans interactivité avec AutoCAD bien sûr), pour réussir à faire des choses impossibles avec SAS ou un éditeur de texte.Je suis curieux de voir ton prog, surtout si on peux jouer avec des variables et des expressions diesels (et aussi celles des express-tools comme rtext, xref, etc... ?) Dans tous les cas, même si toi tu n'aurais pas forcément gagné beaucoup de temps, c'est un fait que JMBZ38 lui en aurait gagné beaucoup, en évitant des centaines de copier-coller ! ;)C'est le principal @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Perso, je fais un lisp que je teste sur un dessin et qu'ensuite j'appelle depuis le script.C'est pour moi le plus simple Il faut penser à ceux qui ont LT aussi... ;)Par la force des choses, ce sont souvent eux qui ont besoin de faire appel aux scripts, faute de lisp justement. Je suis curieux de voir ton prog, surtout si on peux jouer avec des variables et des expressions diesels (et aussi celles des express-tools comme rtext, xref, etc... ?) Non, il n'y a que les fonctions Diesel standard, et forcément elles sont évaluées à la création du script et non durant son exécution.Ça limite donc l'intérêt, mais ça peut quand même servir.Le lien pour le télécharger était dans un message précédent, le revoici:Sequence Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
Patrick_35 Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Salut Ca a l'air pal mal, mais pas mal du tout ton prog :DJ'ai vite regardé ce qu'il donnait et la 1er impression est très bonneJ'ai quand même remarqué qu tu faisais une sauvegarde à chaque fois, c'est vrai dans 95% des cas.Mais dans les 5% restant, tu peux par exemple lancer une impression et ne pas vouloir sauvegarder afin de conserver la date de la dernière modification du/des dessin(s)On peut manuellement enlever la sauvegarde, mais sur 500 fichiers, cela devient vite lourd.J'ai remarqué aussi dans la fenêtre du script, que les options du clic droit sont désactivéesDe plus, on n'a pas la possibilité de faire une recherche, voir de remplacer. Voila un 1er jet en attendant de travailler un peu plus avec ton outil @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
bryce Posté(e) le 21 novembre 2011 Posté(e) le 21 novembre 2011 Merci du retour ! :) Dans le 2e onglet, il suffit de décocher la case "Ouvrir" pour gérer soi même l'ouverture des fichiers (ça permet d'utiliser la commande _recover à la place par ex.).De même, en décochant la case "Sauver et fermer", c'est à l'utilisateur de gérer la fermeture du fichier, en enregistrant ou non. ;) Le 3e onglet montre le script pour info, on peut faire des modifs mais elles seront perdues si quoi que ce soit provoque la "régénération" du script (ajout d'un fichier, modif de la séquence de commandes, etc.).Je pense donc qu'il vaut mieux que je n'ajoute pas trop de fonctions qui pousseraient à bidouiller le script dans cet onglet...Normalement je ne vois pas ce qui pourrait nécessiter de faire un rechercher remplacer, puisqu'il suffit de modifier la liste des fichiers (1er onglet) ou la séquence de commandes pour que le script se mette à jour dynamiquement. Pour les options du clic droit, effectivement il faut que je corrige, mais les raccourcis clavier fonctionnent. Mais si tu penses à des cas qui pourraient nécessiter des améliorations, je suis tout ouïe ! :) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 22 novembre 2011 Auteur Posté(e) le 22 novembre 2011 Les programmes SAS et Séquence sont vraiment incontournables !!En association avec le super Lisp "PAT" pour modifier les attributs sur un répertoire complet les AutoCADiens disposent d'outils très puissants. Cependant je reste surpris qu'il n'existe pas une commande permettant de remplacer un bloc par un autre sur plusieurs fichiers sans passer par un script. C'est une manip assez courante lorsqu'on édite des cahiers des plans (schéma électriques, serrurerie ...).
bryce Posté(e) le 22 novembre 2011 Posté(e) le 22 novembre 2011 Bonjour, Dans le cas du cartouche sur un cahier de plans, une solution pour ne pas avoir à utiliser de scripts est de l'insérer en XRef plutôt qu'en bloc.Il suffit alors de modifier la XRef pour que le cartouche soit à jour sur tous les folios. ;) Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 22 novembre 2011 Auteur Posté(e) le 22 novembre 2011 OK pour tous ce qui concerne les symboles, mais comment gérer les attributs d'un bloc en XREF (je pense notamment au cartouche) ?
bryce Posté(e) le 22 novembre 2011 Posté(e) le 22 novembre 2011 La question n'est pas très claire, mais voilà la démarche en gros:- on insère le bloc cartouche dans un dessin vide, et on renseigne les infos du cartouche qui sont communes à tous les folios- on insère ensuite ce fichier en XRef dans tous les folios- quand il faut modifier une info commune, on ouvre ce fichier et on édite les attributs du cartouche- pour les infos du cartouche qui sont spécifiques à chaque folio, on peutt dans chaque folio les ajouter sous la forme d'un bloc (constitué uniquement d'attributs) qui se superpose au cartouche en XRef (ou éventuellement en tant que textes). Brice, formateur AutoCAD - Inventor - SolidWorks - ZWCad - DraftSight - SketchUp indépendant
JMBZ38 Posté(e) le 22 novembre 2011 Auteur Posté(e) le 22 novembre 2011 Voila qui éclaircira un peu : Jusqu'à présent mes cartouches étaient constitués d'un seul fichier avec des attributs d'où mes interrogations.Ceci explique le besoin de remplacer le blocs dans tous mes fichiers en cas de modif. Je testerai ta solution pour la suite, merci du coup de main.
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant