Aller au contenu

Commande GESTATTB


Messages recommandés

Posté(e)

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

Posté(e)

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]

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Parce 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]

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour, Serait-il possible que vous me fassiez le lisp avec la totale selection de inversé ou reflété, plus fenetre. merci

Posté(e)

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

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é