DECKER & CAD SOLUTIONS

 

Programmes Lisp -
Source du programme Ch_Texte

 

(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)

)

 

Fermer la fenêtre 


© Copyright 2004 [DECKER CAD SOLUTIONS] Tous droits réservés.