Aller au contenu

renommer une partie de bloc déjà implanter


zebino

Messages recommandés

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

Lien vers le commentaire
Partager sur d’autres sites

Coucou

 

Si tu es enquiquiné avec les lisp et une demande aussi spécifique

Tu peux les isoler

Les copier-coller dans un fichier vierge

Dans ce nouveau fichier renommer tes blocs

Copier-coller le tout dans l'ancien fichier.

 

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

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é.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à vous 2,

 

Coucou

 

Si tu es enquiquiné avec les lisp et une demande aussi spécifique

Tu peux les isoler

Les copier-coller dans un fichier vierge

Dans ce nouveau fichier renommer tes blocs

Copier-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

Lien vers le commentaire
Partager sur d’autres sites

[...] 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

Lien vers le commentaire
Partager sur d’autres sites

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+C

Pour aller enfin dans l'autre fichier (Ctrl+Tab) et coller au point 0,0

Ca 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

 

./__\.
(.°=°.)
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

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 different

apres 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)
)

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité