Aller au contenu

cumul valeurs d\'attributs de bloc


Messages recommandés

Posté(e)

voila aprés des centaines d'attout à répétition dans excel pour compter mes valeurs, j'aimerai savoir s'il existe un petit lisp permettant juste de faire la somme des valeurs d'une certaine étiquette d'attribut de plusieurs blocs sélectionnés à l'avance.

 

Etant plus que novice en Lisp, je reviens vers vous pour cette requete.

 

Merci d'avance.

 

KaLoS

Posté(e)

hé bien c long l'extraction, je prefere attout mais il n'y a pas de commande autocad en ligne de commandes.

 

sinon l'astuce etant de faire une extraction de donnees selon la selection courante.

suis je obliger de passer par excel pour établir ma somme? un résultat dans ligne de commandes serait top mais je ne vois pas comment.

Posté(e)

je précise que je n'y connais pas grand chose en lisp meme si je peux à peu prés decrypter le code.

 

à part des petits scripts (command), et en utilisant les commandes autocad.

pour l'instant je ne sais pas faire grand chose.

 

à priori, mon lisp serait plus simple que le script vers lequel tu m'as envoyé puisque de mon coté j'ai le meme bloc (meme nom, meme étiquette)

 

comment lis t'on un attribut de bloc sur une selection et les passer en revue par la suite?

 

 

Posté(e)

c bon j'ai trouvé ce qui me convient le mieux:

 

(defun c:attsum (/ sset sum i l name entDef)
 (setq
   sset (ssget "_P")	; Selection courante des blocs
   sum	 0
 )
 (if sset
   (progn
     (setq
i 0
l (sslength sset)
     )
     (while (< i l)
(setq name (ssname sset i)
      loop T
)
;; Boucle sur les attributs
(while loop
  (setq	name   (entnext name)
	entDef (entget name)
  )
  (if (and (= (cdr (assoc 0 entDef)) "ATTRIB")
	   (= (cdr (assoc 2 entDef)) "ETIQUETTE1")
      )
    ;; On a trouvé l'attribut d'étiquette ETIQUETTE1
    (setq sum  (+ sum (atof (cdr (assoc 1 entDef))))
	  loop nil
    )
  )
  (if (= (cdr (assoc 0 entDef)) "SEQEND")
    (setq loop nil)
  )				; Fin de séquence, on termine la boucle
)
;; Passe à l'insertion de bloc suivante
(setq i (1+ i))
     )
     (prompt (strcat "Somme : " (rtos sum)))
   )
 )
 (princ)
)

 

 

reste à savoir maintenant comment on tourne un bloc avec rot0![Edité le 7/7/2010 par kalos]

 

Posté(e)

Salut,

 

S'il te plait, quand tu postes du code, pour le rendre plus lisible utilise les bbcodes :

 

[surligneur][[/surligneur][surligneur]code[/surligneur][surligneur]][/surligneur] ici le code [surligneur][[/surligneur][surligneur]/code[/surligneur][surligneur]][/surligneur]

 

donne :

 ici  le code 

 

Accessible via l'icône [#] :

http://img94.imageshack.us/img94/8380/bbcode.png

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

Posté(e)

Salut

 

Bravo pour le lisp

 

reste à savoir maintenant comment on tourne un bloc avec rot0

Comme tu sais parcourir une sélection, rechercher les attributs, tu peux facilement changer l'orientation desdits attributs (code dxf 50)

 

@+

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é