Aller au contenu

Extaction de données...........


Messages recommandés

Posté(e)

Bonjour,

Après avoir passé du temps avec ses s........s d'extraction de données, AutoCad réagit n'importe comment!!

ED faites sur des attributs.

Sans rien changer, AutoCAD arrive à voir des changements et me dit de mettre à jour (pas mal je trouve)

Sans parler des erreurs fatales!!

Bref ça me gonfle réellement, et je suis surpris d'être le seul à avoir ce problème....

 

Sinon si quelqu'un connait le moyen de récupérer une somme sur une zone d'attributs, sans être une usine à gaz, mais dans le style des ED de 2006, je suis preneur!!

 

Autrement dit : c'est tellement bien de revenir en arrière!!

Merci 2008 :mad: :mad: :mad:

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

 

Hello

 

Si tu veux avoir simplement la somme d'un certain attribut de bloc par rapport à une sélection globale ou classique avec en plus un seuil de déclenchement, tu peux utiliser cet excellent programme de Gilles :

 

 

;;; Addition de la valeur d'un attribut sur un bloc/symbole

;;; par Gilles le 09/08/2008 - Anciennement ADDATTVAL

;;; On selectionne d'abord un attribut

;;; puis APRES par une selection AutoCAD classique

;;; tous les blocs/symboles "concernes" seront traites

;;; Nouvelles options : Choix d'un seuil de traitement

;;; en mode >= ou en mode

 

 

(defun c:ATT_TOT (/ seuil ing att elst tag ss n tot blk)

(initget "Oui Non")

(if (= "Oui"

(setq seuil (getkword "\nChoix d'un seuil [Oui/Non] : "))

)

(progn

(initget "Inférieur Supérieur")

(or (setq ing

(getkword

"Choisissez une option [inférieur/Supérieur] : "

)

)

(setq ing "Supérieur")

)

(initget 1)

(setq seuil (getreal "\nValeur du seuil: "))

)

)

(and

(setq att (car (nentsel "\nSélectionnez un attribut: ")))

(setq elst (entget att))

(= (cdr (assoc 0 elst)) "ATTRIB")

(setq tag (cdr (assoc 2 elst)))

(princ "\nSélectionnez les blocs ou : ")

(or

(setq ss

(ssget

(list

'(0 . "INSERT")

(assoc 2 (entget (cdr (assoc 330 elst))))

)

)

)

(setq ss

(ssget "_X"

(list

'(0 . "INSERT")

(assoc 2 (entget (cdr (assoc 330 elst))))

)

)

)

)

(setq n -1)

(setq tot 0)

(while (setq blk (ssname ss (setq n (1+ n))))

(setq att (entnext blk))

(while (and att

(setq elst (entget att))

(/= (cdr (assoc 2 elst)) tag)

)

(setq att (entnext att))

)

(if (setq val (distof (cdr (assoc 1 elst))))

(if seuil

(if (= ing "Supérieur")

(and (

(and (

)

(setq tot (+ tot val))

)

)

)

)

(alert (strcat "Total = " (vl-princ-to-string tot)))

(princ)

)

 

 

Le Decapode

 

Autodesk Expert Elite Team

Posté(e)

Salut Patrick_35

 

Merci de prêter attention à mon message... :D

 

En fait c'est un problème d'extraction de données et non pas de liaisons de données.............

 

Je suis charrette mais je regarde ton lisp qui a l'air sympa des que j'ai 5mn.

 

Un exemple

 

http://img513.imageshack.us/img513/4931/eden4.jpg

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

Salut le décapode!

 

Je ne comprend pas bien le lisp de Gilles :exclam:

 

J'ai ce type de message

 

; erreur: type d'argument de comparaison incorrect: 10.19 "Non"

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

Salut,

 

Il y avait effectivement une erreur dans le LISP si on choisit "Non" au seuil

 

Voilà une version corrigée

 

;;; Addition de la valeur d'un attribut sur un bloc/symbole
;;; par Gilles le 09/08/2008 - Anciennement ADDATTVAL
;;; On selectionne d'abord un attribut
;;; puis APRES par une selection AutoCAD classique
;;; tous les blocs/symboles "concernes" seront traites
;;; Nouvelles options : Choix d'un seuil de traitement
;;; en mode >= ou en mode 

(defun c:ATT_TOT (/ seuil ing att elst tag ss n tot blk)
 (initget "Oui Non")
 (if (= "Oui"
 (setq seuil (getkword "\nChoix d'un seuil [Oui/Non] [b]: "))
     )
   (progn
     (initget "Inférieur Supérieur")
     (or (setq	ing
	 (getkword
	   "Choisissez une option [inférieur/Supérieur] : "
	 )
  )
  (setq ing "Supérieur")
     )
     (initget 1)
     (setq seuil (getreal "\nValeur du seuil: "))
   )
   (setq seuil nil)
 )
 (and
   (setq att (car (nentsel "\nSélectionnez un attribut: ")))
   (setq elst (entget att))
   (= (cdr (assoc 0 elst)) "ATTRIB")
   (setq tag (cdr (assoc 2 elst)))
   (princ "\nSélectionnez les blocs ou [b]: ")
   (or
     (setq ss
     (ssget
       (list
	 '(0 . "INSERT")
	 (assoc 2 (entget (cdr (assoc 330 elst))))
       )
     )
     )
     (setq ss
     (ssget "_X"
	    (list
	      '(0 . "INSERT")
	      (assoc 2 (entget (cdr (assoc 330 elst))))
	    )
     )
     )
   )
   (setq n -1)
   (setq tot 0)
   (while (setq blk (ssname ss (setq n (1+ n))))
     (setq att (entnext blk))
     (while (and att
	  (setq elst (entget att))
	  (/= (cdr (assoc 2 elst)) tag)
     )
(setq att (entnext att))
     )
     (if (setq val (distof (cdr (assoc 1 elst))))
(if seuil
  (if (= ing "Supérieur")
    (and (	    (and (	  )
  (setq tot (+ tot val))
)
     )
   )
 )
 (alert (strcat "Total = " (vl-princ-to-string tot)))
 (princ)
) 

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

Posté(e)

OK

Merci à vous!

 

Il semble que le lisp à des petits problèmes

Souvent une réponse du style totale = nil

Pourquoi faut il sélectionner 2 fois le premier attribut :casstet:

Autrement dit

Pourquoi

Sélectionnez un attribut:

Et choix des objets

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

Posté(e)

Il semble que le lisp à des petits problèmes

Souvent une réponse du style totale = nil

 

Le LISP retourne nil quand la routine n'aboutit pas, par exemple parce qu'il n'y a pas de sélection valide.

 

Pourquoi faut il sélectionner 2 fois le premier attribut :casstet:

Autrement dit

Pourquoi

Sélectionnez un attribut:

Et choix des objets

 

La première sélection d'un attribut permet d'identifier le bloc et l'attribut (son étiquette).

Ensuite, l'utilisateur sélectionne les blocs (uniquement ceux de même nom) et additionne les valeurs des attributs ayant la même étiquette que le premier attribut sélectionné.

 

Peut-être n'est ce pas la routine qu'il te faut ?

 

Si tu veux ajouter les valeurs d'attributs appartenant à des blocs différents, il faudra choisir les attributs un par un.

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

Posté(e)

Hello

 

Desole, je n'avais pas vu l'erreur car j'utilisais toujours un seuil ! :o

 

Comme quoi il faut TOUT tester !! :casstet:

 

Le Decapode

 

PS: Pour info cette routine ATT_TOT fonctionne MEME sur un vieil AutoCAD 2002 ! :P

 

 

[Edité le 22/10/2008 par lecrabe]

Autodesk Expert Elite Team

Posté(e)

ok merci des précisions!!

 

En fait je pense à une routine.

 

-Sélection des polylignes de surfaces (contour des pièces) soit une par une ou par sélection de zone.

-Hachurage des zones de sélection (polylignes sélectionnées) sur un calque non imprimable

-Total des zones à placer sur un texte.

 

le fait de hachurer permetterait quand on sélectionne le texte résultant des zones de voir par surbrillance les zones concernées.

 

Vous en pensez quoi?

"Je suis fasciné par l'air. Si on enlevait l'air du ciel, tous les oiseaux tomberaient par terre... Et les avions aussi... En même temps l'air tu peux pas le toucher... Ca existe et ça existe pas... Ca nourrit l'homme sans qu'il ait faim... It's magic ! L'air c'est beau en même temps tu peux pas le voir, c'est doux et tu peux pas le toucher... L'air, c'est un peu comme mon cerveau..."

J-C Van Damme

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é