baba0000000000 Posté(e) le 5 mars 2019 Posté(e) le 5 mars 2019 N'ayant aucune compétance en lisp je me tourne vers vous. J'ai trouvé un lisp à cette adresse: https://forums.autodesk.com/t5/visual-lisp-autolisp-and-general/lisp-to-replace-mtext-style-override-fcentury-b0-with-farial/m-p/4982864#M322002le code en copie:(vl-load-com) (defun ChangeMtextStyle (mtxt) (setq ntxt "fArial Narrow" ) (setq oldtxts '("fCentury" "Fromans"));list of text styles to search (setq mcont (cdr (assoc 1 mtxt))) (foreach n oldtxts (if (vl-string-search n mcont) (progn (setq nwtxt (vl-string-subst ntxt n mcont)) (setq mtxt (subst (cons 1 nwtxt) (assoc 1 mtxt) mtxt )) (entmod mtxt) (princ) );progn );if );for );defun (defun c:ChangeTxtStyle (/ a ts n index b1 b c d b2) (setq a (ssget "_X" '((0 . "*TEXT,ATTDEF")))) (setq ts "ArialN") (setq n (sslength a)) (setq index 0) (repeat n (setq b1 (entget (ssname a index))) (setq index (1+ index)) (setq b (assoc 0 b1)) (if (= "TEXT" (cdr B)) (progn (setq c (assoc 7 b1)) (setq d (cons (car c) ts)) (setq b2 (subst d c b1)) (entmod b2) );progn );if (if ( = "MTEXT" (cdr B)) (ChangeMtextStyle b1) );if );repeat );defun );defun Déjà je pense que la dernière est à supprimer non ? On dirait un doublon. De ce que je comprends dans le lisp: mes variable : (vl-load-com) (defun ChangeMtextStyle (mtxt) (setq ntxt "fArial Narrow" ) (setq oldtxts '("fCentury" "Fromans"));list of text styles to search (setq mcont (cdr (assoc 1 mtxt))) setq ntxt : nouveau stylesetq oldtxts : ancien styleje ne comprends pas trop les "f" devant, mais je me suis dit c'est peut être leur façon d'écrire. Donc j'ai replacé par mes styles qui sont dans mon dessin, mais j'ai le retour du lisp est nil à chaque fois. Merci pour le futur aide apporté.
GEGEMATIC Posté(e) le 5 mars 2019 Posté(e) le 5 mars 2019 SalutN'ayant aucune compétance en lisp je me tourne vers vous. J'ai trouvé un lisp à cette adresse: Déjà je pense que la dernière est à supprimer non ? On dirait un doublon. Non, un est la commande, l'autre la fonction, en fin en principe, car c'est pas très bien programméje ne comprends pas trop les "f" devant, mais je me suis dit c'est peut être leur façon d'écrire.Le f a été ajouté au nom de style pour un raison qui échappe complètement à la logique du programme.. Je t'ai modifié le code pour qu'il marche avec les textes et mtext, mais en dehors du mtext(au départ le code était prévu pour pouvoir modifier la police forcée dans un mtext)dans ce cas, il faut chercher l'utilitaire gratuit "striptexformat", ce sera plus sain.a+gg (vl-load-com) (defun ChangeMtextStyle (mtxt ntxt oldtxts) (setq mcont (cdr (assoc 1 mtxt))) (foreach n oldtxts (if (vl-string-search n mcont) (progn (setq nwtxt (vl-string-subst ntxt n mcont)) (setq mtxt (subst (cons 1 ntxt) (assoc 1 mtxt) mtxt )) (entmod mtxt) (princ) );progn );if );for );defun (defun c:ChangeTxtStyle (/ a ts n index b1 b c d b2 nstyle loldStyle) (setq nstyle "g-eaux-LT" );_le nouvau style que tu veux appliquer (setq loldStyle '("ARIAL" ));_la liste des anciens styles de texte que tu veux changer (setq a (ssget "_X" '((0 . "*TEXT,ATTDEF")))) ;;(setq ts "ArialN") (setq n (sslength a)) (setq index 0) (repeat n (setq b1 (entget (ssname a index))) (setq index (1+ index)) (setq b (assoc 0 b1)) (if (or (= "TEXT" (cdr B)) ( = "MTEXT" (cdr B)) ) (progn (setq c (assoc 7 b1)) (setq d (cons (car c) nstyle)) (setq b2 (subst d c b1)) (entmod b2) );progn );if (if ( = "MTEXT" (cdr B)) (ChangeMtextStyle b1 nstyle loldStyle) );if );repeat );defun ----------------------------------------------------------------------Site: https://www.g-eaux.frBlog: http://g-eaux.over-blog.com
baba0000000000 Posté(e) le 5 mars 2019 Auteur Posté(e) le 5 mars 2019 Merci à toi GEGEMATIC. Je viens de testé les modifications que tu as apporté. J'ai fais plusieurs testes avant de me lancer ça dans tous les fichiers standard de la société. Peut être que c'est moi qui n'est pas compris une chose.J'ai bien vu les endroits qu'il fallait modifier grâce à tes commentaires.Nouveau style: ENT-ARIALAncien style: TECHNA-A1 ( j'ai pas fais de liste ça vient peut être de la le problème qui suit)Autre style mais on le change pas TECHNA-R1 ( je ferais 2 lisp différent ) Un fois la moulinette passé j'obtiens ça:Tout ce qui est TECHNA-A1 ===> ENT-ARIAL ça c'est OK merci à toi.Mais le style TECHNA-R1 à eu la même punition :( Une autre petite chose si c'est possible, si le style de destinations n'existe pas il applique le style courant au texte. Il ne peut pas rien faire à la place ? Je sais j'en demande beaucoup. Mais y a enormément de plans standard à modifier.Encore merci pour le temps que tu passes ( et les autres de forum ;) ) à nous aider.
didier Posté(e) le 5 mars 2019 Posté(e) le 5 mars 2019 Coucou Au début on trouve une fonction qui est appelée si dans la sélection on trouve des entités "MTEXT"Pour les "\f" c'est le formatage de ces MTEXT qui est en cause, la police est précédée de ces signes dans l'entitéJ'aime pas les MTEXT je sais pourquoi... Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant