Steven Posté(e) le 16 mars 2007 Posté(e) le 16 mars 2007 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.
FRAXA Posté(e) le 16 mars 2007 Posté(e) le 16 mars 2007 pourquoi ne pas faire une extraction avec "attin" des express tools HPZ400 Workstation Intel Xeon W3550 3.07 GHz 6 Go ram QUADRO FX 1800
Steven Posté(e) le 16 mars 2007 Auteur Posté(e) le 16 mars 2007 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.
(gile) Posté(e) le 16 mars 2007 Posté(e) le 16 mars 2007 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
Steven Posté(e) le 16 mars 2007 Auteur Posté(e) le 16 mars 2007 Un petit Lisp vite fait. J'hallucine http://yelims3.free.fr/Hein/Hein35.gifEn tout cas trop fort http://yelims5.free.fr/TopOuNul/Applaudissements01.gifJe 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.
(gile) Posté(e) le 16 mars 2007 Posté(e) le 16 mars 2007 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
Steven Posté(e) le 19 mars 2007 Auteur Posté(e) le 19 mars 2007 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.
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant