blade3650 Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 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'avanceBonne journée
(gile) Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 Salut, Edit_bloc est une routine de 'normalisation' des blocs.Pour faire ce que tu veux, tu peux utiliser l'éditeur de bloc (commande BEDIT). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
blade3650 Posté(e) le 16 novembre 2010 Auteur Posté(e) le 16 novembre 2010 Il serait donc impossible de dire à tous les calques 1 contenu dans tous les blocs de devenir calque 2 ? (sachant qu'un calque 3 4 ou 5 existe dans certain bloc)Quoi au'il en soit merci qd meme [Edité le 16/11/2010 par blade3650]
(gile) Posté(e) le 16 novembre 2010 Posté(e) le 16 novembre 2010 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
blade3650 Posté(e) le 16 novembre 2010 Auteur Posté(e) le 16 novembre 2010 Merci beaucoup ! Tout ceci va me pousser à m'y mettre aussi. Je vais aller voir dans les autres sections pour me documenter.Salutations
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