bseb67 Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 Salut! Etant un peu toqué sur les bords (j'aime bien quand c'est carré et clean, pardon propre)Je cherche à nettoyé le plus possible nos dessins.Et bien j'ai pu trouver des MTEXT non visibles et non sélectionnable avec la souris.Je me retrouve avec 3 types de cas:- (1 . "") => ceux-là j'arrive à les supprimer avec un entdel- (1 . "{ }") => idem- (1 . " ") => et bien ceux-là ca marche pas :mad: ! J'ai essayé un entdel, ca marche pas, un entmod et entupd (en remplacant l'espace par du texte) sans résultat. J'ai fait le compte, sur le dessin sur lequel je test j'ai 300 MTEXT de ce type!! Si j'arriveà les dégager je ganerai un peu de place, mais comme je l'ai dit, mon but n'est pas de gagner de la place mais d'avoir un fichier propre. :cool: Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
bseb67 Posté(e) le 26 juillet 2007 Auteur Posté(e) le 26 juillet 2007 Re-salut! Je comprends plus rien!Avant j'étais sur la présentation où se trouvait le mtext, mais rien ne marchait.Maintenant j'ai réessayé: miracle sa marche :o !La seule chose à faire, c'est de parcourir alors chaque présentation pour supprimer ceuxse trouvant sur elle. Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
LUDWIG Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 je ne sais pas si ça peut te servir j'avais cette routine pour supprimer les textes vides du dessin : ;********************************************************************************************************************************************************** ;Effacer les textes vides ;********************************************************************************************************************************************************** ;supprime les textes superflus d'un dessin (textes vides ou ne contenant qu'un espace) (defun c:EFF_BLANC (/ JEUX_TEXTE E_TEXTE DEF_TEXTE) (setq JEUX_TEXTE (ssget "x" '((0 . "*TEXT"))) CX 0 EFF_TEXTE 0 ) ;_ Fin de setq (if (not (null JEUX_TEXTE)) (while (setq E_TEXTE (ssname JEUX_TEXTE CX)) (setq CX (1+ CX) DEF_TEXTE (cdr (assoc 1 (entget E_TEXTE))) ) ;_ Fin de setq (cond ((= "" DEF_TEXTE) (entdel E_TEXTE) (setq EFF_TEXTE (1+ EFF_TEXTE)) ) ((= " " DEF_TEXTE) (entdel E_TEXTE) (setq EFF_TEXTE (1+ EFF_TEXTE)) ) ((= " " DEF_TEXTE) (entdel E_TEXTE) (setq EFF_TEXTE (1+ EFF_TEXTE)) ) ) ;_ Fin de cond ) ;_ Fin de while ) (setq EFF_TEXTE (itoa EFF_TEXTE)) (prompt "\n") (prompt EFF_TEXTE) (prompt " texte(s) vide effacé(s)") ) ;_ Fin de defun (prompt "\nEFF_BLANC : supprime les textes superflus d'un dessin" ) ;_ Fin de prompt Autocad 2021 - Revit 2022 - Windows 10
Patrick_35 Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 SalutUn sujet qui devrait répondre à ton besoin @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
lecrabe Posté(e) le 26 juillet 2007 Posté(e) le 26 juillet 2007 Bonsoir Je pense qu'il faut suivre aussi ce sujet et les routines proposées ... :P http://www.cadxp.com/modules.php?op=modload&name=XForum&file=viewthread&tid=14245#pid63319 Le Decapode Autodesk Expert Elite Team
bseb67 Posté(e) le 27 juillet 2007 Auteur Posté(e) le 27 juillet 2007 Salut! Comme toujours, il y en a qui réfléchissent tard le soir encore ;) Bon, j'ai essayé les différentes méthodes que vous m'avez donnés etbien aucune ne marche pour mes MTEXT contenant (1 . " ") :cool: . La chose qui franchement me paraît louche (mais je commence a être habituéavec autocad): c'est que je peux supprimer de n'importe où des MTEXT contenant(1 . "") et (1 . "{ }") alors qu'ils peuvent être n'importe où, mais pas le (1 . " ") :casstet: .Donc je dois quand même passer dans chaque présentation pour supprimer ces MTEXT. ;-------------------------------; ; nom: netoye_txt ; ; role: supprime les *TEXT vides; ; param: aucun ; ; retour: le nombre de *TEXT ; ; supprimés ; ; date: 26/07/2007 ; ; Sébastien BLAES ; ;-------------------------------; (defun netoye_txt( / s cpt cpt2 lg el e) (setq s (ssget "X" '((0 . "*TEXT")))) (setq cpt 0 lg (sslength s)) (setq cpt2 0) (while (< cpt lg) (if (and (assoc 1 (setq el (entget (setq e (ssname s cpt))))) (or (= (cdr (assoc 1 el)) "") (= (cdr (assoc 1 el)) "{ }"))) (progn (entdel e) (setq cpt2 (1+ cpt2)) ) ; progn ) (setq cpt (1+ cpt)) ) ; on s'occupe des *TEXT (1 . " ") ; on passe dans chaque présentation (setq llist (layoutlist)) (command "regenmode" 0) (while llist (command "presentation" "etablir" (nth 0 llist)) (setq s (ssget "X" (list (cons 0 "*TEXT") (cons 410 (nth 0 llist)) (cons 1 " ")) )) (if s (setq cpt 0 lg (sslength s)) (setq cpt 0 lg 0) ) (while (< cpt lg) (setq e (ssname s cpt)) (entdel e) (setq cpt2 (1+ cpt2)) (setq cpt (1+ cpt)) ) ; while (setq llist (cdr llist)) ) ; while ; on passe dans l'espace objet pour finir (command "objet") (setq s (ssget "X" (list (cons 0 "*TEXT") (cons 410 "Model") (cons 1 " ")) )) (if s (setq cpt 0 lg (sslength s)) (setq cpt 0 lg 0) ) (while (< cpt lg) (setq e (ssname s cpt)) (entdel e) (setq cpt2 (1+ cpt2)) (setq cpt (1+ cpt)) ) ; while (command "regenmode" 1) (print (strcat (itoa cpt2) " entités supprimés")) cpt2 ) ; netoye_txt Tous pour lisp, Lisp pour tous!Avec Revit, cela ne vas trop vite...
Patrick_35 Posté(e) le 27 juillet 2007 Posté(e) le 27 juillet 2007 Bon, j'ai essayé les différentes méthodes que vous m'avez donnés etbien aucune ne marche pour mes MTEXT contenant (1 . " ") :cool: .Tu as mal regardé. C'est le filtre qui fait tout. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
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