Aller au contenu

EDIT_BLOC \"X remplacé par Y\"


blade3650

Messages recommandés

Bonjour,

J'tuilise depuis peu la lisp Edit_bloc posté par gile sur ce site et je l'en remercie. Serait il possible d'en avoir une version différente au moins pour les calques. A savoir un calque X présent d'origine dans le bloc deviendrai Y. Sachant qu'une multitude de calque sont présents dans le bloc.

Merci d'avance

Bonne journée

Lien vers le commentaire
Partager sur d’autres sites

Je n'ai jamais dit que c'était impossible.

 

J'ai juste voulu dire que Edit_bloc c'est plus de 950 lignes de code qui définissent un programme, à mon sens, cohérent et fiable et que je n'ai pas envie d'y ajouter des fonctions pour répondre à des demandes spécifiques.

Mais le code source est disponible, libre à chacun de le modifier.

 

Sinon, un petit truc vite fait qui devrait répondre à ta demande :

 

(defun c:chgblklayer (/ source target layer lock)
 (vl-load-com)
 (while (not (and
	(setq source (getstring "\nSpécifiez le calque source: "))
	(tblsearch "LAYER" source)
      )
 )
   (princ (strcat "\nLe calque '" source "' n'existe pas"))
 )
 (while (not (and
	(setq target (getstring "\nSpécifiez le calque cible: "))
	(tblsearch "LAYER" target)
      )
 )
   (princ (strcat "\nLe calque '" target "' n'existe pas"))
 )
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))))
 (and
   (= (setq lock (vla-get-Lock (setq layer (vla-item (vla-get-Layers *acdoc*) source))))
      :vlax-true
   )
   (vla-put-Lock layer :vlax-false)
 )
 (vlax-for blk	(vla-get-Blocks *acdoc*)
   (if	(and
  (= (vla-get-IsXref blk) :vlax-false)
  (not (wcmatch (vla-get-Name blk) "`**_Space*,*|*"))
)
     (vlax-for	obj blk
(if (= (strcase (vla-get-Layer obj)) (strcase source))
  (vla-put-Layer obj target)
)
     )
   )
 )
 (and lock (vla-put-Lock layer :vlax-true))
 (vla-regen *acdoc* acAllViewports)
 (princ)
)

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

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é