Aller au contenu

Recherche de bloc avec attributs rempls et non remplis


Steven

Messages recommandés

Salut,

 

Je souhaiterais savoir si il y a un moyen de connaître en une manip d'afficher les blocs dans un dessins avec des d'attributs remplis et non remplis.

 

Par exemple:

 

J'ai un bloc "Armoire" avec comme attibuts; Hauteur, largeur, Profondeur.

 

J'insère 100 fois cette armoire. Sur les 100 armoires il y a 40 armoires avec toutes les valeurs d'attribut renseignées et il y a 60 armoires dont la valeur de l'attribut profondeur n'est pas remplie.

 

Je souhaiterais donc en une manip faire en sorte qu'AutoCAD m'affiche dans une couleur les armoires dont la profondeur n'est pas indiquée.

 

C'est possible docteur?

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Parce qu'on ne veut pas faire une extraction. On veut que les blocs dont la profonseur n'est pas renseigné s'affichent à l'écran.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Un petit LISP vite fait qui, j'espère, répond à ta demande.

 

Edit : Nouvelle version

 

(defun c:att-vide (/ AcDoc bl name att ss col)
 (vl-load-com)
 (setq AcDoc (vla-get-ActiveDocument (vlax-get-Acad-object)))
 (if (and
(setq bl
       (car
	 (entsel "\nSélectionnez une référence du bloc à tester: ")
       )
)
(setq bl (vlax-ename->vla-object bl))
(= (vla-get-ObjectName bl) "AcDbBlockReference")
(setq name (if (vlax-property-available-p bl 'EffectiveName)
	     (vla-get-EffectiveName bl)
	     (vla-get-Name bl)
	   )
)
     )
     (if (setq ss (ssget "_X" (list '(0 . "INSERT") (cons 2 (strcat name ",`*U*")))))
(progn
  (initget "Couleur Surbrillance")
  (if (/= (setq	col
		 (getkword
		   "\Choisir une option [Couleur/Surbrillance] : "
		 )
	  )
	  "Surbrillance"
      )
    (setq col (acad_colordlg 1))
  )
  (vla-StartUndoMark AcDoc)
  (vlax-map-collection
    (vla-get-ActiveSelectionSet AcDoc)
    '(lambda (x)
       (if (and	(or (= (vla-get-Name x) name)
		    (and (wcmatch (vla-get-Name x) "`*U*")
			 (= (vla-get-EffectiveName x) name)
		    )
		)
		(member	""
			(mapcar	'vla-get-TextString
				(vlax-invoke x 'getAttributes)
			)
		)
	   )
	 (if (numberp col)
	   (vla-put-color x col)
	   (vla-HighLight x :vlax-true)
	 )
       )
     )
  )
  (vla-EndUndoMark AcDoc)
)
(princ (strcat "\nAucun bloc \""
	       name
	       "\" n'est inséré dans le dessin."
       )
)
     )
   (princ (strcat "\nAucun bloc \""
	   name
	   "\" dans la collection du dessin."
   )
   )
 )
 (princ)
)

 

[Edité le 16/3/2007 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

Un petit Lisp vite fait. J'hallucine http://yelims3.free.fr/Hein/Hein35.gif

En tout cas trop fort http://yelims5.free.fr/TopOuNul/Applaudissements01.gif

Je l'essayerai Lundi matin en arrinant au boulot et je te donnerai la réponse.

Merci encore http://yelims5.free.fr/TopOuNul/Super01.gif

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

J'ai un peu amélioré le LISP.

 

- Possibilité de choisir entre changer la couleur des blocs (ne fonctionne que si les entités composant le bloc sont en couleur "DUBLOC") ou les mettre en surbrillance (un REGEN supprime toutes les surbrillances ou la sélection d'un bloc, pour ATTEDIT par exemple, supprime la surbrillance du bloc édité).

- Fonctionnement avec les blocs dynamiques modifiés (blocs anonymes).

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Ca y est, j'ai essayé le lisp et je le trouve mortel. par contre on me demande un truc en plus:

C'est de faire la même chose mais il faudrait que l'on sache quelle ou quelles valeur(s) d'attribut n'est pas remplie.

Je sais là ça commence à devenir super chaud mais bon, si ce n'est pas possible bah ils feront sans.

En attendant, moi, je vais me contenter du lisp existant :-)

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

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é