Aller au contenu

CHANGER HAUTEUR DE TEXTE


PHILPHIL

Messages recommandés

bonjour

 

pour ne plus avoir des textes avec des hauteurs non juste ( plein de chiffre apres la virgule )

et ne plus avoir a passer par la fenetre des propriétés.

 

voici un petit lisp pour changer la hauteur de : TEXTE MTEXT et ATTRIBUT.

 

appel de commande : TAA

 

il suffit d'appuyer sur les touches "+" "-" pour changer la hauteur des textes a 0.1 pres

ou resté appuyer

et "0" pour sortir du lisp

 

bon week end

 

;;; de gile
;;; ROUND-PREC Arrondit à la valeur la plus proche en fonction de prec
;;; (round pi 2) -> 3.14
;;; (round pi 5) ->3.14159
;;; (round 5456.50 0) -> 5457
;;; (round 5456.50 -1) -> 5460

(defun round-prec (num prec /)
 (setq rslt (/ (fix (+ (* num (expt 10.0 prec)) (/ (abs num) (* 2 num)))) (expt 10.0 prec)))
 (if (< 0 prec)
   rslt
   (fix rslt)
 )
)


;;;------------------------------------------------------------------
;;;CHANGE LA HAUTEUR DES TEXTES AVEC LES TOUCHES + OU -  EJECT AVEC 0
;;;  +  = touche N°43
;;;  -  = touche N°45
;;;  0  = touche N°48
;;;  enter  = touche N°13
;;;------------------------------------------------------------------

