Fundream Posté(e) le 21 novembre 2023 Posté(e) le 21 novembre 2023 Bonjour à tous, Je souhaite mettre à jour tous les bloc de mon dessin par les blocs portants le même nom contenus dans un autre fichier dwg. J'ai tenté le LISP sans succès, les blocs s'insèrent sans se redéfinir et j'essai donc le Vba dont je n'ai aucune notion. Pour choisir mon fichier source des bloc je souhaite utiliser Application.getopenfilename ("Fichier DWG (*dwg), *dwg") mais visiblement autocad ne reconnais pas la commande. Si vous avez une solution à m'apporter pour réaliser cette tache, se serait d'une grande aide. Merci Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
(gile) Posté(e) le 21 novembre 2023 Posté(e) le 21 novembre 2023 Il y a 2 heures, Fundream a dit : Je souhaite mettre à jour tous les bloc de mon dessin par les blocs portants le même nom contenus dans un autre fichier dwg. J'ai tenté le LISP sans succès, les blocs s'insèrent sans se redéfinir La séquence suivante devrait suffire pour redéfinir un bloc sans insérer de bloc. (command "_.insert" (strcat nomBloc "=" cheminFichierBloc))(command) Il y a 2 heures, Fundream a dit : j'essai donc le Vba Tout ce que tu ferais en VBA AutoCAD tu peux le faire en Visual LISP. Les deux utilisent la même API COM/ActiveX. Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
Fundream Posté(e) le 22 novembre 2023 Auteur Posté(e) le 22 novembre 2023 Je suis désolé Gile mais cette séquence insère le bloc nommé sans mettre a jour l'ancien. J'ai tenté pas mal de chose mais autocad me dit "définition a double du bloc impossible", donc j'ai tenté de renommer les bloc avant insertion des nouveau mais rien ne se passe et ma liste reste désespérément vide... (defun c:UpdateBlocks (/ source-dwg block-list old-block-name new-block-name) (setq source-dwg (getfiled "Sélectionnez le fichier DWG source" "" "dwg" 8)) (if source-dwg (progn (setq block-list (vl-remove-if '(lambda (x) (= (cdr (assoc 2 x)) "*Model_Space")) (dictsearch (namedobjdict) "ACAD_BLOCK"))) (foreach block block-list (progn (setq old-block-name (cdr (assoc 2 block)) new-block-name (strcat old-block-name "-old")) (command "_.-rename" "_B" old-block-name new-block-name) (command "_.-insert" source-dwg old-block-name "_0,0" "_1" "_1" "_0") ) ) ) ) (princ) ) Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
didier Posté(e) le 22 novembre 2023 Posté(e) le 22 novembre 2023 Bonjour @Fundream Hypothèses : Dessin A celui dont les blocs doivent se mettre à jour, Dessin B celui qui a les bons blocs Il est toujours possible d'ouvrir le dessin A, de tout effacer sans purger, d'insérer le dessin B, tous les blocs se redéfiniront puis enregistrer sous un autre nom. Amicalement Éternel débutant... Mon site perso : Programmer dans AutoCAD
Fundream Posté(e) le 23 novembre 2023 Auteur Posté(e) le 23 novembre 2023 Bonjour @didier Si je ne purge pas, l'insertion utilise les blocs déjà présent dans le fichier, ils ne se redéfinissent donc pas. En plus l'idée c'est de redéfinir les blocs en place, exactement au même endroit que les originaux, les plans étant déjà établis mais avec des bloc non à jour. Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
Luna Posté(e) le 23 novembre 2023 Posté(e) le 23 novembre 2023 Coucou, As-tu testé la routine RBloc de Patrick_35 ? De souvenir elle fonctionne sans soucis (aucune idée si cela correspond parfaitement à ton besoin cependant). J'ai également souvenir que depuis la version 2021 (?), je ne suis plus certaine de la version exacte..., AutoCAD a intégré nativement la possibilité de redéfinir une définition de bloc si l'on tente d'insérer un bloc issu d'un autre dessin sous condition que les deux blocs portent strictement le même nom et une définition de bloc différente. Cependant, aucune idée d'à quel point c'est conservateur concernant les propriétés dynamiques et attributs. Bisous, Luna
Fundream Posté(e) le 24 novembre 2023 Auteur Posté(e) le 24 novembre 2023 Merci Luna je vais essayer RBloc mais de mon souvenir ça ne fait pas de changements de masse multiples. Sur autocad 2020 j'arrive à redéfinir les blocs mais va savoir pourquoi, à l'enregistrement ça perd les materiaux... Autocad 2015 - Lumion 3D - SCIA EngineerI7 6700K 4 cores @4.0Ghz - 32Go DDR4 - GTX980ti 6Gb - SSD 512Go - Windows 7 64 bits.
MamyTina Posté(e) le 24 novembre 2023 Posté(e) le 24 novembre 2023 il y a 10 minutes, Fundream a dit : Merci Luna je vais essayer RBloc mais de mon souvenir ça ne fait pas de changements de masse multiples. Sur autocad 2020 j'arrive à redéfinir les blocs mais va savoir pourquoi, à l'enregistrement ça perd les materiaux... Bonjour, Et ça donne quoi avec EDIT_BLOC de @gile? Sinon regarde aussi dans Express Tools Amicalement AutoCad MAP 2023 - Covadis + Autopiste 18.3b www.colas-mayotte.fr
didier Posté(e) le 24 novembre 2023 Posté(e) le 24 novembre 2023 Bonjour Tu n'as pas compris ce que j'expliquais ou alors tu as mal expliqué le problème. Éternel débutant... Mon site perso : Programmer dans AutoCAD
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