Aller au contenu

Gatte avec bloc dynamique


Messages recommandés

Posté(e)

J'ai créé un cartouche en bloc dynamique avec un paramètre de visibilité, mais la commande gatte ne fonctionne pas.

 

Lorsque j'enlève le paramètre, gatte marche à nouveau !!!

 

Il y a t-il une solution pour résoudre le problème ?

 

 

 

 

Posté(e)

Salut,

 

Les Express Tools datent d'avant la version 2006 et les blocs dynamiques et les développeurs d'Autodesk semblent préférer créer de nouvelles interfaces dont personne (ou presque) ne veut plutôt que de mettre à jour des outils dont beaucoup se servent...

 

Tu peux utiliser le LISP MAT de Patrick_35 sur cette page.

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

Il semble qu'il y ait un petit bug dans MAT (je le signale à Patrick_35 dans le sujet approprié).

En attendant, je te propose GATT, une version de GATTE à ma façon qui fonctionne ave les blocs dynamiques.

 

;;; GATT (gile)
;;; Modifier la valeur d'un attribut dans une sélection de blocs

(defun c:gatt (/ *error* att tag blk name val ss)
 (vl-load-com)
 (or *acdoc*
     (setq *acdoc* (vla-get-ActiveDocument (vlax-get-acad-object)))
     )

 (defun *error* (msg)
   (or	(= msg "Fonction annulée")
(princ (strcat "\nErreur: " msg))
   )
   (vla-EndUndoMark *acdoc*)
   (princ)
 )
 
 (if
   (and
     (setq
att (car (nentsel "\nSélectionnez l'attribut à modifier: "))
     )
     (setq att (vlax-ename->vla-object att))
     (= (vla-get-ObjectName att) "AcDbAttribute")
     (setq tag (vla-get-TagString att))
     (setq blk (vla-ObjectIDToObject *acdoc* (vla-get-OwnerID att)))
     (setq name (if (vlax-property-available-p blk 'EffectiveName)
	   (vla-get-EffectiveName blk)
	   (vla-get-Name blk)
	 )
     )
   )
    (if
      (and
 (princ
   (strcat
     "\n\tBloc : "
     name
     "\tEtiquette d'attribut : "
     tag
   )
 )
 (setq val (getstring T "\nNouvelle valeur pour l'attribut: "))
      )
(progn
  (vla-StartUndoMark *acdoc*)
  (princ "\nSélectionnez les blocs ou :")
  (or
    (ssget (list '(0 . "INSERT") (cons 2 (strcat "`*U*," name)))
    )
    (ssget
      "_X" (list '(0 . "INSERT") (cons 2 (strcat "`*U*," name)))
    )
  )
  (vlax-for b (setq ss (vla-get-ActiveSelectionSet *acdoc*))
    (if	(or (= (vla-get-Name b) name)
	    (and (vlax-property-available-p b 'EffectiveName)
		 (= (vla-get-EffectiveName b) name)
	    )
	)
      (foreach a (vlax-invoke b 'GetAttributes)
	(if (= (vla-get-TagString a) tag)
	  (vla-put-TextString a val)
	)
      )
    )
  )
  (vla-delete ss)
  (vla-EndUndoMark *acdoc*)
)
    )
   (princ "\nEntité non valide.")
 )
 (princ)
) 

 

[Edité le 26/9/2008 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)

 

Hello Gilles

 

Ton GATT fonctionne bien mais Le Decapode est perfectionniste ! :)

 

Et donc il faudrait signaler qu'il n'est utilisable que sur des versions 2006 et superieures :P

 

Ce qui est normal mais par exemple sur une 2004 ou 2005, il ne se plante pas

mais fait simplement RIEN DU TOUT ce qui pourrait etre trompeur ... :o

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Merci lecrabe pour ce retour/test sur des versions "anciennes".

 

De toutes façons, l'intérêt de ce LISP est surtout pour les versions 2006 et + sur des blocs dynamiques.

gatte des Express Tools fait bien l'affaire pour les versions plus anciennes et MAT de Patrick_35 est plus convivial et permet plus d'options (quand Patrick aura réparé le bug que je pense avoir décelé.

 

Quoi qu'il en soit, j'ai modifié le code de GATT qui doit désormais fonctionner sur toutes les versions (à partir de 2000 Visual LISP oblige...)

 

[Edité le 26/9/2008 par (gile)]

Gilles Chanteau - gileCAD - GitHub
Développements sur mesure pour AutoCAD

Posté(e)
Merci lecrabe pour ce retour/test sur des versions "anciennes".

 

De toutes façons, l'intérêt de ce LISP est surtout pour les versions 2006 et + sur des blocs dynamiques.

gatte des Express Tools fait bien l'affaire pour les versions plus anciennes et MAT de Patrick_35 est plus convivial et permet plus d'options (quand Patrick aura réparé le bug que je pense avoir décelé.

 

Quoi qu'il en soit, j'ai modifié le code de GATT qui doit désormais fonctionner sur toutes les versions (à partir de 2000 Visual LISP oblige...)

 

[Edité le 26/9/2008 par (gile)]

Posté(e)

 

Hello

 

Pas de souci, je teste le plus souvent possible sur de nombreuses versions pour voir ...

( 2002 - 2009 )

 

Car parfois il y a des surprises !

 

Le Decapode

 

Autodesk Expert Elite Team

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é