Aller au contenu

REDEFINITION DE BLOC DYNAMIQUE


zara

Messages recommandés

Bonjour,

 

Après l'utilisation d'un lisp pour la redéfinition des blocs du dessin à partir d'un dossier contenant tous les blocs références.

J'ai un souci avec les blocs dynamiques.Ces derniers ne se synchronisent pas avec l’éditeur de bloc car un paramètre a été utilisé.

Mais quand je rentre dans l’éditeur je fais un zoom étendu et que j'enregistre tout se replace bien.

Ça fonctionne bien aussi avec design center en faisant redéfinir mais trop long de faire bloc par bloc.

Y aurait il un moyen de synchroniser les blocs comme attsync?

 

 

https://uptobox.com/n3r2qv3wtipz

 

Merci par avance.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour Christian,

 

Merci pour cette réponse en effet ça pourrait être la solution.

Où et comment rajouter une ligne qui permettrai l'ouverture de chaque bloc dans l'éditeur de blocs / un zoom étendue / la fermeture / l'enregistrement.

 

 

;; Redefine All Blocks  -  Lee Mac
(defun c:redefall ( / bln dir doc dwg lst obj org spc )

   (setq dir "D:\\_DOSSIER ACTIF\\") ;; Directory of Block Library; nil to use Support Path

   (if dir
       (setq dir (strcat (vl-string-right-trim "\\" (vl-string-translate "/" "\\" dir)) "\\"))
       (setq dir "")
   )
   (cond
       (   (= 4 (logand 4 (cdr (assoc 70 (tblsearch "layer" (getvar 'clayer))))))
           (princ "\nCurrent layer locked.")
       )
       (   (setq doc (vla-get-activedocument (vlax-get-acad-object))
                 spc (vla-get-modelspace doc)
                 org (vlax-3D-point 0 0)
           )
           (terpri)
           (vlax-for blk (vla-get-blocks doc)
               (if
                   (and
                       (= :vlax-false (vla-get-isxref blk))
                       (= :vlax-false (vla-get-islayout blk))
                       (not (wcmatch (setq bln (vla-get-name blk)) "`**,*|*"))
                   )
                   (if (setq dwg (findfile (strcat dir bln ".dwg")))
                       (progn
                           (princ (strcat "Redefining block: " dwg "\n"))
                           (setq obj (vla-insertblock spc org dwg 1.0 1.0 1.0 0.0))
                           (if (= :vlax-true (vla-get-hasattributes obj))
                               (setq lst (vl-list* "," bln lst))
                           )
                           (vla-delete obj)
                       )
                       (princ (strcat "Unable to locate block: " dir bln ".dwg\n"))
                   )
               )
           )
           (if lst
               (progn
                   (princ "Synchronising attributes for redefined blocks...\n")
                   (vl-cmdf "_.attsync" "_N" (apply 'strcat (cdr lst)))
               )
           )
           (textscr)
           (vla-regen doc acallviewports)
       )
   )
   (princ)
)
(vl-load-com) (princ)

 

Merci par avance

 

Simon

Lien vers le commentaire
Partager sur d’autres sites

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é