Aller au contenu

Lisp et listes cumul des poids


Messages recommandés

Invité ingoenius
Posté(e)

L'idee est d'avoir une liste tipe dictionnaires de python

ou on as Nom_du_Bloc et Poids Du Bloc

 

ensuite je vais sélectionner dans le dessins des blocs (qui n'ont pas d'attribut sinon serait facile a faire)

et je retrouve le poids cumulée de touts cela, le problème est :

 

1

comment faire si j'ai sélectionné un bloc avec un nom qui est pas prévu' dans le script autolisp?

(dans ce ca la il faudrait lui attribuer un poids de 0)

 

2

et enfin comment construire ce type de liste en autolisp? car mon test jusqu'à présent est avec une série infinie de conditions, mais je sais pas si c'est la meilleure façon pour le faire

 

(setq Pb (cond

	   ((= nome "ACL") 11)
	   ((= nome "MOTEUR") 25.2) .........

 

 

merci

Posté(e)

Salut,

 

Utilise une liste d'association :

(setq p_lst '(("ACL" . 11.0) ("MOTEUR" . 25.2) ...))

 

et ensuite :

(setq poids_total 0.0
     n		  0
)
(if (setq ss (ssget '((0 . "INSERT"))))
 (while (setq blk (ssname ss n))
   (setq nome (cdr (assoc 2 (entget blk)))
  n    (1+ n)
   )
   (if	(setq p (assoc nome p_lst))
     (setq poids_total (+ poids_total (cdr p)))
   )
 )
)

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

Invité ingoenius
Posté(e)

merci Gile,

 

mais comment résoudre le cas pour les blocs qui ont pas d'association et leur attribuer une valeur de zero?

aujourd'hui hui je ne peut pas mettre tout les bloc que je possède dans la liste, donc il faut un système pour les traiter de façon neutre

 

 

Je pensait a un

 

 

 
(setq Vide 0.0)

 

et de pouvoir teste si le nom du bloc est dan la liste alors prendre la valeur associer, sinon attribuer a ce bloc la valeur du bloc vide donc 0.0, mais je sais pas le rajouter a ton code ;-(

 

 

 

[Edité le 27/4/2010 par ingoenius]

Posté(e)

Dans l'expression :

(if	(setq p (assoc nome p_lst))
 (setq poids_total (+ poids_total (cdr p)))
)

si le nom du bloc n'est pas dans la liste, rien n'est rajouté à poids_total.

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

Invité ingoenius
Posté(e)

Parfait Gile ancore merci

 

derniere petite chose on peut fair en sorte qu'il considère pas la casse des noms?

de façon a prendre les nome de blocs mémé avec des majuscule minuscule pas exactement égales?

 

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é