(defun C:TAA (/ ENTX)
 (setvar "cmdecho" 0)
 (setq ENTX NIL)
 (prompt "\nSELECTIONNER LE(S) TEXTE(S) MTEXTE(S) A MODIFIER :")
 (while (null ENTX) (setq ENTX (ssget '((0 . "TEXT,MTEXT,ATTDEF")))))
 (setq COM (sslength ENTX))
 (setq BOUCLE1 1)
 (while (= BOUCLE1 1)
   (initget "0 + -")
   (prompt "\nSELECTIONNER LE TYPE D'ACTION DESIRE ( 0 + - ) ")
   (setq ACTION (grread NIL 4 0))
   (if (= (cadr ACTION) 43)
     (progn (setq COMPT 0)
            (while (< COMPT COM)
              (setq HAUTEURTEXTE (vlax-get-property (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname ENTX COMPT))))) 'HEIGHT))
              (vla-put-height (vlax-ename->vla-object (cdr (car (entget (ssname ENTX COMPT)))))
                              (+ (ROUND-PREC HAUTEURTEXTE 1) 0.1)
              )
              (setq COMPT (1+ COMPT))
            )
            (if (= COM 1)
              (prompt
                (strcat "\nLA HAUTEUR DU TEXTE EST DE < " (rtos (+ (ROUND-PREC HAUTEURTEXTE 1) 0.1) 2 1) " >: ")
              )
              (prompt "\nLA HAUTEUR DES TEXTES A AUGMENTEE DE 0.1 :")
            )
     )
   )
   (if (= (cadr ACTION) 45)
     (progn (setq COMPT 0)
            (setq CHANG 0)
            (while (< COMPT COM)
              (setq HAUTEURTEXTE (vlax-get-property (vlax-ename->vla-object (cdr (assoc -1 (entget (ssname ENTX COMPT))))) 'HEIGHT))
              (if (> (- (ROUND-PREC HAUTEURTEXTE 1) 0.1) 0)
                (progn (vla-put-height (vlax-ename->vla-object (cdr (car (entget (ssname ENTX COMPT)))))
                                       (- (ROUND-PREC HAUTEURTEXTE 1) 0.1)
                       )
                       (setq CHANG (1+ CHANG))
                )
                (progn (prompt "\nLA HAUTEUR D'UN TEXTE N'A PAS ETE CHANGE CAR DEVENU NEGATIVE :"))
              )
              (setq COMPT (1+ COMPT))
            )
            (if (> COM 1)
              (progn (if (> CHANG 0)
                       (prompt "\nLA HAUTEUR DES TEXTES A DIMINUEE DE 0.1 :")
                     )
              )
              (progn
                (if (> CHANG 0)
                  (prompt
                    (strcat "\nLA HAUTEUR DU TEXTE EST DE < " (rtos (- (ROUND-PREC HAUTEURTEXTE 1) 0.1) 2 1) " >: ")
                  )
                  (prompt (strcat "\nLA HAUTEUR DU TEXTE EST DE < " (rtos (ROUND-PREC HAUTEURTEXTE 1) 2 1) " >: "))
                )
              )
            )
     )
   )
   (if (= (cadr ACTION) 48)
     (setq BOUCLE1 0)
   )
 )
 (princ)
)

(defun C:TESTTOUCHE ()
 (prompt "\nAPPUYER SUR UNE TOUCHE POUR CONNAITRE SON NUMERO SUR VOTRE CLAVIER ( 0 + - ) OU AUTRE : "
 )
 (setq ACTION (grread NIL 4 0))
 (prompt (strcat "\nLA TOUCHE SUR LAQUELLE VOUS VENEZ D'APPUYER A LE N° : "
                 (RTOS (cadr ACTION) 2 0)
                 " SUR VOTRE CLAVIER: "
         )
 )
   (princ)
)

 

 

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

Salut PHILPHIL,

Super, merci !

J'ai cependant cette erreur sur mon MAP 2019 :

Commande: TAA
SELECTIONNER LE(S) TEXTE(S) MTEXTE(S) A MODIFIER :
Sélectionner des objets: Spécifiez le coin opposé: 5 trouvé(s)
Sélectionner des objets:
SELECTIONNER LE TYPE D'ACTION DESIRE ( 0 + - )
Impossible d'appeler (command) à partir de *error* sans appeler préalablement (*push-error-using-command*).
Il est recommandé de convertir les appels (command) en (command-s).
Commande:

J'ai donc remplacé les deux occurences concernées depuis notepad + et j'ai maintenant ce message dés le lancement de la routine :

Commande: (LOAD "C:/Users/lili2006/Desktop/TAA.lsp") C:TAA
Commande: Régénération du modèle.
TAA
Impossible d'appeler (command) à partir de *error* sans appeler préalablement (*push-error-using-command*).
Il est recommandé de convertir les appels (command) en (command-s).

Merci d'avance,

Civil 3D 2024 - COVADIS_18.2

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

Lien vers le commentaire
Partager sur d’autres sites

hello lili2006

 

 

retire les lignes

(command-s "scu" "")

et

(command-s "scu" "p")

qui ne servent effectivement a rien dans le lisp

 

tu bosses sur ordi fixe ou un portable ?

 

les numéro de touche ne correspondent peut etre pas aussi

 

UN LISP pour tester les numeros de touche sur vos claviers

 

chez moi

le + = N°43

le - = N°45

le 0 = N°48

 

a remplacer le cas échéant dans le lisp

(if (= (cadr ACTION) 43)

 

(defun C:TESTTOUCHE ()
 (prompt "\nAPPUYER SUR UNE TOUCHE POUR CONNAITRE SON NUMERO SUR VOTRE CLAVIER ( 0 + - ) OU AUTRE : "
 )
 (setq ACTION (grread NIL 4 0))
 (prompt (strcat "\nLA TOUCHE SUR LAQUELLE VOUS VENEZ D'APPUYER A LE N° : "
                 (RTOS (cadr ACTION) 2 0)
                 " SUR VOTRE CLAVIER: "
         )
 )
   (princ)
)

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

hello lili

 

tu as copié le lisp de GILE aussi

 

;;; de Gile
;;; ROUND-PREC Arrondit à la valeur la plus proche en fonction de prec
;;; (round pi 2) -> 3.14
;;; (round pi 5) ->3.14159
;;; (round 5456.50 0) -> 5457
;;; (round 5456.50 -1) -> 5460

(defun round-prec (num prec /)
 (setq rslt (/ (fix (+ (* num (expt 10.0 prec)) (/ (abs num) (* 2 num)))) (expt 10.0 prec)))
 (if (< 0 prec)
   rslt
   (fix rslt)
 )
)

 

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Re,

tu as copié le lisp de GILE aussi

Le boulet !

Heu, non,..Tout s'explique alors,..Désolé du dérangement, je testerai à nouveau dés que possible car cet outil me semble bien utile,..

Merci encore de ton sens du partage et de ton aide PHILPHIL,smile.gif

Civil 3D 2024 - COVADIS_18.2

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

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à toutes et tous,

J'avais vu juste, cet outil est super !!

J'ai collé le code de Gilles à suivre du tien et en effet, la routine fonctionne à merveille !!smile.gif

 

Merci PHILPHIL

Pour info, sur les textes "normaux" et ceux d'attributs, lorsque l'on arrive à une certaine limite inférieure, j'ai en ligne de commande : (Il ne semble pas y avoir de limite supérieure,...)

 

SELECTIONNER LE TYPE D'ACTION DESIRE ( 0 + - )

LA HAUTEUR DES TEXTES A DIMINUEE DE 0.1 :

SELECTIONNER LE TYPE D'ACTION DESIRE ( 0 + - )

Impossible d'appeler (command) à partir de *error* sans appeler préalablement (*push-error-using-command*).

Il est recommandé de convertir les appels (command) en (command-s).

Commande:

Commande: *Annuler*

Civil 3D 2024 - COVADIS_18.2

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

Lien vers le commentaire
Partager sur d’autres sites

hello lili

 

ca diminue de 0.1 en 0.1 sans tester,

je suppose qu'une fois que le texte fait zero ca bug car une hauteur de texte doit toujours etre positive

 

apres a chacun de voir en quelle unite il bosse et de changer le 0.1 en 0.01

 

Phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

Et pourquoi ne pas prendre l'habitude d'utiliser tout simplement le mode ANNOTATIF ? Plus besoin de bidouille ! rolleyes.gif

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

hello

 

je deteste ce truc, l'ordi a assez de calcul a faire sur les entites en 2d deja

 

le but du lisp n'est pas de remplacer l'annotatif

 

juste quand des fois des textes dans des cartouches sorte des cadres, ou de données une hauteur bien précise a des textes

 

phil

Autodesk Architecture 2023 sous windows 11 64

24 pouces vertical + 30 pouces horizontal + 27 pouces horizontal

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é