|
(defun c:ch_texte(/ resol selection valeur
ptr entite propriete nbrmod)
(write-line "\nTéléchargé depuis
le site Internet http://www.decker-cs.com")
(write-line "Auteur : Christian
Decker")
;
(write-line "Changer la valeur
de texte.")
;
(setq resol(getvar "snapmode"))
;Sauvegarde l'état de la résol.
(setvar "snapmode" 0)
;Désactive la résol.
(setq selection(ssget))
;Attend la sélection d'objets.
(setvar "snapmode" resol)
;Restitue l'état initial de la résol.
(setq ptr 0)
(setq nbrmod 0)
(repeat (sslength selection)
;Pour chaque élément de la sélection...
(setq entite(ssname selection ptr))
;Obtient le nom de l'entite de la base
de données.
(setq propriete(entget entite))
;Obtient la liste des propriétés de
l'entité.
(if (= (cdr(assoc '0 propriete)) "TEXT")
;L'entité est un texte.
(progn
(redraw entite 3)
;Active la surbrillance du texte.
(setq valeur(getstring
(strcat "Nouveau texte " "<" (cdr(assoc '1
propriete)) ">: "))) ;Affiche
la valeur actuelle et attend la saisie de la nouvelle valeur.
(if (/= valeur "") ;L'utilisateur
a modifié la valeur actuelle.
(progn
(setq propriete(subst
(cons '1 valeur) (assoc '1 propriete) propriete))
;Affecte la nouvelle valeur de texte
à la liste des propriétés.
(entmod propriete)
;Mise à jour de la liste des propriétés.
(entupd entite)
;Regénération de l'entité.
(setq
nbrmod(+ 1 nbrmod))
)
)
(redraw entite 4) ;Annule
la surbrillance du texte.
)
)
(setq ptr(+ 1 ptr))
)
(write-line (strcat "Nombre de
textes modifiés : " (itoa nbrmod)))
(princ)
) |