(gile) Posté(e) le 29 octobre 2005 Posté(e) le 29 octobre 2005 Après avoir regardé d'un peu plus près la dernière routine de Patrick_35 et les exemples à problème, le seul à poser vraiment "problème" me semble être : "{26,6 m{\\H0.7x;\\S2^ ;}}" Tel quel, à l'écran s'affiche : 26,6 m2 (avec le 2 de carré en petit et en exposant) Après exécution de la dernière version de Patrick on obtient 26,6 à l'écran et l'index donne : 26,6 m{} Pour les accolades persistantes, facile, on fait une boucle sur ces caractères jusqu'à ce qu'il n'y en ait plus. Pour le carré en exposant, j'ai rajouté un contrôle sur "\\H" et "\\S" ("\\H0.7x" semble être le code pour diminuer la taille du chiffre et "\\S2^" la mise du 2 en exposant), mais la question reste entière pour d'autres caractères spéciaux dont je ne connais pas les codes... Voilà donc une nouvelle mouture : (defun c:modif_txt (/ ss cmpt str deb fin str_d) (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)) pos 0 ) (while (setq deb (vl-string-position 92 str pos) fin (vl-string-position 59 str pos) ) (setq str_d (substr str (1+ deb) (- (1+ fin) deb))) (if (or (vl-string-search "\\H" str_d) (vl-string-search "\\S" str_d) ) (setq pos fin str (vl-string-subst "" ";" str) ) (setq str (vl-string-subst "" str_d str)) ) ) (while (vl-string-search "{" str) (setq str (vl-string-subst "" "{" str)) ) (while (vl-string-search "}" str) (setq str (vl-string-subst "" "}" str)) ) (setq ent (subst (cons 1 str) (assoc 1 ent) ent)) (entmod ent) (entupd (cdr (assoc -1 ent))) (setq cmpt (1+ cmpt)) ) ) (princ) ) [Edité le 29/10/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
bonuscad Posté(e) le 29 octobre 2005 Posté(e) le 29 octobre 2005 Voici un LIEN que j'avais déjà donné. Je pense que les caractères de contrôle sont difficile à gérer.De souvenir, il me semble aussi qu'au dessus d'un certain nombre de caractères, d'autres caractères se rajoutent pour le formatage du Mtext dans la définition DXF. Je connais pas les limitations de la routine "StripMtext" donné en lien ci dessus, mais elle me semble être déjà un bon outil (car elle peut être sélective sur les caractères a ôter). Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
(gile) Posté(e) le 29 octobre 2005 Posté(e) le 29 octobre 2005 Sacré Bonuscad, tes ressources semblent intarissables ! en tous cas moins facilement épuisables que les réserves pétrolifères de la planète ;) . Le LISP que tu propose marche très bien et son décriptage montre bien combien la tache n'est pas si simple ! Pour l'exemple qui posait problème ("{26,6 m{\\H0.7x;\\S2^ ;}}"), on peut tout cocher sauf Height et Stacking (respectivement \\H et \\S). Merci à tous, j'ai encore beaucoup appris sur ce coup :D [Edité le 29/10/2005 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
antoine1 Posté(e) le 2 novembre 2005 Auteur Posté(e) le 2 novembre 2005 Merci Gile, Patrick et BonusCad, "StripMtext v3.07" répond parfaitement !
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