Aller au contenu

"Verrouiller" un bloc dynamique


Messages recommandés

Posté(e)

Bonjour,

 

Je souhaiterai savoir si il y a un moyen de "verrouiller" un bloc dynamique ?...

 

J'ai un même bloc insérés plusieurs fois dans un plan mais avec des dimensions et orientations différentes... une fois insérés à ma convenance, je souhaiterai pouvoir le verrouiller ou le bloquer afin de savoir que celui ci est fait, que mes paramètres ne changeront plus "par erreur de manip" par exemple, et que je peux passer au suivant...

Ou faire "disparaitre" les poignées dynamiques est une possibilité également...

 

Merci de votre aide et bonne journée!

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Posté(e)

J'ai une solution mais c'est un peu con...

 

Tu prend un calque que tu vérouille et une fois que ton bloc et fait tu le met dans ce calque...

 

Oui c'est débile j'avais prévenu.

"98% des soucis informatiques sont assis entre la chaise et le bureau !"

 

"C'est parce que la vitesse de la lumière est supérieure à celle du son que tant de gens paraissent brillants avant d'avoir l'air con."
Posté(e)

Slt,

 

Ou faire "disparaitre" les poignées dynamiques est une possibilité également...

 

Pour faire cela facilement si tes références de bloc sont en 2D, l'astuce consiste à modifier un des paramètre d'échelle d'insertion de ta référence de bloc (Echelle en Z bien souvent pour ne pas avoir d'incidence graphique) l'élément n'ayant plus une échelle d'insertion homogène, ses propriétés dynamique sont "verrouillé"... (l'opération inverse permet d'accéder à nouveau aux propriétés dynamiques)

 

A+ Bruno

Apprendre => Prendre => Rendre

Posté(e)

Re,

 

Merci pour vos réponses à tous les deux!

 

@ HBS... euh... pas si con que ca en fait... à lire ta réponse, c'est moi qui me retrouve un peu con plutot! la tete dans le guidon et on ne pense pas au truc "à la con"... :(

 

@ Bruno... +1! ta solution me plait bien! :) Merci...

 

Bonne soirée!

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

Posté(e)

Re,

@ Bruno... +1! ta solution me plait bien! :) Merci...

Dans ce cas et rapidement la macro lisp de ce que je t'ai proposé précédemment, bien que cela ce fait très bien en natif avec filtre et la fenêtre de propriété d'Autocad.

;;;=================================================================
;;; VPBD.LSP V1.01                                          VDH-Bruno
;;;
;;; "Verrouille" Les propriétés dynamiques des références de blocs.
;;; (Modifie l'échelle d'insertion en Z de la référence de bloc) 
;;;

(defun c:vpbd (/ ss i e dxf oldEchZ newEchZ)
 (vl-load-com)
 (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
 (repeat (setq i (if (setq ss (ssget '((0 . "INSERT"))))
                   (sslength ss)
                   0
                 )
         )
   (setq e (ssname ss (setq i (1- i))))
   (if (vlax-invoke (vlax-ename->vla-object e) 'GetDynamicBlockProperties)
     (progn (setq dxf     (entget e)
                  oldEchZ (assoc 43 dxf)
                  newEchZ (cons (car oldEchZ) (1+ (cdr oldEchZ)))
            )
            (entmod (subst newEchZ oldEchZ dxf))
     )
   )
 )
 (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
 (princ)
)

 

La fonction réciproque pour rétablir l'accès aux propriétés dynamique de ta référence de bloc

;;;=================================================================
;;; DVPBD.LSP V1.01                                        VDH-Bruno
;;;
;;; "DéVerrouille" Les propriétés dynamiques des références de blocs.
;;; (Homogénise l'échelle d'insertion en Z de la référence de bloc
;;; en fonction des valeurs d'échelle en X et Y)
;;;

(defun c:Dvpbd (/ ss i e dxf EchX EchY EchZ)
 (vl-load-com)
 (vla-startundomark (vla-get-activedocument (vlax-get-acad-object)))
 (repeat (setq i (if (setq ss (ssget '((0 . "INSERT"))))
                   (sslength ss)
                   0
                 )
         )
   (setq e    (ssname ss (setq i (1- i)))
         dxf  (entget e)
         EchX (assoc 41 dxf)
         EchY (assoc 42 dxf)
   )
   (if (= (cdr EchX) (cdr EchY))
     (entmod (subst (cons 43 (cdr EchX)) (assoc 43 dxf) dxf))
   )
 )
 (vla-endundomark (vla-get-activedocument (vlax-get-acad-object)))
 (princ)
)

 

Et enfin une version plus définitive qui convertie tes références de blocs dynamiques en blocs anonymes, de ce fait ils perdent définitivement l'accès à leurs propriétés dynamiques.

;;;==================================================================
;;; SPBD.LSP V1.01                                          VDH-Bruno
;;;
;;; Supprime les propriétés dynamiques des références de blocs.
;;; (Convertie les références de blocs dynamiques en référence de
;;  bloc anonyme). 
;;;

(defun c:SPBD (/ adoc ss)
 (setq adoc (vla-get-activedocument (vlax-get-acad-object)))
 (vla-startundomark adoc)
 (cond ((ssget '((0 . "INSERT")))
        (vlax-for obj (setq ss (vla-get-activeselectionset adoc))
          (and (vlax-invoke obj 'GetDynamicBlockProperties) (vla-ConvertToAnonymousBlock obj))
        )
        (vla-delete ss)
       )
 )
 (vla-endundomark adoc)
 (princ)
)

A+

Apprendre => Prendre => Rendre

Posté(e)

Bonjour Bruno!

 

Un grand merci pour ces bons LISP... je n'en demandais pas tant, mais j'apprécie le geste! vraiment sympa! :)

 

C'est mon anniv aujourd'hui, je ne m'attendais pas à recevoir un cadeau ici... mais si Mr AutoCad me lit, je veux bien une tite version 2016... ne vous embetez pas avec le papier-cadeau, je ferai sans... merci d'avance! ;)

 

Bonne journée!

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

  • 5 semaines après...
Posté(e)

Sinon Demixav,

 

sur http://lee-mac.com/copytoxref.html encore une solution un peu hardcore mais bon perso je m'en passe plus.

je test la solution de Bruno quand j'ai une minute :P

"98% des soucis informatiques sont assis entre la chaise et le bureau !"

 

"C'est parce que la vitesse de la lumière est supérieure à celle du son que tant de gens paraissent brillants avant d'avoir l'air con."
Posté(e)

Salut HBS,

 

Merci pour ce lien! :)

Si je comprends bien ce LISP et ton idée, c'est de "transférer" mes blocs paramétrés dans une Xréf?

j'avoue ne pas être fan de bosser avec les Xréf...

 

Je me suis servi des LISP de Bruno, ce qui correspond très bien à mes attentes! Simple et rapide! :)

 

Merci à toi en tout cas de revenir sur un sujet passé! c'est sympa! :)

Bonne journée!

Xav

AutoCad Map 3D 2011 - Covadis v16.0d

Windows 7 - 64b

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é