Aller au contenu

Un Lisp pour changer un texte dans chaque fichier


maxiloxi

Messages recommandés

Bonjour,

Je me suis assez novice dans le programmation et j'ai fait beaucoup de recherche sur le forum.

Du coup, j'explique mon problème : Je recherche un lisp qui permet de changer le même texte dans chaque fichier ! Exemple assez simple le numéro 130 en 135. 

Je me suis pencher sur le lisp de Patrick ( PAT ) mais selon fonctionnement seulement avec les attributs et les blocs, j'ai voulu voir pour un script pour lancer sur SAS.

Donc si quelqu'un aura une solution, je suis preneur !

Merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Coucou,
La commande RECHERCHER éventuellement ? Non utilisable sur un script cependant mais d'un point de vue besoin recherché (sans mauvais jeu de mots),chat me paraît être le plus efficace...
Autrement tu peux voir un LISP dans le genre (très succinct) :

(defun modif_text (old new / jsel i name txt)
  (setq jsel (ssget "_X" (list '(0 . "TEXT,MTEXT") (cons 1 (strcat "*" old "*")))))
  (repeat (setq i (sslength jsel))
    (setq
      name (ssname jsel (setq i (1- i)))
      txt (cdr (assoc 1 (entget name)))
      txt (vl-string-subst new old txt)
    )
    (entmod (subst (cons 1 txt) (assoc 1 (entget name)) (entget name)))
  )
  (princ)
)

old -> ancienne valeur de texte (par exemple "130") sous format STRING
new -> nouvelle valeur de texte (par exemple "135") sous format STRING

Exemple d'utilisation :

(modif_text "130" "135")

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

Bonjouuur,

 

Petite question qui peut aider : C'est un texte (texte ou textemult) ou un attribut dans un bloc?

Ca peut aider ceux qui te proposeront des solution 🙂

 

textuellement
Vincent P.

Lispeur éternel débutant!
Autocad Map3D 2023
Covadis-Autopist 18.2

Lien vers le commentaire
Partager sur d’autres sites

Il y a 17 heures, Vincent P. a dit :

Bonjouuur,

 

Petite question qui peut aider : C'est un texte (texte ou textemult) ou un attribut dans un bloc?

Ca peut aider ceux qui te proposeront des solution 🙂

 

textuellement
Vincent P.

Salut, pour répondre à ta question c'est du texte et non un attribut dans un bloc

 

@Luna Comment tu intègre le code ? puis le lancer ?

Lien vers le commentaire
Partager sur d’autres sites

Coucou,
Je n'ai malheureusement aucune maîtrise des scripts (peut-être que @Eric pourra te conseiller pour cela) mais autrement, tu copies le code que j'ai envoyer et tu le colle dans un bloc note vierge. Tu l'enregistres au format .lsp et pour l'utilisation, soit tu charges ton fichier .lsp dans ton dessin puis tu utilises la fonction

(modif_texte "130" "135")

(donc tu exécutes toi-même le code dans ton dessin courant) soit tu passes par un script et là, comme je disais, c'est au-delà de mes compétences.

Bisous,
Luna

Lien vers le commentaire
Partager sur d’autres sites

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é