CADxp: Comptabiliser des blocs dynamiques - CADxp

Aller au contenu

  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

Comptabiliser des blocs dynamiques

#1 L'utilisateur est hors-ligne   eryk 

  • ceinture orange
  • Groupe : Membres
  • Messages : 25
  • Inscrit(e) : 15-juin 05

Posté 01 décembre 2014 - 19:41

Bonjour,

J'ai un bloc dynamique qui contient des blocs des fauteuils de salles de tailles différentes (19'', 20'', 21'') que je cherche à comptabiliser. J'ai fait quelques recherches, essayé la commande _EATTEXT mais pas de résultat probant.

Un ancien post parlé d'un fichier Lisp, fourni par _Gile mais le lien ne fonctionne plus.

Quelqu'un aurait une autre solution?

Merci, bonne fin de journée !!
0

#2 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 7em dan
  • Groupe : Membres
  • Messages : 3581
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 01 décembre 2014 - 19:46

Bonsoir Eryk,

Le lisp que tu cherches est peut-être celui-ci.
Toutefois, sans avoir besoin de lisp, pour comptabiliser tes bloc imbriqués dans tes blocs dynamiques, tu peux très bien faire une extraction en faisant une table.

Commande: Tableau
ou
Commande: _table

Bonne soirée.
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#3 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8368
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 01 décembre 2014 - 21:13

Hello

Non je pense que le Lisp/VLisp recherche est l'excellent BCNT de Gilles (comme d'habitude)

La bonne version de BCNT compte simplement dans l'ecran texte les blocs (classiques+dynamiques)

Merci Gilles !

Bye, lecrabe

Fichier(s) joint(s)


Autodesk Expert Elite Team
0

#4 L'utilisateur est hors-ligne   eryk 

  • ceinture orange
  • Groupe : Membres
  • Messages : 25
  • Inscrit(e) : 15-juin 05

Posté 02 décembre 2014 - 22:21

Salut,

Merci pour vos réponses mais en fait, j'ai trouvé ce dont j'avais besoin et bien sûr, fourni par _Gile. C'est le lisp SSD qui te permet de comptabiliser les blocs dynamiques par sélection suivant la propriété ''Visibilité''.

Le lisp Bcount lui ne fonctionne pas avec les blocs dynamiques, il ne les reconnaît pas.

Bonne soirée : )
0

#5 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8368
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 02 décembre 2014 - 23:20

Hello

Tu plaisantes mais je suis "presque" sur que le Lisp BCNT (de Gilles)
- desole pas d'AutoCAD pour verifier -
traite parfaitement les blocs dynamiques : Comptage simple dans l'ecran texte

Par contre la routine BCOUNT des Express Tools ne les reconnait pas !!

Bonne Nuit, Bye, lecrabe
Autodesk Expert Elite Team
0

#6 L'utilisateur est hors-ligne   (gile) 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 11181
  • Inscrit(e) : 02-septembre 05

Posté 03 décembre 2014 - 07:34

Salut,

Sinon, il y a aussi BlockCountToolTip, un petit plug-in pour AutoCAD 2012 et plus qui affiche le nombre de références du bloc survolé par le curseur dans une info-bulle.
Gilles Chanteau - gileCAD -
Développements sur mesure pour AutoCAD
Image IPB
0

#7 L'utilisateur est hors-ligne   doberman 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 05-juillet 05

Posté 07 janvier 2015 - 10:56

Bonjour a tous,

J'utilise depuis bien longtps la commande Bcount, mais m'etant mis au bloc Dynamique, la commande BCNT de Gile est indispensable...

Par contre peut on "l'améliorer" en prenant en compte les bloc imbriqué?
Je m'explique, j'ai un bloc dynamique constitué de 3 bloc avec 1 Ventilo-Conv, 1 Grille Extraction et 1 Grille de Soufflage.
Quand je lance BCNT, j'ai bien le nombre de Bloc Dyn mais pas mon nombre de Griles ..??

Ya t'il un moyen de palier a mon probleme ?
0

#8 L'utilisateur est hors-ligne   doberman 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 05-juillet 05

Posté 14 janvier 2015 - 11:25

Bonjour a tous, Je sais pas si ma question précedente est tres compréhensible au vue de vos nombreuses réponse (rires forts) ...

J'ai une autre question qui se rapproche de ma précedente : Est til possible de Compter les blocs dynamiques selon leur parametres ?
Je m'explique : J'ai un porte dynamique avec 3 Tailles possible. Serait-il possible de faire un comptage en differentient les tailles.
Ex: Avoir 3 tailles 0.84 et 2 tailles 0.74 plutot que d'avoir 5 portes étirables ?
0

