Aller au contenu

[Résolu] Comment changer le style de texte d'un texte ?


Messages recommandés

Posté(e)

Bonjour à la communauté.

 

Voilà, j'ai un petit problème que je n'arrive pas à résoudre. En fait, je ne sais pas par où commencer.

 

J'aimerai changer le style de texte (ex:MONOTXT) et de hauteur (ex:0.4) de plusieurs entités par un autre style qui existe déjà dans mon dwg (ex:Arial) avec une autre hauteur de (ex:0.6).

 

Si quelqu'un a une astuce, un conseil ou une idée, je suis preneur...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Si tu sais programmer en LISP pas de soucis.

Un filtre SSGET "X" sur le style MONOTXT pour la selection

Un ENTMOD avec des SUBST pour la modification.

 

Si tu ne sais pas programmer alors

 

"SELECTRAP" là tu filtre sur le type d'entité que tu veux (ex texte) propriété "STYLE" et égale à "MONO..."

Ca te sélectionne toutes les entités correspondante et tu peux modifier les propriétés.

Autodesk Expert Elite Member

Posté(e)

Merci nosset de ton aide.

 

On ne peut pas dire que je "sais" programmer en lisp, mais j'arrive à faire certain truc.

 

Pour le ssget, pas de problème, mais c'est pour le entmod que je vais ramer...

 

Enfin, je vais fouiller dans l'aide pour voir s'il y a des truc qui m'aideraient...

 

Merci encore.

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

J'ai commencé à écrire ça :

;;;****************************************************************
;;;Changement du style de texte des textes et MTextes en ARIAL*****
 (if (setq Select (ssget "_X" (list (cons 0 "TEXT,MTEXT")))
     ) ;_ Fin de setq
   (while Select (entmod (subst (cons 7 "ARIAL") (assoc 62 a) a)))
 ) ;_ Fin de if
 

Mais je n'ose même pas le lancer... :huh:

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut

 

Pour le filtre

(ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 7 "MONOTXT")))

La boucle sur un jeu de sélection, tu sais faire.

Pour changer le style de texte en Arial

(entmod (subst (cons 7 "Arial") (assoc 7 ent) ent))

 

@+

  • Upvote 1

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)

Patrick_35 : merci, je vais pouvoir avancer...

 

didier : merci, retaper un code est un meilleur apprentissage qu'un copier/coller, c'est vrai...

 

Et ZUT ! ! Un gros dossier vient de tomber sur mon bureau... Je vais devoir mettre ce code en souffrance quelque temps...

 

Merci encore à vous...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut.

 

J'ai bossé ça hier soir chez moi, et j'ai fini par trouvé, si ça intéresse quelqu'un :

;;;Changement du style de texte des textes et MTextes en ARIAL*****
(setq Select (ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 7 "MONOTXT"))))
 (setq n 0)
 (while (setq Ent (ssname Select n))
   (setq elst (entget ent)
         n    (+ 1 n)
         elst (subst (cons 7 "Arial") (assoc 7 elst) elst)
   ) ;_ Fin de setq
   (entmod elst)
 ) ;_ Fin de while

Encore merci à vous, mais j'ai voulu pousser le vice à changer la hauteur du texte, mais là, rien ne fonctionne.

 

Peut-on faire un entmod sur deux subst en même temps ? Car dans le code qui suit, seule la hauteur change :

(setq Select (ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 7 "MONOTXT"))))
 (setq n 0)
 (while (setq Ent (ssname Select n))
   (setq elst   (entget ent)
         n      (+ 1 n)
         elstSt (subst (cons 7 "Arial") (assoc 7 elst) elst)
   ) ;_ Fin de setq
   (entmod elstSt)
   (setq elstHt (subst (cons 40 0.6) (assoc 40 elst) elst))
   (entmod elstHt)
 ) ;_ Fin de while

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Ben en fait, c'était tout bête... :

;;;Changement du style de texte, hauteur et compression*****
 (setq Select (ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 7 "MONOTXT"))))
 (setq n 0)
 (while (setq Ent (ssname Select n))
   (setq elst (entget ent)
         n    (+ 1 n)
         elst (subst (cons 7 "Arial") (assoc 7 elst) elst) ;Style de texte
         elst (subst (cons 40 0.6) (assoc 40 elst) elst) ;Hauteur du texte
         elst (subst (cons 41 1) (assoc 41 elst) elst) ;Compression du texte
   ) ;_ Fin de setq
   (entmod elst)
 ) ;_ Fin de while

Encore merci à tous...

 

Denis...

  • Upvote 1

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Salut DenisH,

 

Comment fais-tu pour utiliser ta routine?

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

C'est un peu "ROOTS" car y a pas de defun !

 

si tu fais copier coller sur la ligne de commande ca doit marcher. Sinon tu met ca dans un DEFUN

Autodesk Expert Elite Member

Posté(e)

Au temps pour moi, voici le code à coller dans un LiSP :

;;;Changement du style de texte, hauteur et compression*****
 (defun c:RemplStylTxt ( / n Ent elst Select)
 (setq Select (ssget "_X" (list (cons 0 "TEXT,MTEXT") (cons 7 "MONOTXT"))))
 (setq n 0)
 (while (setq Ent (ssname Select n))
   (setq elst (entget ent)
         n    (+ 1 n)
         elst (subst (cons 7 "Arial") (assoc 7 elst) elst) ;nouveau style de texte = ARIAL
         elst (subst (cons 40 0.6) (assoc 40 elst) elst) ;nouvelle hauteur du texte = 0.6
         elst (subst (cons 41 1) (assoc 41 elst) elst) ;nouvelle compression du texte = 1
   ) ;_ Fin de setq
   (entmod elst)
 ) ;_ Fin de while
)

 

"(cons 7 "MONOTXT")" est le nom de l'ancien style de texte inclu dans le sélection. On peut le changer ou simplement l'enlever pour agir sur tous les textes...

 

Il n'y a plus qu'à taper "RemplStylTxt " en ligne de commande après avoir charger le LiSP.

 

Voilà qui est mieux...

 

J'avais omis le defun car ce code fait parti d'un autre beaucoup plus long...

 

Denis...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

Posté(e)

Merci,

 

Je vais l'essayer ;)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Posté(e)

Aucun problème...

 

Pour une fois q'un de mes codes peu servir, ça fait plaisir...

Windows 11 / AutoCAD 2024

Sur terre, il y a 10 types de personnes, celles qui comptent en binaire et les autres (developpez.net).
Davantage d'avantages, avantagent davantage (Bobby Lapointe).
La connaissance s'accroît quand on la partage (Socrate).
Tant va la cruche à l'eau que l'habit n'amasse pas mousse avant de l'avoir tué. (Moi)

  • 2 ans après...
Posté(e)

Merci, pour ton code,J'ai pu résoudre mon problème, j'ai poster y a pas si longtemps pour trouver une routine comme la tienne.Encore Merci.

Chris24@+

 

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é