Aller au contenu

protection bloc dynamique


Messages recommandés

Posté(e)

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

Posté(e)

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

Posté(e)

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/

Posté(e)

Oui c'était .

 

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

Posté(e)

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

Posté(e)

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

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité