Aller au contenu

Nombre de bloc (s)


Bred

Messages recommandés

Bonjour à Tous,

Je cherche à décompter le +simplement possible le nombre de quelque bloc dans un dessin, et mettre ce nombre dans une variable pour la traiter, en évitant de passer par la création d'un tableau dans un fichier séparé ...

Exemple : J'ai inseré des blocs "chaises" et "fauteuil", je m'aperçois qu'il me faut des coussins, je veux donc décompté le nombre de chaise et de fauteuil dans un plan, et ces deux quantité je voudrais qu'ils soient enregistrer dans une variable de mon lisp afin de compter le nombre de coussin qu'il faut pour les inserer...

Le tip-top (mais là j'ai un doute sur la possibilité) serait qu'à partir du moment où j'ai "dit" qu'il fallait des coussins, à chaque fois que je ré-insere une chaise, il me rajoute un coussin...

 

... merci

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

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Si c'est pour intégrer dans une routine :

 

(setq nbre (sslength (ssget "_X" (list '(0 . "INSERT") (cons 2 nom))))) 

 

Sinon un petit defun vite fait :

 

(defun c:nb_bloc (/ nom obj nbre)
 (setq	nom (getstring
      "\nEntrez le nom du bloc à dénombrer ou : "
    )
 )
 (if (= nom "")
   (progn
     (while
(not
  (and (setq obj (entsel "\nSélectionnez le bloc à dénombrer: "))
       (= (cdr (assoc 0 (entget (car obj)))) "INSERT")
  )
)
     )
     (setq nom (cdr (assoc 2 (entget (car obj)))))
   )
 )
 (setq
   nbre (sslength (ssget "_X" (list '(0 . "INSERT") (cons 2 nom))))
 )
 (princ
   (strcat "\n" (itoa nbre) " blocs \"" nom "\" ont été trouvés.")
 )
 (princ)
) 

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

Lien vers le commentaire
Partager sur d’autres sites

Un grand merci pour cette réponse trés rapide, gile.

 

Après un rapide coup d'oeuil, j'aurais juste besoin d'unpetit éclairsisment : dans la commande ssget "_X : je trouve une explication pour ssget "X" ("Crée un jeu de sélection avec tous les objets dans la base de données") ... mais je ne touve pas d'explication pour le mode "_X"...

 

merci encore.

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

Lien vers le commentaire
Partager sur d’autres sites

Dans le cas présent il n'y a pas de différence, mais c'est une habitude que de mettre un underscore avant les commandes et options en anglais pour "internationaliser" le code (le sujet a souvent été abordé, la dernière fois à partir d'ici, je crois)

 

Par ailleurs, certaines options de ssget ne fonctionnent qu'avec underscore (ssget ":S") pour ne sélectionner qu'un objet ne fonctionne pas mais (ssget "_:S") oui. Alors sans me poser la question, je le met systématiquement.

 

[Edité le 9/4/2006 par (gile)]

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

Lien vers le commentaire
Partager sur d’autres sites

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é