Aller au contenu

Messages recommandés

Posté(e)

Est ce qu'il est possible de connaitre le nombre de blocs x qui se trouvent sur un calque ou sur l'ensemble des calques plutot que de les compter betement 1 par 1 avec le risque de faire des erruers.

Ex: nb de blocs drainage EP et nb de blocs EU crees sur une plan de voirie.

Merci

Posté(e)

sinon si tes blocs sont dans le meme calque, tu gèle tous les autres et tu fait list tu selectionne tout tes blocs et il te dit leur nombre

Heureux soient les fêlés, car ils laisseront passer la lumière (Michel Audiard)

  • 5 semaines après...
Posté(e)

je reviens à mon probleme de comptage de blocs.

J'ai essayé les commandes '_QSELECT' 'SELECTRAP' , autocad ne reconnait pas la commande (j'ai une version anglaise) BCOUNT ET LIST MARCHENT MAIS C'est extremement long de selectionner tous les blocs un par un.

Est ce qu'il existe une solution pour les compter sans tous les selectionner.

Je voudrais selectionner un bloc et taper une commande qui m'indique combien de blocs du même type se trouvent sur le calque.

Est ce que cette commande existe?

Merci...

Posté(e)

Salut,

 

Le LISP de Tramber marchera très bien sauf avec les blocs anonymes (blocs dynamiques)

 

Si tu veux aussi les compter, essayes celui-ci

 

(defun c:cnt_ref (/ ent cnt name)
 (vl-load-com)
 (if (and
(setq ent (car (entsel)))
(= (cdr (assoc 0 (entget ent))) "INSERT")
     )
   (progn
     (setq ent	(vlax-ename->vla-object ent)
    cnt	0
     )
     (if (vlax-property-available-p ent 'EffectiveName)
(setq name (vla-get-EffectiveName ent))
(setq name (vla-get-Name ent))
     )
     (setq ss (ssget "_X" '((0 . "INSERT"))))
     (vlax-map-Collection
(vla-get-ActiveSelectionSet
  (vla-get-ActiveDocument (vlax-get-acad-object))
)
'(lambda (ref)
   (if (vlax-property-available-p ref 'EffectiveName)
     (if (= name (vla-get-EffectiveName ref))
       (setq cnt (1+ cnt))
     )
     (if (= name (vla-get-Name ref))
       (setq cnt (1+ cnt))
     )
   )
 )
     )
     (alert
(strcat
  (itoa cnt)
  " blocs "
  (strcase name)
  " dans le dessin."
)
     )
   )
   (alert "L'objet sélectionné n'est pas un bloc.")
 )
 (princ)
) 

 

Sinon tu peux aussi utiliser celui-là, de Tramber aussi. Il met le résultat dans un tableau.

 

[Edité le 6/4/2007 par (gile)]

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

Posté(e)

Il s'agit là de petits outils écrits dans un langage de programmation appelé LISP.

 

Pour les utiliser voici ne méthode (il y en a d'autres) :

Tu copies/colles le code ci dessus (tout le code, rien que le code) dans le bloc-notes Windows (pas Word).

Tu l'enregistres sous le nom que tu veux (Toto.lsp par exemple) avec l'extension .lsp

Depuis AutoCAD, dans le menu Outils > AutoLISP > Charger une application... tu charges le fichier dans le dessin courant. Si tu veux que le LISP soit chargé à chaque démarrage, ajoutes le à la liste "Au démarrage" (la valise).

Pour lancer l'application, tapes à la ligne de commande ce qui est écrit après le c: dans defun c:* (sel, cnt_ref ou tabloblo pour celui du lien que j'ai donné)

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

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é