cristal Posté(e) le 18 avril 2018 Posté(e) le 18 avril 2018 Bonjour à tous, J'ai récupéré le dwg du réseau d'eau potable d'une commune. Le problème c'est qu'au lieu d'avoir des blocs avec les symboles de chaque point particulier du réseau (bouche incendie, poteau incendie, vidange) j'ai juste une lettre ("h" pour bouche incendie, "i" pour poteau incendie, "v" pour vidange, etc). Du coup j'ai cherché s'il n'y avait pas un lisp qui me permette de transformer tous le textes contenant la même lettre (par exemple le "h") en un bloc contenant le bon symbole (celui de la bouche incendie). D'autant que mes lettres sont correctement orientées (par rapport au sens dans lequel je dois positionner le symbole) Malheureusement je n'ai trouvé que les lisp suivants :- T2A.lsp, qui transforme le texte en définition d'attribut mais avec la bonne orientation- T2B.lsp, qui transforme le texte en bloc, mais sans conserver l'orientation BREF ! l'idéal serait un mix des deux lisp, qui transformerait le texte en bloc et conserverait l'orientation de ce texte Voilà si quelqu'un a une piste je le remercie d'avance et sinon je vous souhaite à tous une bonne journée Citer
(gile) Posté(e) le 18 avril 2018 Posté(e) le 18 avril 2018 Salut, Essaye ça: (defun c:text2block (/ txt bname ss i) (vl-load-com) (defun *error* (msg) (and msg (/= msg "Fonction annulée") (princ (strcat "\nErreur: " msg)) ) (vla-EndUndoMark doc) (princ) ) (setq doc (vla-get-Activedocument (vlax-get-acad-object))) (vla-startUndoMark doc) (if (/= "" (setq txt (vl-string-trim " \t" (getstring "\nEntrez le texte à remplacer: ")))) (if (/= "" (setq bname (vl-string-trim " \t" (getstring "\nEntrez le nom du bloc: ")))) (if (tblsearch "block" bname) (if (ssget "_X" (list (cons 0 "TEXT") (cons 1 txt) (cons 410 (getvar 'ctab)))) (progn (setq space (vla-get-Block (vla-get-ActiveLayout doc))) (vlax-for obj (setq ss (vla-get-ActiveSelectionSet doc)) (vla-InsertBlock space (vla-get-InsertionPoint obj) bname 1. 1. 1. (vla-get-Rotation obj)) (vla-delete obj) ) (vla-Delete ss) ) ) (prompt (strcat "\nLe bloc '" bname "' est introuvable")) ) ) ) (*error* nil) ) Citer Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
cristal Posté(e) le 18 avril 2018 Auteur Posté(e) le 18 avril 2018 GENIAL !! Merci beaucoup Gile c'est exactement ce qu'il me fallait Citer
cristal Posté(e) le 18 avril 2018 Auteur Posté(e) le 18 avril 2018 J'en profite pour vous dire que j'utilise presque tous les jours vos LISP et même radicalpurge. Ils me font tous gagner un temps précieux et améliore mon quotidien. Alors du fond du coeur : un grand grand merci ! Citer
Messages recommandés