Aller au contenu

extraction d\'attribut


Messages recommandés

Posté(e)

Bonjour

 

J'ai un petit soucis, j'aimerai compter tous les bloc que j'ai sur mon dessin et les compter en fonction de ce qu'ils ont dans leurs attributs

 

en gros j'ai un bloc qui représente un rond dans lesquels j'ai mis un attribut. mais je peux avoir plusieurs fois le meme bloc avec des attributs différents, je voudrai avoir par exemple tout les bloc rond avec un 2 dedans et aussi le nombre de bloc qui as un 5 comme attributs.

 

La solution de le faire a la main va etre super longue j'ai plus de 1000 bloc par niveau et j'ai 8 niveau dans mon batiments

 

j'ai fait une recherche dans le forum et aussi dans l'aide je pense qu'une extraction d'attribut serai ma solution mais je comprend rien a la réalisation du gabarit, quelqu'un pourrai m'aider? au pire me dire exactement quoi mettre dans mon gabarit. merci d'avance!

Posté(e)

Salut,

- tu lances l'extrateur,

p1- Tu créés un nouveau tableau

p2 - Tu choisis ce qui t'interresse

p3 - A gauche tu selectionnes les blocs que tu veux compter (tu peux faire une selection avec shift ou ctrl...)

A droite tu choisis les propriétés que tu veux garder (normalement tu dois avoir l'étiquette de tes attributs)

p4 - Tu as le résultats de ce qui va sortir, tu peux l'extraire vers un tableau autocad, ou exterene (excel...)

p5 - Choisis le style si tableau autocad

p6 - Tu peux enfin enregistrer ton gabarit, qui pourras te reservir en p1 !...

 

....

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Laissez tomber je suis le boulet de la semaine, je viens de le faire avec le poste de mon collegue et ca fonctionne parfaitement et pas avec moi, mais le truc c'est que j'ai pas réagis que je suis sous autocad 2007 LT et lui en version complete.

 

Merci quand meme

 

(je viens d'arrivé dans la boite j'ai pas l'habitude d'avoir un autocad LT, sorry encore)

Posté(e)

Salut

 

Un petit lisp qui fait ce que tu recherches et il ne prend que le premier attribut des blocs

 

@+

 

(defun c:compt(/ i js n lst rechercher_nom tbl)
 (defun rechercher_nom(val / att nom)
   (if (vlax-property-available-p val 'effectivename)
     (setq nom (list (vla-get-effectivename val)))
     (setq nom (list (vla-get-name val)))
   )
   (if (eq (vla-get-hasattributes val) :vlax-true)
     (progn
       (setq att (vla-get-textstring (car (vlax-invoke val 'getattributes))))
       (if (not (member att '(nil "")))
         (setq nom (reverse (cons att nom)))
       )
     )
   )
   nom
 )

 (setq n 0 js (ssget "x" (list (cons 0 "INSERT"))) tbl '() lst '())
 (if js
   (while (setq bl (ssname js n))
     (setq i (cdr (assoc 70 (tblsearch "block" (cdr (assoc 2 (entget bl)))))))
     (if (not (or (eq (logand i  4)  4)
	   (eq (logand i  8)  8)
	   (eq (logand i 16) 16)
              )
         )
       (setq tbl (cons (rechercher_nom (vlax-ename->vla-object bl)) tbl))
     )
     (setq n (1+ n))
   )
 )
 (while tbl
   (setq n   (length tbl)
         js  (car tbl)
         tbl (vl-remove js tbl)
         lst (cons (cons (itoa (- n (length tbl))) js) lst)
   )
 )
 (if lst
   (foreach n (vl-sort lst '(lambda (a b) (if (= (cadr a) (cadr b))
				     (< (caddr a) (caddr b))
				     (< (cadr a) (cadr b))
				   )
		     )
       )
     (princ (strcat "\n"
	     (substr "     " 1 (- 5 (strlen (car n))))
	     (car n)
	     " "
	     (cadr n)
            )
     )
     (if (caddr n)
       (princ (strcat (substr ".............................." 1 (- 30 (strlen (cadr n))))
	       "avec attribut " (caddr n)
       )
       )
     )
   )
   (princ "\nPas de bloc à dénombrer.")
 )
 (princ)
)

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

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é