Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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

Posté(e)

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.

Posté(e)

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 Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

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

Posté(e)

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.

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é