#9 L'utilisateur est hors-ligne   bryce 

  • ceinture noire 4em dan
  • Groupe : Membres
  • Messages : 2160
  • Inscrit(e) : 03-mars 06
  • Location68 Mulhouse

Posté 15 janvier 2015 - 12:29

Bonjour,

Tu peux essayer avec l'extraction de données, même si c'est un peu plus fastidieux.
0

#10 L'utilisateur est hors-ligne   doberman 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 05-juillet 05

Posté 27 janvier 2015 - 09:55

Hello, Oui c'est en effet fastidieux !
0

#11 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6381
  • Inscrit(e) : 06-janvier 03

Posté 27 janvier 2015 - 15:44

Salut

Je pense que l'on va boire un coup à ma santé ;)

(defun c:cnd(/ js lst n tbl)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (and (ssget (list (cons 0 "insert")))
    (progn
      (vlax-for ent (setq sel (vla-get-activeselectionset doc))
	(and (eq (vla-get-isdynamicblock ent) :vlax-true)
	  (setq tbl (cons (cons (vla-get-effectivename ent)
				(vlax-get (car (vlax-invoke ent 'getdynamicblockproperties)) 'value)
			  )
			  tbl
		    )
	  )
	)
      )
      (vla-delete sel)
      (while tbl	
	(setq n   (length tbl)
		  js  (car tbl)
		  tbl (vl-remove js tbl)
		  lst (cons (cons (- n (length tbl)) js) lst)
	)
      )
      (mapcar '(lambda(x)
		(princ "\n")
		(repeat (- 4 (strlen (itoa (car x))))
		  (princ " ")
		)
		(princ (car x))
		(princ (strcat " " (cadr x) "..." ))
		(princ (cddr x))
	      )
	      (vl-sort lst '(lambda(a B)(if (eq (cadr a) (cadr B))
					  (< (cddr a) (cddr B))
					  (< (cadr a) (cadr B))
					)
			    )
	      )
      )
    )
  )
  (vla-endundomark doc)
  (princ)
)


@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#12 L'utilisateur est hors-ligne   doberman 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 05-juillet 05

Posté 27 janvier 2015 - 15:56

Heuuuu Merci, mais je sais pas quoi en faire .....
Je l'ai coller dans un Bloc note, renommer en LSP, mais des que je veut le passer sous autocad il me dit : Erreur : Placement incorect d'un point d'entrée
0

#13 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6381
  • Inscrit(e) : 06-janvier 03

Posté 27 janvier 2015 - 17:17

Voir le messagedoberman, le 27 janvier 2015 - 15:56 , dit :

Heuuuu Merci, mais je sais pas quoi en faire .....
Je l'ai coller dans un Bloc note, renommer en LSP, mais des que je veut le passer sous autocad il me dit : Erreur : Placement incorect d'un point d'entrée

Tu as surement fait un mauvais copier/coller.
Refais le directement sur autocad pour voir

@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#14 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8368
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 27 janvier 2015 - 18:01

Hello Mr P35

MERCI et RESPECT pour cet excellente routine qui comptabilise les Blocs dynamiques
dans l'ecran texte en fonction d'UN etat de visibilite !

Au fait que se passe t-il si on a N etats de visibilite sur UN bloc ?
CND traite seulement le 1er etat ou TOUS les etats ??

MERCI, Meilleurs Voeux et surtout LA SANTE, Bye, lecrabe
Autodesk Expert Elite Team
0

#15 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6381
  • Inscrit(e) : 06-janvier 03

Posté 28 janvier 2015 - 08:59

Salut et tous mes voeux de bonheur et de santé pour cette nouvelle année.

J'avais fait au plus simple mais comme tu le demandes
(defun c:cnd(/ js lst n tbl)
  (setq doc (vla-get-activedocument (vlax-get-acad-object)))
  (vla-startundomark doc)
  (and (ssget (list (cons 0 "insert")))
    (progn
      (vlax-for ent (setq sel (vla-get-activeselectionset doc))
	(and (eq (vla-get-isdynamicblock ent) :vlax-true)
	  (setq tbl (cons (cons (vla-get-effectivename ent)
				(mapcar '(lambda(x)(list (vlax-get x 'propertyname) (vlax-get x 'value)))
					(vl-remove-if '(lambda(x)(eq (vla-get-show x) :vlax-false))
						      (vlax-invoke ent 'getdynamicblockproperties)
					)
				)
			  )
			  tbl
		    )
	  )
	)
      )
      (vla-delete sel)
      (while tbl	
	(setq n   (length tbl)
	      js  (car tbl)
	      tbl (vl-remove js tbl)
	      lst (cons (cons (- n (length tbl)) js) lst)
	)
      )
      (mapcar '(lambda(x)
		(princ "\n")
		(repeat (- 6 (strlen (itoa (car x))))
		  (princ " ")
		)
		(princ (car x))
		(princ (strcat " " (cadr x)))
		(mapcar '(lambda(x)
			  (princ (strcat " ... \"" (car x) " : "))
			  (princ (cadr x))
			  (princ "\"")
			)
			(cddr x)
		)
		
	      )
	      (vl-sort lst '(lambda(a B)(< (cadr a) (cadr B))))
      )
    )
  )
  (vla-endundomark doc)
  (princ)
)


