Vince2k5 Posté(e) le 10 décembre 2007 Posté(e) le 10 décembre 2007 bonjour, existe-t'il un moyen de protéger les blocs dynamiques lorsque l'on envoie un dwg .Une commande ou fonction qui permettrait de rendre tous les blocs statiques...ou une macro qui sélectionnerait l'ensemble des blocs et décomposeraient... A votre avis ? Vincent
(gile) Posté(e) le 10 décembre 2007 Posté(e) le 10 décembre 2007 Salut, Il me semble que ça a déjà été fait, mais je ne sais plus où. En l'état, le LISP purge tout, si tu ne veux pas le faire, supprime la ligne : (vla-PurgeAll *acdoc*) (defun c:un-dyn (/ ss n) (vl-load-com) (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object))) ) (princ "\nSélectionnez les blocs ou [b]: ") (or (setq ss (ssget '((0 . "INSERT")))) (setq ss (ssget "_X" '((0 . "INSERT")))) ) (if ss (progn (vla-StartUndoMark *acdoc*) (vlax-for b (vla-get-ActiveSelectionSet *acdoc*) (if (= (vla-get-IsDynamicBlock b) :vlax-true) (progn (setq eff (vla-get-EffectiveName b) n 1 ) (while (tblsearch "BLOCK" (setq name (strcat eff "_" (itoa n)))) (setq n (1+ n)) ) (vla-ConvertToStaticBlock b name) ) ) ) (vla-PurgeAll *acdoc*) (vla-endundoMark *acdoc*) ) ) (princ) ) [Edité le 11/12/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 10 décembre 2007 Posté(e) le 10 décembre 2007 Bonsoir à toutes et tous, En effet (gile), Bred avait proposé ceci (Commande: DYN2STAT) => (defun c:dyn2stat (/ n ss) (setq n 0) (if (setq ss (ssget "_X" '((0 . "INSERT")))) (foreach bl (mapcar 'cadr (ssnamex ss)) (setq bl (vlax-ename->vla-object bl)) (if (= (vla-get-IsDynamicBlock bl) :vlax-true) (vla-ConvertToStaticBlock bl (strcat (vla-get-EffectiveName bl) "_" (itoa (setq n (1+ n))) ) ) ) ) ) ;;(vla-PurgeAll (vla-get-ActiveDocument (vlax-get-acad-object))) (princ) ) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
LUDWIG Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 Oui c'était là. Attention, sauvegarde ton dessin d'abord. Moi, je l'utilise comme ça quand j'ai besoin de transférer :- j'enregistre mon dessin- j'enregistre sous dans un répertoire temporaire (le bureau le plus souvent)- je fais un dyn2stat- je contrôle que ça ait bien fonctionné et que le purge all ait bien fonctionné- j'enregistre- je fais un etransmit qui me fait un zip format 2000 (et lié les Xref).- j'envoie mon mail Si d'ailleurs ça pouvait être automatiser ;) ça m'arrangerait !!! Autocad 2021 - Revit 2022 - Windows 10
(gile) Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 Le LISP que je donne ici (réponse 1) est mieux abouti que l'autre (dyn2stat) : on peut annuler et il verifie que nouveau nom donné au bloc n'existe pas déjà (ce qui devrait provoquer un erreur) Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
lili2006 Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 Bonsoir à toutes et tous, on peut annuler et il verifie que nouveau nom donné au bloc n'existe pas déjà (ce qui devrait provoquer un erreur) En effet ! Merci (gile) Civil 3D 2025 - COVADIS_18.3b https://www.linkedin...3%ABt-95313341/
Vince2k5 Posté(e) le 11 décembre 2007 Auteur Posté(e) le 11 décembre 2007 j'ai une erreur avec les 2 lisp: erreur: no function definition: VLAX-ENAME->VLA-OBJECT ça vient d'ou ? j'ai effectuer le test sur un version complète et non LT.
(gile) Posté(e) le 11 décembre 2007 Posté(e) le 11 décembre 2007 J'ai oublié (encore une fois, de mettre un (vl-load-com) pour charger les fonction Visual LISP. Je corrige le premier. Oupss ! je n'avais pas vu qu'on était dans un forum LT. Sans programmation, je ne vois guère que sélection rapide et décomposer. [Edité le 11/12/2007 par (gile)] Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour 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