JVC Posté(e) le 3 février 2022 Posté(e) le 3 février 2022 Bonjour à tous et à toutes, Tout d'abord, mon sujet n'est peut être pas au bon endroit ! VBA, LISP ou Ici ? Je cherche tout simplement à remplacer dans plusieurs fichiers le caractère diametre ø (%%C par alt155) Je me suis dis dit pourquoi pas faire un script , mais non, ca n'est pas approprié, en lancant la commande rechercher, je ne peux (ou ne sais pas comment) saisir les caractéres dans la boite de dialogue et appliquer les modif à l'aide du script.... Si quelqu'un a une idée , un conseil, ou une solution 🙂 Par avance merci ! Windows 10 Autocad Map 3D 2022/Covadis 17 QGIS 3.10 et +
Luna Posté(e) le 3 février 2022 Posté(e) le 3 février 2022 Coucou, As-tu essayer en passant par la commande RECHERCHER : En fonction du nombre de fichier, cela peut être suffisant je pense. Sinon il faudra regarder plus en détails (tu as bien un AutoCAD full, et non LT n'est-ce pas ?). Bisous, Luna
JVC Posté(e) le 3 février 2022 Auteur Posté(e) le 3 février 2022 Bonjour Luna, La commande "rechercher" fonctionne tres bien ! Ce que je n'arrive pas à faire , c'est l'automatiser à l'aide d'un script (ou autre) sur plusieusr fichiers. Oui j'ai bien Autocad Map 🙂 Windows 10 Autocad Map 3D 2022/Covadis 17 QGIS 3.10 et +
Luna Posté(e) le 3 février 2022 Posté(e) le 3 février 2022 Le soucis c'est que cette commande utilise obligatoirement une boîte de dialogue... et n'ayant jamais utilisé le SuperAutoScript je ne saurais vraiment s'il peut fonctionner dans ce cas-là ni même comment il fonctionne. Mais essaye de regarder cela. Bisous, Luna
Olivier Eckmann Posté(e) le 3 février 2022 Posté(e) le 3 février 2022 Bonjour @JVC, Puisque tu as MAP, tu associes tous tes dessins en dessin source, puis tu fais une requête de tous les textes mult, tu lances la fonction RECHERCHER, puis tu ré-enregistres vers tes dessins sources. Tout sera mis à jour. Olivier
bonuscad Posté(e) le 3 février 2022 Posté(e) le 3 février 2022 C'est vrai que RECHERCHER ne fonctionne pas avec les scripts. Mais on peut malgré tout le faire avec un script. En partant de la solution donné ICI ont peut utiliser le script avec AcCoreConsole et une fonction lisp exécuté dans chaque fichier automatiquement. Suivre la procédure donné dans la discussion ((lambda ( / f_exe ShlObj Folder FldObj Out_Fld file_scr file_bat) (vl-load-com) (setq f_exe (findfile "accoreconsole.exe")) (setq ShlObj (vla-getinterfaceobject (vlax-get-acad-object) "Shell.Application") Folder (vlax-invoke-method ShlObj 'BrowseForFolder 0 "" 0) ) (vlax-release-object ShlObj) (if Folder (progn (setq FldObj (vlax-get-property Folder 'Self) Out_Fld (vlax-get-property FldObj 'Path) ) (vlax-release-object Folder) (vlax-release-object FldObj) ) ) (setq file_scr (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\update.scr") "w")) (write-line "((lambda ( / js n dxf_ent)" file_scr) (write-line " (setq js (ssget \"_X\" '((0 . \"*TEXT\"))))" file_scr) (write-line " (cond" file_scr) (write-line " (js" file_scr) (write-line " (repeat (setq n (sslength js))" file_scr) (write-line " (setq dxf_ent (entget (ssname js (setq n (1- n)))))" file_scr) (write-line " (if (vl-string-search \"%%C\" (cdr (assoc 1 dxf_ent)))" file_scr) (write-line " (entmod" file_scr) (write-line " (subst" file_scr) (write-line " (cons 1 (vl-string-subst \"ø\" \"%%C\" (cdr (assoc 1 dxf_ent))))" file_scr) (write-line " (assoc 1 dxf_ent)" file_scr) (write-line " dxf_ent" file_scr) (write-line " )" file_scr) (write-line " )" file_scr) (write-line " )" file_scr) (write-line " )" file_scr) (write-line " )" file_scr) (write-line " )" file_scr) (write-line " (prin1)" file_scr) (write-line "))" file_scr) (write-line "(command \"_.save\" \"\")" file_scr) (close file_scr) (setq file_bat (open (strcat (getvar "ROAMABLEROOTPREFIX") "support\\update.bat") "w")) (write-line (eval (read "(strcat \"set accoreexe=\" \"\\\"\" f_exe \"\\\"\")")) file_bat) (write-line (eval (read "(strcat \"set source=\" \"\\\"\" Out_Fld \"\\\"\")")) file_bat) (write-line (eval (read "(strcat \"set script=\" \"\\\"\" (getvar \"ROAMABLEROOTPREFIX\") \"support\\\\update.scr\" \"\\\"\")")) file_bat) (write-line "FOR /f \"delims=\" %%f IN ('dir /b \"%source%\\\*.dwg\"') DO %accoreexe% /i \"%source%\\%%f\" /s %script%" file_bat) (close file_bat) (startapp (strcat (getvar "ROAMABLEROOTPREFIX") "support\\update.bat")) (princ"\Job finished") (prin1) )) Choisissez un travail que vous aimez et vous n'aurez pas à travailler un seul jour de votre vie. - Confucius
JVC Posté(e) le 4 février 2022 Auteur Posté(e) le 4 février 2022 Bonjour Olivier et Bonus CAD, Je vais plutot me pencher sur la solution MAP qui parait ( à 1ere vue) plus simple. D'autant que par la suit, je souhaite aussi, importer un état de calque, decomposer des blocs. A creuser un peu de mon côté quand meme parce que dans un 1er temps, j'ai eu des ptites surprises: le texte modifié qui n'apparait plus dans on fichier global, un calque en plus qui portait le nom initial+ '_attribut caché'. j'ai du vouloir aller un peu trop vite en besogne 🙂 en tous cas, merci de vos reponses ! Windows 10 Autocad Map 3D 2022/Covadis 17 QGIS 3.10 et +
JVC Posté(e) le 9 février 2022 Auteur Posté(e) le 9 février 2022 Le 03/02/2022 à 12:26, Olivier Eckmann a dit : Bonjour @JVC, Puisque tu as MAP, tu associes tous tes dessins en dessin source, puis tu fais une requête de tous les textes mult, tu lances la fonction RECHERCHER, puis tu ré-enregistres vers tes dessins sources. Tout sera mis à jour. Olivier Bonjour Olivier, Visiblement, ca n'est pas aussi simple que ça pour moi 🙂. J'ai fait les modifs de texte, puis d'autres : decomposer des hachures, des blocs / Ajouter les objets au groupe d'enregistrement / Enregistrement dans les fichiers source / puis enregistrement par aire et au final je me retrouve avec un fichier global quasi vierge et des fichiers sources DWG non enregistrés et des fichiers DWK recent.... je crois que je suis quite pour refaire toutes ces manip une / une et cette fois dans chaque fichier :)! Bonne soirée Windows 10 Autocad Map 3D 2022/Covadis 17 QGIS 3.10 et +
lili2006 Posté(e) le 18 février 2022 Posté(e) le 18 février 2022 Bonjour à toutes et tous, @JVC, Je me permet de penser que la solution donnée par @Olivier Eckmann est la meilleure pour ton problème,.. J'avais eu à faire la même chose pour modifier le nom d'un bloc pour ensuite pouvoir faire des requêtes,..Et Olivier m'avais proposé cette solution,.. => Le 03/02/2022 à 12:26, Olivier Eckmann a dit : tu associes tous tes dessins en dessin source, puis tu fais une requête Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant