lostincad Posté(e) le 6 mars 2007 Posté(e) le 6 mars 2007 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
(gile) Posté(e) le 7 mars 2007 Posté(e) le 7 mars 2007 Salut, Tu peux utiliser la commande SELECTRAP (_QSELECT). Gilles Chanteau - gileCAD - GitHub Développements sur mesure pour AutoCAD
ticticmarc Posté(e) le 7 mars 2007 Posté(e) le 7 mars 2007 Hello !Et une bonne extraction d'attributs , ça marche aussi avec des blocs sans attributs et ça compte vite et bien avec calques et tout et tout
grand_sapin Posté(e) le 7 mars 2007 Posté(e) le 7 mars 2007 Salut Et sinon, tu as aussi la commande bcount si jamais tu as les express tools installés sur ton PC. a+ Rémy
djn06 Posté(e) le 7 mars 2007 Posté(e) le 7 mars 2007 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)
lostincad Posté(e) le 6 avril 2007 Auteur Posté(e) le 6 avril 2007 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...
Fruity Posté(e) le 6 avril 2007 Posté(e) le 6 avril 2007 Lisp fourni par Tramber: (defun c:sel(/ blo sel) (sssetfirst nil) (setq blo(car(entsel))) (if(=(cdr(assoc 0(entget blo)))"INSERT") (sssetfirst (setq sel(ssget "X"(list(cons 0 "INSERT") (assoc 2(entget blo))))) sel))) un fichier LSP que tu charges au démarrage. Tape SEL https://www.facebook.com/aedenhivanovahttp://ca-vous-enerve.blogspot.com/
(gile) Posté(e) le 6 avril 2007 Posté(e) le 6 avril 2007 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
lostincad Posté(e) le 6 avril 2007 Auteur Posté(e) le 6 avril 2007 :P Hum... Comment dire?... C'est quoi un LISP???
(gile) Posté(e) le 6 avril 2007 Posté(e) le 6 avril 2007 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 .lspDepuis 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
lostincad Posté(e) le 6 avril 2007 Auteur Posté(e) le 6 avril 2007 J'ai utilisé le lisp de tamber. c'est magique!!!MERCI BEAUCOUP
Messages recommandés
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 compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant