Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Bonjour à tous, alors voilà, ce matin j'ai pour mission de modifier (considérons) 1 seul attribut nommé toto, qui se retrouve sur plusieurs blocs différents (noms) ; la valeur à entrer est la même pour tous les blocs. Et comme je travaille habituellement sur une station CAO (avec des traitement auto etcc), je suis devenu très flemmar ! Ma question : Est-il possible de faire cette modification "d'un seul coup" (via AutoCAD, un lisp etcc) ou bien est-ce que je dois me taper tous les blocs un à un ^^ Merci.[Edité le 9/7/2009 par SAAIDI][Edité le 9/7/2009 par SAAIDI][Edité le 9/7/2009 par SAAIDI][Edité le 9/7/2009 par SAAIDI][Edité le 9/7/2009 par SAAIDI] [Edité le 9/7/2009 par SAAIDI]
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Salut, Je sais que tu n'aimes pas trop les "programmes faits maison", mais quoi d'autre pour répondre à tes demandes ? Regarde sur cette page (bonne maison), tu devrais trouver ton bonheur. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Je connais cette grande liste, c'est vrai que j'aurai déja dù commencer par là. Je vais tester MAT et PAT Merci
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Le Lisp MAT fonctionne très bien sur un bloc unique qui apparait plusieurs fois dans le dessin. En fait, il me faudrait l'équivalent du Mat avec le choix de plusieurs blocs (noms différents) qui ont le même nom d'attribut. (valeur à entrer identique pour tous les blocs) :( [Edité le 9/7/2009 par SAAIDI]
lili2006 Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Bonjour à toutes et tous, Alors dans ce cas, c'est le bon vieux "SSATT" de (gile) (toujours fait "maison") et cette fois, c'est sur cette page,... Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Bonjour à toutes et tous, Alors dans ce cas, c'est le bon vieux "SSATT" de (gile) (toujours fait "maison") et cette fois, c'est sur cette page,... Et non, ssatt filtre sur le nom du bloc et la valeur d'attribut. S'il faut sélectionner tous les blocs ayant un attribut dont l'étiquette est identique à l'attribut source, je propose sstag : EDIT : réparé une erreur de syntaxe (defun c:sstag (/ doc att elst tag val name ss1 ss2) (vl-load-com) (and (setq doc (vla-get-ActiveDocument (vlax-get-acad-object))) (setq att (car (nentsel "\nSélectionnez l'attribut source: "))) (setq att (vlax-ename->vla-object att)) (= (vla-get-ObjectName att) "AcDbAttribute") (setq tag (vla-get-TagString att) ss2 (ssadd) ) (princ "\nSélectionnez les blocs ou : ") (or (ssget (list '(0 . "INSERT") '(66 . 1) ) ) (ssget "_X" (list '(0 . "INSERT") '(66 . 1) ) ) ) (vlax-for blk (setq ss1 (vla-get-ActiveSelectionSet doc)) (foreach a (vlax-invoke blk 'GetAttributes) (if (= (vla-get-TagString a) tag) (ssadd (vlax-vla-object->ename blk) ss2) T ) ) ) (not (vla-delete ss1)) (sssetfirst nil ss2) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 sstag. A partir de là, qu'est-ce que je dois faire ? Merci de votre aide
lili2006 Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Re, Autant (au temps ?) pour moi ! Une fois filtré, tu vas dans les propriétés, non ? Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 J'ai pas compris depuis la proposition sstag... sstag n'est pas intégré dans la routine lisp. Je suis plus là <acronym class=dict title=
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Tu charges sstag.Tu lances sstag.Tu sélectionnes un attribut source.Tu sélectionnes les blocs à modifier ou tu valides pour tous les bloc.Tu obtiens une sélection filtrée par l'étiquette du bloc source.Tu changes la valeur de l'attribut dans la palette des propriétés. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Où puis-je trouver sstag, il n'apparait pas dans la liste (sauf erreur de ma part) et il n'est pas intégré à la routine "spéciales selections" Merci [Edité le 9/7/2009 par SAAIDI] [Edité le 9/7/2009 par SAAIDI]
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Juste au dessus (réponse 5) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 il n y a apparement pas dans cette liste un lisp sstag
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Non, il n'est pas dans la liste.Il est ici même, dans ce sujet (réponse 5), écrit pour toi, à la maison, à 8 h 22. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Je ne sais pas quoi faire de ce bout de programme. Je suis pas créateur de lisp ^^
lecrabe Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Hello Gilles Desole mais ton SSTAG provoque l'erreur :Commande: _appload SSTAG.lsp correctement chargé(s)Commande: ; erreur: erreur de syntaxe Aussi bien sous MAP 2010 que sous MAP 2006 ! Donc soit j'ai loupé le copier-collersoit le BBCode "pollue" ton codesoit il y a une vraie erreur dans ton code Le Decapode Autodesk Expert Elite Team
thry0 Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Bjr à tous, A priori une erreur de syntaxe s'est glissé dans le lispA voir ...
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Re, J'ai réparé l'erreur de syntaxe. SAAIDI,Tu peux voir ce sujet Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lecrabe Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Hello Gilles Merci pour la correction mais j'ai encore un problème "plus vicieux" J'ai un joli dessin avec de multiples blocs qui ont plus ou moins les mêmes noms d'attributs dont bien sur au moins UN attribut avec le MEME nom Mais, mais, les attributs ne viennent pas du tout dans le même ordre et dans ce cas, la case de dialogue des propriétés sur les attributs reste vide !! :o Donc impossible, de voir et de modifier la valeur Si bien sur je sélectionne N blocs de nom identique, ca marche ! Donc soit je suis nul, soit il faut simplement poser la question de la valeur de l'attribut sur la ligne de commande et écraser l'attribut concerné de tous les blocs !(sans passer par la case de dialogue des propriétés) Le Decapode "testeur & chiant" Autodesk Expert Elite Team
(gile) Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 ça marche pas Les réponses limite désobligeantes, c'est une seconde nature chez toi ?... Sinon, voilà du "sur mesure" : (defun c:MODATT-TAG (/ att tag val) (vl-load-com) (and (setq att (car (nentsel "\nSélectionnez un attribut source: "))) (setq att (vlax-ename->vla-object att)) (= (= (vla-get-ObjectName att) "AcDbAttribute")) (setq tag (vla-get-TagString att)) (setq val (getstring T (strcat "\Entrez la nouvelle valeur pour les attrubuts \"" tag "\": " ) ) ) (princ "\nSélectionnez les blocs ou : ") (or (ssget (list '(0 . "INSERT") '(66 . 1) ) ) (ssget "_X" (list '(0 . "INSERT") '(66 . 1) ) ) ) (vlax-for blk (setq ss (vla-get-ActiveSelectionSet (vla-get-ActiveDocument (vlax-get-acad-object)) ) ) (foreach a (vlax-invoke blk 'GetAttributes) (if (= (vla-get-TagString a) tag) (vla-put-TextString a val) T ) ) ) (not (vla-delete ss)) ) (princ) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Invité SAAIDI Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 J'ai demandé un lisp (fichier d'extension .lsp) dans le message n° 1 Je sais pas quoi faire de ce charabia. Merci quand même
lecrabe Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Hello Gilles Un grand Merci comme d'habitude ! :) Cela marche Nickel-Chrome sur mon MAP 3D 2006 ! Je n'ai pas testé sur d'autres versions mais j'ai confiance :D Le Decapode "testeur satisfait" Autodesk Expert Elite Team
Patrick_35 Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Bonjour Je propose une solution plus simple qu'avec un lisp (c'est Rebcao qui va être content ;) ) Tu fais ctrl+choix de(s) l'attribut(s) puis tu vas dans les propriétés (ctrl+1) et tu changes la valeur. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 9 juillet 2009 Posté(e) le 9 juillet 2009 Hello NON, cela ne marche pas si on sélectionne des blocs différents !(Ayant de multiples attributs dont UN est commun bien sur)Voir ma réponse de 10h20 avec la routine de Gilles ... :casstet: Par contre cela fonctionne si on sélectionne N blocs de noms identiques Le Decapode "tétu" Autodesk Expert Elite Team
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