jms Posté(e) le 19 mars 2023 Posté(e) le 19 mars 2023 Salut, Quelqu'un connaît-il/elle un moyen pour remplacer du texte dans un dwg sans ouvrir la fenêtre de saisie ? Je voudrais juste pouvoir inscrire cette commande dans un petit script, mais je cale sur cette commande qui ne semble pas pouvoir être exécutée entièrement au clavier... 😞 Citer
Fraid Posté(e) le 20 mars 2023 Posté(e) le 20 mars 2023 Bonjour, Je ne suis pas sur que cela soit possible en script, mais je ne suis pas spécialiste. En lisp, pas de soucis, si tu cherche mieux sur le site, ou ailleurs y en a plein. Sinon, tes textes sont sous quel forme, TEXT, MTEXT, ATTRIBUT....? Citer https://github.com/Fraiddd
jms Posté(e) le 22 mars 2023 Auteur Posté(e) le 22 mars 2023 Dans le cas qui me préoccupait, ce sont des attributs de blocs. Citer
Fraid Posté(e) le 22 mars 2023 Posté(e) le 22 mars 2023 Bonjour, un petit lisp pour les attributs. Si tu veux l'utiliser en script, remplace (getstring "Old text?") par le texte à remplacer entre guillemets ex: "Bois" et (getstring "New text?") par le texte de remplacement ex: "Béton" et dans ton script subat (defun substattrib ( old new acdc / tat) (vlax-for obj (vla-get-modelspace acdc) (if (= (vla-get-ObjectName obj) "AcDbBlockReference") (foreach att (vlax-invoke obj 'GetAttributes) (if (vl-string-search old (setq tat (vla-get-textstring att))) (vlax-put att 'TextString (vl-string-subst new old tat)) ) ) ) ) ) (defun c:subat nil (vl-load-com) (substattrib (getstring "Old text?") (getstring "New text?") (vla-get-activedocument (vlax-get-acad-object)) ) (princ) ) Fonctionne uniquement dans l'espace objet. Citer https://github.com/Fraiddd
Messages recommandés