zebino Posté(e) le 11 octobre 2016 Posté(e) le 11 octobre 2016 Bonjour, J'ai un plan avec un même bloc implanté plusieurs fois, or je veux maintenant modifier le nom du bloc pour la moitié des blocs. Par exemple, j'ai deux niveaux sur un fichier autocad et je veux que mon bloc "WC" qui est implanté sur les deux étages prenne le nom de "WC-RDC" pour le niveau Rdc et "WC-R01" pour le R+1. Comment est ce que je peux faire? Idée de lisp : "Sélectionner les blocs à modifier" => RenameBlock (lisp Lee Mac) => "Taper nouveau nom" Merci d'avance, Zebino
didier Posté(e) le 11 octobre 2016 Posté(e) le 11 octobre 2016 Coucou Si tu es enquiquiné avec les lisp et une demande aussi spécifiqueTu peux les isolerLes copier-coller dans un fichier viergeDans ce nouveau fichier renommer tes blocsCopier-coller le tout dans l'ancien fichier. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
fauxsuisse Posté(e) le 11 octobre 2016 Posté(e) le 11 octobre 2016 Tu peux aussi le lisp de Patrick_35 pour remplacer les blocs sélectionné.Tu commences par faire deux nouveaux blocs "WC-RDC" et WC-R01" que tu implantes dans ton dessin, puis tu utilises le lisp pour sélectionner les blocs que tu veux remplacer puis choisi avec quel bloc tu veux les remplacer et le tour est joué.
fauxsuisse Posté(e) le 11 octobre 2016 Posté(e) le 11 octobre 2016 oups j'ai oublié de joindre le lisp
zebino Posté(e) le 11 octobre 2016 Auteur Posté(e) le 11 octobre 2016 Bonjour à vous 2, Coucou Si tu es enquiquiné avec les lisp et une demande aussi spécifiqueTu peux les isolerLes copier-coller dans un fichier viergeDans ce nouveau fichier renommer tes blocsCopier-coller le tout dans l'ancien fichier. Amicalement Effectivement, j'ai pensé à cette manipulation mais cela me fait beaucoup de manipulations et en plus entre deux fichiers. Tu peux aussi le lisp de Patrick_35 pour remplacer les blocs sélectionné.Tu commences par faire deux nouveaux blocs "WC-RDC" et WC-R01" que tu implantes dans ton dessin, puis tu utilises le lisp pour sélectionner les blocs que tu veux remplacer puis choisi avec quel bloc tu veux les remplacer et le tour est joué. Je n'avais pas pensé à cela à que j'utilise ce lisp également. Je vais voir comment je peux l'utiliser mais ce qui aurait été plus simple si un jour quelqu'un veut créer ce lisp (je n'ai pas de connaissances dans ce langage) c'est de faire un sélection puis de renommer le bloc juste sur les blocs sélectionnés :) Merci à vous je teste la deuxième méthode et sinon je ferai ce que Didier a dit.. Zebino
(gile) Posté(e) le 11 octobre 2016 Posté(e) le 11 octobre 2016 [...] mais ce qui aurait été plus simple si un jour quelqu'un veut créer ce lisp (je n'ai pas de connaissances dans ce langage) c'est de faire un sélection puis de renommer le bloc juste sur les blocs sélectionnés :) Ce qu'on appelle communément des "blocs" ne sont en fait que des références à une définition de bloc. Le nom d'un bloc, comme les entités qui le composent, ne peut être différent de celui de sa définition.La commande RENOMMER agit sur la définition du bloc (et par voie de conséquence, sur toutes les références insérées).Donc pour avoir des références de bloc avec des noms différents, il faut qu'il y ait plusieurs définitions de bloc avec des noms différents (même si elles contiennent les mêmes entités). Dans ton cas, il est donc incontournable de créer une autre définition du bloc avec un nom différent et de remplacer les blocs sélectionnés par des références à cette nouvelle définition.Il ne s'agit pas d'un simple renommage Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Tramber Posté(e) le 11 octobre 2016 Posté(e) le 11 octobre 2016 Effectivement, j'ai pensé à cette manipulation mais cela me fait beaucoup de manipulations et en plus entre deux fichiers.Avec Ctrl+Maj+C (au point 0,0) sur ta sélection, ensuite lancer EFfacer sur celle-ci.Changer de fichier ou Ctrl+N et coller au point 0,0.Faire le renommage Ctrl+A et Ctrl+Maj+CPour aller enfin dans l'autre fichier (Ctrl+Tab) et coller au point 0,0Ca a l'air long mais en réalité, la méthode de Didier, c'est super rapide.Le plus long et fastidieux est de sélectionner les blocs à changer et on n'y échappe pas... Bureau d'études dessin. Spécialiste Escaliers Développement - Formation ./__\. (.°=°.)
zebino Posté(e) le 11 octobre 2016 Auteur Posté(e) le 11 octobre 2016 Bon ok, j'ai utilisé cette méthode et ça bien fait ce que je voulais au final. Merci pour vos réponses. Zebino
PHILPHIL Posté(e) le 25 octobre 2016 Posté(e) le 25 octobre 2016 bonjour pour info Gile m'avait crée ce lisp il donne un nouveau nom a un bloc deja implantéen gros ca fait un doublon de bloc mais avec un nom differentapres a toi de faire la mise a jour de ce nouveau bloc merci Gile a+ phil ;; NBL -09/06/16- version 2.3 ;; gile ;; Crée un nouvelle définition de bloc semblable à celle de la référence sélectionnée. ;; La référence sélectionnée est remplacée par une référence de la nouvelle définition ;; qui conserve ses propriétés. (defun c:nbl (/ old-ref new-name acdoc space blocks old-name old-block new-block obj new-ref) (vl-load-com) (while (not (and (setq old-ref (car (entsel "\nSélectionner le bloc à re-créer: "))) (= "INSERT" (cdr (assoc 0 (entget old-ref)))) ) ) (princ "\nObjet incorrect.") ) (setq old-ref (vlax-ename->vla-object old-ref) old-name (if (vlax-property-available-p old-ref 'effectivename) (vla-get-effectivename old-ref) (vla-get-name old-ref) ) ) (while (not (and (progn (setq boite "MODIFICATION DU NOM DE BLOC") (setq message "NOUVEAU NOM") (inputbox2 boite message old-name) ;;; (setq new-name ret) (snvalid (setq new-name ret)) ) (/= new-name "") (null (tblsearch "BLOCK" new-name)) ) ) (princ "\nNom incorrect.") ) (setq acdoc (vla-get-activedocument (vlax-get-acad-object)) space (if (= (getvar "CVPORT") 1) (vla-get-paperspace acdoc) (vla-get-modelspace acdoc) ) blocks (vla-get-blocks acdoc) old-block (vla-item blocks old-name) new-block (vla-add blocks (vlax-3d-point '(0 0 0)) new-name) ) (vlax-for o old-block (setq obj (cons o obj))) (vlax-invoke acdoc 'copyobjects obj new-block) (and (vlax-property-available-p old-block 'units) (vla-put-units new-block (vla-get-units old-block)) ) (setq new-ref (vla-insertblock space (vlax-3d-point '(0 0 0)) new-name (vla-get-xscalefactor old-ref) (vla-get-yscalefactor old-ref) (vla-get-zscalefactor old-ref) (vla-get-rotation old-ref) ) ) (vla-put-normal new-ref (vla-get-normal old-ref)) (vla-put-insertionpoint new-ref (vla-get-insertionpoint old-ref)) (if (= (vla-get-hasattributes old-ref) :vlax-true) (progn (setq old-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke old-ref 'getattributes)) new-att (mapcar '(lambda (att) (cons (vla-get-tagstring att) att)) (vlax-invoke new-ref 'getattributes)) ) (foreach att new-att (foreach prop (list 'alignment 'backward 'color 'fieldlength 'height 'insertionpoint 'invisible 'layer 'textstring 'linetype 'linetypescale 'lineweight 'material 'normal 'obliqueangle 'rotation 'scalefactor 'stylename 'textstring 'thickness 'truecolor 'upsidedown 'visible ) (if (vlax-property-available-p (cdr (assoc (car att) old-att)) prop) (vlax-put (cdr att) prop (vlax-get (cdr (assoc (car att) old-att)) prop)) ) ) ) ) ) (vla-delete old-ref) (princ (strcat "Le bloc \"" new-name "\" a été créé.")) (princ) ) FREELANCE Autodesk Architecture 2025 sous windows 11 64 REVIT 24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal
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