Aller au contenu

HAUTEUR TEXTE ATTRIBUTS


lili2006

Messages recommandés

Bonjour à tous,

 

Tout d'abord pardonnez-moi si ce lisp existe déjà!

 

Voilà, je désirerai pouvoir changer la hauteur de texte de tous les blocs identiques insérés dans le dessin. Exemple sur l'image ci-dessous, j'ai 15 blocs avec 2 attributs : épaisseur de dalle & altitude. On voit sur le bloc de droite, le texte de l'altitude est trop petit, je voudrais qu'il soit de la taille du bloc de gauche. Aujourd'hui, je selectionne un par un mes blocs pour modifier la hauteur de texte (uniquement de l'attribut altitude !). Peut-on faire mieux ?

 

Merci d'avance.

 

<!--url{0}-->[Edité le 2/9/2007 par lili2006]

 

PS : Bien sûr, je pourrai le faire sur le bloc de base, mais celui-ci appartient à une bibliothèque et pour l'utilisation dans d'autres échelles, il à lieu de garder cette hauteur de texte. Il n'y a que à l'echelle 100 (pour les DCE), que les textes sont trop petits à l'impression. Ce phénomène est valable pour environ une tentaine de blocs, d'ou ma question,...[Edité le 2/9/2007 par lili2006][Edité le 2/9/2007 par lili2006]

 

[Edité le 2/9/2007 par lili2006]

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

pourquoi ne pas faire un bloc dynamique et faire une échelle sur l'attribut avec une table de consultation sur l'échelle de sortie du projet?

sinon, je pense qu'en VBA c'est également possible mais il faudrait connaitre le nom de l'attribut...

ATEGIE - Bureau d'Études Fluides

http://www.ategie.fr/uploads/ategie/ategie-at%C3%A9gie-bureau-%C3%A9tudes-etudes-fluides-logo-100x56.png

Exécution, Synthèse, Conception, Maîtrise d'Oeuvre, Audit, Chiffrage

www.ategie.fr

Lien vers le commentaire
Partager sur d’autres sites

Bonsoir à tous,

 

sechanbask J'ai bien pensé à faire évoluer ce genre de bloc en dynamique, mais nous en utilisons déjà pas mal surtout pour la représentation. Je reste convaincu cependant qu'il y a possibilité de faire des blocs simples et lorsque le besoin ponctuel se fait sentir , lancer une petite routine de type "cat" de Patrick_35 ou "Edit_Bloc" de (gile) . Peut-être même ces routines pourraient prévoir cette option, qui sait ?

 

Si tu veux tester en VBA, cela m'interesse aussi bien sûr, voilà le bloc décomposé :

 

<!--url{0}-->

 

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

Lien vers le commentaire
Partager sur d’autres sites

Lili2006,

 

Je cherche une solution en lisp ou VB avec un jeu de sélection. Avec battman, tous les blocs changent. Dans ton cas, c'est bien mais dans d'autres cas, c'est moins bien. Imaginons le même bloc a une échelle différente mais avec le souhait de la même hauteur de texte.

 

Mais merci à battman !

Lien vers le commentaire
Partager sur d’autres sites

Donc voilà un petit LISP pour modifier la hauteur de texte des attributs spécifiés dans les blocs sélectionnés.

 

(defun c:ht-att (/ att tag fltr ht ss n ent loop)
 (while
   (and (setq
   att (car
	 (nentsel
	   "\nSélectionnez un attribut à modifier : "
	 )
       )
 )
 (= (cdr (assoc 0 (entget att))) "ATTRIB")
   )
    (setq tag	(remove_doubles (cons (cdr (assoc 2 (entget att))) tag))
   ref	(cdr (assoc 330 (entget att)))
   fltr	(remove_doubles (cons (assoc 2 (entget ref)) fltr))
    )
    (princ (strcat "\n"
	    (itoa (length tag))
	    " attribut(s) sélectionné(s)."
    )
    )
 )
 (and
   tag
   (progn
     (initget 7)
     (setq ht (getdist "\nSpécifiez la nouvelle hauteur de texte: "))
   )
   (princ "\nSélectionnez les blocs à modifier ou : ")
   (or	(setq ss (ssget (cons '(0 . "INSERT") fltr)))
(setq ss (ssget "_X" (cons '(0 . "INSERT") fltr)))
   )
   (repeat (setq n (sslength ss))
     (setq ref	 (ssname ss (setq n (1- n)))
    ent (entget (entnext ref))
     )
     (while (= (cdr (assoc 0 ent)) "ATTRIB")
(if (member (cdr (assoc 2 ent)) tag)
  (entmod (subst (cons 40 ht) (assoc 40 ent) ent))
)
(setq ent (entget (entnext (cdr (assoc -1 ent)))))
     )
     (entupd ref)
   )
 )
 (princ)
)

;;; REMOVE_DOUBLES - Suprime tous les doublons d'une liste

(defun remove_doubles (lst)
 (if lst
   (cons (car lst) (remove_doubles (vl-remove (car lst) lst)))
 )
) 

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

 

Une fois de plus, (gile) a frappé et une fois de plus, fort !

 

speedy Merci pour la remarque.

 

 

azrael De rien, surtout que c'est (gile) qui a fait le boulot. MAIS je pense que ce lisp peut servir à beaucoups de personnes qui utilses des blocs avec attributs,...

 

Merci encore.

Civil 3D 2025 - COVADIS_18.3b

https://www.linkedin...3%ABt-95313341/

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é