@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#16 L'utilisateur est hors-ligne   doberman 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 05-juillet 05

Posté 28 janvier 2015 - 09:54

Merci, ca marche nikel... Dailleurs ya bcp trop d'information du coup (rires forts) !!

A la tienne Patrick !!!

Par contre, ca ne prend pas en compte les Bloc imbriqué apparement ??

Citation

J'utilise depuis bien longtps la commande Bcount, mais m'etant mis au bloc Dynamique, la commande BCNT de Gile est indispensable...

Par contre peut on "l'améliorer" en prenant en compte les bloc imbriqué?
Je m'explique, j'ai un bloc dynamique constitué de 3 bloc avec 1 Ventilo-Conv, 1 Grille Extraction et 1 Grille de Soufflage.
Quand je lance BCNT, j'ai bien le nombre de Bloc Dyn mais pas mon nombre de Griles ..??

Ya t'il un moyen de palier a mon probleme ?
0

+
-


0

#17 L'utilisateur est hors-ligne   lecrabe 

  • ceinture rouge et blanche 8em dan
  • Groupe : Moderateurs
  • Messages : 8368
  • Inscrit(e) : 10-décembre 03
  • LocationLoire (42)

Posté 28 janvier 2015 - 11:16

Hello

C complique de traiter des Blocs imbriques !
et en plus des Blocs imbriques dynamiques !! Je ne vois pas trop l'interet !?

Un GRAND MERCI a Patrick_35, Bye, lecrabe
Autodesk Expert Elite Team
0

#18 L'utilisateur est hors-ligne   Steven 

  • ceinture rouge et blanche 7em dan
  • Groupe : Membres
  • Messages : 3581
  • Inscrit(e) : 03-mars 03
  • LocationDans le TARDIS

Posté 28 janvier 2015 - 11:51

L'avantage de l'extraction de données qui est peut-être fastidieuse, quoique... est qu'on peut se faire un tableau dans AutoCAD avec le quantitatif de blocs, blocs dynamiques et blocs imbriqués et que lorsqu'on copie ou supprime des blocs, un clic droite suffit à mettre la table à jour et les paramètres des blocs dynamiques sont pris en compte.
Steven________________________________________
Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.
Pour la maison; Linux Mint et pas de problèmes. Mais pas d'AutoCAD.
En rêve; AutoCAD sous Linux.
0

#19 L'utilisateur est hors-ligne   Patrick_35 

  • ceinture rouge et blanche 8em dan
  • Groupe : Membres
  • Messages : 6381
  • Inscrit(e) : 06-janvier 03

Posté 28 janvier 2015 - 12:04

Voir le messagedoberman, le 28 janvier 2015 - 09:54 , dit :

Par contre, ca ne prend pas en compte les Bloc imbriqué apparement ??

Je rejoins Lecrabe, d'autant qu'un bloc dynamique imbriqué dans un autre bloc n'est plus dynamique.

Voir le messageSteven, le 28 janvier 2015 - 11:51 , dit :

L'avantage de l'extraction de données qui est peut-être fastidieuse, quoique... est qu'on peut se faire un tableau dans AutoCAD avec le quantitatif de blocs, blocs dynamiques et blocs imbriqués et que lorsqu'on copie ou supprime des blocs, un clic droite suffit à mettre la table à jour et les paramètres des blocs dynamiques sont pris en compte.

Et avec des blocs imbriqués qui s'affiche ou pas selon les visibilités ?

@+
Les Lisps de Patrick
Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.
Joseph Joubert, 1754-1824
0

#20 L'utilisateur est hors-ligne   doberman 

  • ceinture verte
  • Groupe : Membres
  • Messages : 81
  • Inscrit(e) : 05-juillet 05

Posté 28 janvier 2015 - 14:18

J'ai du mal m'exprimer....

J'ai un Bloc Dynamique nommé "Gainable" dans lequel j'ai 5 bloc "Normaux" :

- 1 Ventilo-convecteur
- 2 Grilles d'extraction
- 2 Grilles de soufflage

C'est ca que je voulais compter.
0

Partager ce sujet :


  • 2 Pages +
  • 1
  • 2
  • Vous ne pouvez pas commencer un sujet
  • Vous ne pouvez pas répondre à ce sujet

1 utilisateur(s) en train de lire ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)