phil_vsd Posté(e) le 6 mai 2008 Posté(e) le 6 mai 2008 Bonjour, J'aimerai supprimer deffinitivement des styles de textes. Or je ne peux le faire car ils sont utilisés quelque part... Que dois-je mettre après ce bout de code pour aller dénicher tous les Mtext commençant par CART pour les basculer sur ensuite sur "Standart" ? Sachant que ces Mtext sont dans des blocs, attributs... etc... (defun c:supptxt (/) ;Finalisé sur LT ;filtre tous les Mtext commençant par "cart" (setq ss (ssget "_x" '((0 . "MTEXT") (7 . "cart*") ))) ????????????????? ) ) Merci d'avance. "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
(gile) Posté(e) le 6 mai 2008 Posté(e) le 6 mai 2008 Salut, C'est le texte ou le nom du style de texte qui commence par "CART" ?C'est pour LT, alors pas de Visual LISP ?"Standart" ou "Standard" ? Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
phil_vsd Posté(e) le 6 mai 2008 Auteur Posté(e) le 6 mai 2008 Hello, En fait ma manoeuvre consistait a envoyer tous les Mtext dont le Style qui commencent par "CART" vers le style "STANDARD", avec un D effectivement. Ensuite j'aurais purger manuellement Autocad pour vider la liste des Styles de Texte. (Version Soft) Ceci dit, on peut purger directement les styles commençant par "CART" et envoyer à la poubelle tous les Mtext et Text des-dits Style. (Version hard) Là aussi c'est la syntaxe qui m'intéresse. J'ai pas la doc de la version full sous les yeux. Je me suis embrouillé avec Entdel sans résultat probant. Merci. "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
Patrick_35 Posté(e) le 6 mai 2008 Posté(e) le 6 mai 2008 Salut Juste une chose,Il ne faut pas oublier les styles forcés, les cotes. ps : entdel est pour supprimer un objet. Pour changer de style, il faut substituer par un nouveau style et donc utiliser la fonction subst, ensuite un entmod pour modifier l'objet et pourquoi pas terminer avec un entupd pour mettre graphiquement l'objet à jour. @+ Les Lisps de PatrickLe but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.Joseph Joubert, 1754-1824
(gile) Posté(e) le 6 mai 2008 Posté(e) le 6 mai 2008 Pour faire changer tous les textes, mtextes, rtexte de style de texte le début est bon.Il faut ensuite parcourir le jeu de sélection et changer la propriété avec entmod. (setq ss (ssget "_X" '((0 . "*TEXT") (7 . "Arial*")))) (if ss (repeat (setq n (sslength ss)) (setq elst (entget (ssname ss (setq n (1- n))))) (if (wcmatch (cdr (assoc 7 elst)) "Arial*") (entmod (subst '(7 . "Standard") (assoc 7 elst) elst)) ) ) ) Pour les textes ou attributs contenus dans les blocs on change les propriétés des entités dans les définitions de bloc. Pour ce faire, on parcourt la table des blocs avec la fonction tblnext puis chaque définition avec entnext. Il faut ensuite synchroniser les attributs avec la commande attsync (j'espère qu'elle existe sur LT). (while (setq blk (tblnext "BLOCK" (not blk))) (setq ent (cdr (assoc -2 blk))) (while ent (setq elst (entget ent)) (if (and (member (cdr (assoc 0 elst)) '("ATTDEF" "MTEXT" "TEXT")) (wcmatch (cdr (assoc 7 elst)) "Arial*") ) (entmod (subst '(7 . "Standard") (assoc 7 elst) elst)) ) (setq ent (entnext ent)) ) (command "_attsync" "_n" (cdr (assoc 2 blk))) ) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
phil_vsd Posté(e) le 7 mai 2008 Auteur Posté(e) le 7 mai 2008 Merci les gars ! J'ai modifié vos routines afin qu'elles puissent aussi chasser dans toutes les présentions (For each...etc... ) . Je transforme tout en style "stantdard" mais les styles restent impurgeables, il doit en rester dans les cotes mais il me semble avoir tout regardé. Une chose m'échappe, si un bloc est créé avec un style de texte dans ses attributs et que ce style est changé vers un autre, il me semble que le style d'origine ne peut être purgé. Avez-vous eu ce problème ? Je déteste avoir une liste de styles qui ne servent plus... A++ "La ligne droite est le plus court chemin entre deux points, à condition que les deux points soient bien en face l'un de l'autre" P. Desproges.
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