Aller au contenu

texte multiligne


Messages recommandés

Posté(e)

Bonjour,

 

Je suis à la recherche d'une commande permettant de modifier en groupe les caractérisques de textes multilignes (Style, couleur, hauteur....)

 

Merci

 

Antoine

Posté(e)

Je pense que tu peux passer par les propriétés

-Selection rapide

-Type d'objet

-Textmult

-Tu définis les propriétés

-l'opérateur et la valeur

Et la tu recherches soit par une sélection ou dans ton dessin entier

:exclam: Voila et c'est valable pour d'autres choses.........

Salut..

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

Salut,

 

S'il s'agit d'attribuer les mêmes propriétés à plusieurs textes multilignes, après avoir fait ta sélection comme le suggère jalna ou en les "grippant" directement à l'écran, tu peux les modifier dansr la fenêtre Propriétés (CTRL+1).

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

Posté(e)

quand les couleurs des textes sont forcées, cela rajoute des caractères spéciaux dans l'index

 

texte{\C4;textecouleurforcee}texte

 

il faudrait trouver un moyen pour virer les { } et les Cn;

 

un moyen rapide, mais pas très propre, serait de décomposer les textes multiples et de mettre les textes simples obtenus sur la couleur DuCalque.

 

[Edité le 27/10/2005 par zebulon_]

C'est au pied du mur que l'on reconnaît le maçon ! (Anonyme)

C’est en restant au pied du mur qu’on ne voit que le mur (Anonyme aussi)

Posté(e)

quand les couleurs des textes sont forcées, cela rajoute des caractères spéciaux dans l'index

 

Mais pas quand la couleur est changée avec CHPROP ou la fenêtre propriétés.

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

Posté(e)

Salut Antoine 1

Regarde dans les propriétés et essaye de voir alors par autre chose que la couleur , je sais pas genre style de texte, hauteur du texte et autre!!

PS: C'est toujours le meme pbleme avec les personnes qui forcent les couleurs,je me tue a leurs dire que cela n'apporte rien, AutoCAD a une logique pkoi ne pas l'appliquer!!

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

Merci à Tous,

Mais j'ai beau cherché mais pas de solution simple pour le moment,

et je rejoins Jalna ! y en a marre des couleurs, des types de ligne etc.... forcées !

 

 

Bonne journée

Posté(e)

Salut,

 

