ya2 Posté(e) le 17 octobre 2008 Posté(e) le 17 octobre 2008 Bonjour comment appliquer une modification à certains blocs de meme nom, exemple refléter un attribut de bloc, je souhaiterai selectionner 10 bloc sur les15 qui sont sur mon dessin par exemple qui ont le meme nom de bloc.Merci
Patrick_35 Posté(e) le 17 octobre 2008 Posté(e) le 17 octobre 2008 Salut Un vieux sujet @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ya2 Posté(e) le 17 octobre 2008 Auteur Posté(e) le 17 octobre 2008 non ce n'est vraiement ce que je cherche, il me faut pouvoir executer un refelet de mon attribut exemple je me retrouve avec un attribut "TL-1-L000" mais ecrit en inversé "000...." et je souhaiterai les remettre dans le bon sens, donc décoché la case inversé ou reflété dans GSTATTB et ceux pour certains blocs que je selectionne. Donc admettons que j'ai 10 blocs identique XY et que je ne veux en changer que 5 car la commande GESTATTB me permet de le faire mais pour tous les blocs et j'en ai beaucoup.Merci [Edité le 17/10/2008 par ya2]
Patrick_35 Posté(e) le 17 octobre 2008 Posté(e) le 17 octobre 2008 Tu avais cité comme exemple. Donc, un bout de code pour refléter les attributs. (defun c:refatt(/ ent sel) (vl-load-com) (while (setq sel (nentsel)) (and (setq ent (vlax-ename->vla-object (car sel))) (eq (vla-get-objectname ent) "AcDbAttribute") (if (eq (vla-get-backward ent) :vlax-true) (vla-put-backward ent :vlax-false) (vla-put-backward ent :vlax-true) ) ) ) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ya2 Posté(e) le 17 octobre 2008 Auteur Posté(e) le 17 octobre 2008 ok g taper refatt et ca me permet de refleter et pour inverser qu'elle est la commande? svpMerci
Patrick_35 Posté(e) le 17 octobre 2008 Posté(e) le 17 octobre 2008 Re, Donc, avec l'inversion. (defun c:refatt(/ def ent sel) (vl-load-com) (setq sel T) (while sel (initget "Reflété Inversé") (setq sel (nentsel (strcat "\n Selection de l'attribut [Reflété/Inversé] <" (if def "Inversé" "Reflété" ) "> : " ) ) ) (cond ((eq sel "Reflété") (setq def nil) ) ((eq sel "Inversé") (setq def T) ) (T (and sel (setq ent (vlax-ename->vla-object (car sel))) (eq (vla-get-objectname ent) "AcDbAttribute") (if def (if (eq (vla-get-upsidedown ent) :vlax-true) (vla-put-upsidedown ent :vlax-false) (vla-put-upsidedown ent :vlax-true) ) (if (eq (vla-get-backward ent) :vlax-true) (vla-put-backward ent :vlax-false) (vla-put-backward ent :vlax-true) ) ) ) ) ) ) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ya2 Posté(e) le 20 octobre 2008 Auteur Posté(e) le 20 octobre 2008 Merci et comment faire pour faire une fenetre qui selectionnerait plusieurs objets ou bien une selection de masse mais qui ne retiendrait que les attributs afin de pour les inversé ou refléterParce que ta commande est déja bien mais je suis obligé de cliqué sur tous les attributs que je souhaite retourner. Mais merci quand meme c'est déja super t'es un boss. <acronym class=dict title=Et pourrais tu y inclure la commande inversé et reflé en meme temps [Edité le 20/10/2008 par ya2]
Patrick_35 Posté(e) le 20 octobre 2008 Posté(e) le 20 octobre 2008 Re Alors, quelque chose de ce style. (defun c:refatt2(/ def ent sel) (vl-load-com) (while (ssget (list (cons 0 "INSERT") (cons 66 1))) (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (foreach att (vlax-invoke ent 'getattributes) (vla-put-upsidedown att :vlax-false) (vla-put-backward att :vlax-false) ) ) (vla-delete sel) ) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ya2 Posté(e) le 21 octobre 2008 Auteur Posté(e) le 21 octobre 2008 Bonjour, Serait-il possible que vous me fassiez le lisp avec la totale selection de inversé ou reflété, plus fenetre. merci
ya2 Posté(e) le 21 octobre 2008 Auteur Posté(e) le 21 octobre 2008 bizarrement ton dernier lisp ne marche plus
Patrick_35 Posté(e) le 21 octobre 2008 Posté(e) le 21 octobre 2008 Re Le dernier lisp enlevé les cases reflétée et inversée sur tous les blocs sélectionnés.Maintenant, si tu veux au cas par cas, utilise le second. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ya2 Posté(e) le 24 octobre 2008 Auteur Posté(e) le 24 octobre 2008 Bonjour, Oui mais cequ'il me faudrait c'est pouvoir créer une fenetre de selection qui me refelete tous les attributs. En faite ce sont des blocs qui ont été mirroité sans mirrtext=1 donc pas de reflet dans les attributs. Est-ce possible? Merci
Patrick_35 Posté(e) le 24 octobre 2008 Posté(e) le 24 octobre 2008 Re Bon, une dernière (defun c:refatt3(/ att cho def ent sel) (vl-load-com) (while (ssget (list (cons 0 "insert") (cons 66 1))) (setq cho nil sel nil) (while (/= cho "Fin") (initget "Reflété Inversé Fin") (while (vl-catch-all-error-p (setq cho (vl-catch-all-apply 'getkword (list (strcat "\nMode d'affichage des attributs [Reflété/Inversé/Fin] <" (if def "Inversé" "Reflété" ) "> : " ) ) ) ) ) (initget "Reflété Inversé Fin") ) (cond ((eq cho "Reflété") (setq def nil) ) ((eq cho "Inversé") (setq def T) ) ) (or (eq cho "Fin") (vlax-for ent (setq sel (vla-get-activeselectionset (vla-get-activedocument (vlax-get-acad-object)))) (foreach att (vlax-invoke ent 'getattributes) (if def (if (eq (vla-get-upsidedown att) :vlax-true) (vla-put-upsidedown att :vlax-false) (vla-put-upsidedown att :vlax-true) ) (if (eq (vla-get-backward att) :vlax-true) (vla-put-backward att :vlax-false) (vla-put-backward att :vlax-true) ) ) ) ) ) ) (and sel (vla-delete sel)) ) (princ) ) @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
ya2 Posté(e) le 27 octobre 2008 Auteur Posté(e) le 27 octobre 2008 Merci beaucoup c'est exactement ce que je voulais. Vous etes un pro de chez pro.Best of the best
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