Voici un petit LISP qui change tous les MTEXT à la couleur forcée par l'éditeur de texte en MTEXT à la couleur modifiée (la même) à l'aide des propriétés (plus de {\\C... dans l'index) :

 

(defun c:modif_txt (/ ss ent ed str)
 (setq	ss   (ssget "_X" '((0 . "MTEXT") (1 . "{*")))
cmpt 0
 )
 (if ss
   (while (setq ent (ssname ss cmpt))
     (setq ed	(entget ent)
    str	(cdr (assoc 1 ed))
    ed
	(subst (cons 1
		     (substr str
			     (+ (vl-string-search ";" str) 2)
			     (-	(strlen str)
				(+ (vl-string-search ";" str) 2)
			     )
		     )
	       )
	       (assoc 1 ed)
	       ed
	)
     )
     (if (assoc 62 ed)
(setq ed
       (subst (cons 62 (read (vl-string-left-trim "{\\C" str)))
	      (assoc 62 ed)
	      ed
       )
)
(setq ed
       (append
	 ed
	 (list (cons 62 (read (vl-string-left-trim "{\\C" str))))
       )
)
     )
     (entmod ed)
     (setq cmpt (1+ cmpt))
   )
 )
 (princ)
) 

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

Posté(e)

Merci Gile,

ca marche sauf sur certains dessin ou j' ai le message d'erreur suivant :

 

" erreur: groupe DXF incorrect: (62 . 111,4)"

 

sachant que les dessins n'ont pas été crées sous Autocad (plans Archi)

 

Antoine

Posté(e)

Re,

 

Le même, sans chercher à donner au MTEXTE la couleur "forcée", il prendra la couleur "DUCALQUE" ou celle modifiée via les propriétés.

 

(defun c:modif_txt (/ ss cmpt ed str)
 (setq	ss   (ssget "_X" '((0 . "MTEXT") (1 . "{*")))
cmpt 0
 )
 (if ss
   (while (setq ent (ssname ss cmpt))
     (setq ed	(entget ent)
    str	(cdr (assoc 1 ed))
    ed	(subst (cons 1
		     (substr str
			     (+ (vl-string-search ";" str) 2)
			     (-	(strlen str)
				(+ (vl-string-search ";" str) 2)
			     )
		     )
	       )
	       (assoc 1 ed)
	       ed
	)
     )
     (entmod ed)
     (setq cmpt (1+ cmpt))
   )
 )
 (princ)
) 

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

Posté(e)

C'est pas au point, mon histoire, de mon côté j'ai remarqué que çà ne marchait pas avec les "couleurs vraies" (version 2004 et postérieures). J'ai un peu moins de temps cet après midi mais je vais quand même essayer d'approfondir...

 

À plus...

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

Posté(e)

Si tu as le temps, pourais tu faire (cdr (assoc 1 (entget (car (entsel))))), sur les MTEXT qui ne marchent pas ("26.2m²" par exemple ) et me communiquer les résultats.

 

Merci.

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

Posté(e)

Voilà 2 exemples :

 

Commande: (cdr (assoc 1 (entget (car (entsel)))))

 

Choix de l'objet: "\\A1;{\\Ftxt.shx|c0;\\C94;C1-02\\PBureau\\P12 m2}"

 

Commande:

U INTELLIZOOM

Commande: (cdr (assoc 1 (entget (car (entsel)))))

 

Choix de l'objet: "{26,6 m{\\H0.7x;\\S2^ ;}}"

 

Antoine

Posté(e)

Salut

 

en reprenant ce qu'a fait (gile)

 

@+

 

(defun c:modif_txt(/ ss cmpt str deb fin)
 (setq cmpt 0)
 (if (setq ss (ssget "_X" '((0 . "MTEXT"))))
   (while (setq ent (ssname ss cmpt))
     (setq ent (entget ent)
           str (cdr (assoc 1 ent)))
     (while (setq deb (vl-string-position 92 str))
       (setq fin (vl-string-position 59 str)
             str (vl-string-subst "" (substr str (1+ deb) (- (1+ fin) deb)) str))
     )
     (setq str (vl-string-subst "" "{" str)
           str (vl-string-subst "" "}" str)
           ent (subst (cons 1 str) (assoc 1 ent) ent))
     (entmod ent)
     (entupd (cdr (assoc -1 ent)))
     (setq cmpt (1+ cmpt))
   )
 )
 (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 et Merci Patrick,

 

Cette commande marche bien dans un nouveau dessin mais dans le fichier reçu par des archis, j'ai le message d'erreur suivant :

 

Commande: modif_txt

; erreur: type d'argument incorrect: numberp: nil

 

 

Posté(e)

Et voilà :

 

Commande: (cdr (assoc 1 (entget (car (entsel)))))

 

Choix de l'objet: "\\A1;{\\Ftxt.shx|c0;\\C94;B4-05 et B4-06\\PZone

d\\U+00E9chets et\\Plinge sale urgence\\P17,35 m2}"

 

Antoine

Posté(e)

c'est à dire ?

l'essai de ton lisp avec ce texte copié dans un nouveau dessin répond l'erreur que j'ai envoyée précédement.

 

Commande: modif_txt

; erreur: type d'argument incorrect: numberp: nil

 

 

Antoine

Posté(e)

Le souci est de faire le trie de ce qui apparait à l'écran et de la réponse retourné par le (cdr (assoc 1 (entget (car (entsel)))))

Par exemple, dans \\A1;{\\Ftxt.shx|c0;\\C94;B4-05 et B4-06\\PZone d\\U+00E9chets et\\Plinge sale urgence\\P17,35 m2}", tu as \\C94; qui correspond à une couleur

J'ai une idée quand même, j'ai modifié le lisp

 

@+

 

(defun c:modif_txt(/ ss cmpt str deb fin)
 (setq cmpt 0)
 (if (setq ss (ssget "_X" '((0 . "MTEXT"))))
   (while (setq ent (ssname ss cmpt))
     (setq ent (entget ent)
           str (cdr (assoc 1 ent)))
     (while (setq deb (vl-string-position 92 str) fin (vl-string-position 59 str))
       (setq str (vl-string-subst "" (substr str (1+ deb) (- (1+ fin) deb)) str))
     )
     (setq str (vl-string-subst "" "{" str)
           str (vl-string-subst "" "}" str)
           ent (subst (cons 1 str) (assoc 1 ent) ent))
     (entmod ent)
     (entupd (cdr (assoc -1 ent)))
     (setq cmpt (1+ cmpt))
   )
 )
 (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é