Aller au contenu

calque appartenant au bloc


rinse

Messages recommandés

Bonjour Cadiens,

 

Je souhaiterait savoir si il existe un lisp capable d'afficher quels sont les calque "cachés" dans les blocs (ceux qui n'apparaissent que dans l'éditeur, qui ont été affectés au bloc au moment de sa création).

(Genre tu clique sur le bloc et TOUS les noms de calques apparaissent comme dans la fenêtre propriété.)

 

Malgré mes nettoyage, j'ai toujours des calques "vide", a chaque fois je dois tenter de trouver a quel bloc ils appartiennent. (fastueux et chronophage.)

 

En espérant que qq ait cela dans ses fonds de tiroirs, merci d'avance.

Lien vers le commentaire
Partager sur d’autres sites

Hello

 

OUI une demande fort interessante !

 

Voici "mon" CDC/CCTP a ce sujet ...

 

Un Lisp/VLisp qui sur une selection classique AutoCAD, ne retient que les Blocs & Blocs dynamiques

- Tri pour ne traiter que une seule fois un Bloc donne

- Sur l'ecran texte (ou dans un fichier CSV) ecrire :

Nom du bloc (signaler: statique/dynamique , c important) et derriere,

soit calque ZERO (quand TOUT VA BIEN !),

soit les N noms de calques utilises (y compris ZERO sans doute !?)

( Separateur sans doute la , )

 

Un piege mortel, c d'avoir TOUT bien dessine sur le calque ZERO

MAIS on est sur le calque DEMO quand on fait la commande Bloc ou WBloc

DONC on embarque le calque DEMO dans la definition du Bloc !!

 

Merci d'avance, Bye, lecrabe

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Débloquer le ZIP joint, puis extraire le dossier "BlockcountToolTip.bundle" dans un des dossiers suivant :

 


  • Pour l'utilisateur courant seulement :
    • %appdata%\Autodesk\ApplicationPlugins\

    [*]Pour tous les utilisateurs :

    • %allusersprofile%\Autodesk\ApplicationPlugins\
    • %programdata%\Autodesk\ApplicationPlugins\ (Windows 7 ou 8)
    • %programfiles%\Autodesk\ApplicationPlugins\

 

Le plugin affiche une infobulle quand le curseur stationne sur une référence de bloc.

L'infobulle contient le nom du bloc, le nombre de références insérées dans l'espace courant et les calques référencés par ce bloc.

BlockCountToolTip.zip

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

Lien vers le commentaire
Partager sur d’autres sites

Salut Gile,

 

Ca fonctionne sur AutoCAD 2014.

Ca ne fonctionne pas sur AutoCAD 2015 et 2016

Sur AutoCAD 2015 et 2016, c'est l'infobulle classique.

 

Ca fonctionne sur AutoCAD Architecture 2014

Ca ne fonctionne pas sur AutoCAD Architecture 2015 et 2016

Sur AutoCAD Architecture 2015 et 2016, c'est l'infobulle classique.

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

 

V'là très longtemps j'avais créé ce petit LISP analyse calque(V2009).zip très simpliste... Chaque ligne affiche le BLOC associé à 1 calque... Si dans le dessin tous les objets des blocs sont dans le calque 0 (zéro) la liste reste vide !

 

 

Christian

Formateur, Consultant Expert AutoCAD, REVIT MEP, INVENTOR, télécharger , des Outils AutoCAD...

cad123 @ wanadoo.fr (enlever les espaces de part et d'autre de @)

Lien vers le commentaire
Partager sur d’autres sites

Salut Gile,

 

Ca fonctionne sur AutoCAD 2014.

Ca ne fonctionne pas sur AutoCAD 2015 et 2016

Sur AutoCAD 2015 et 2016, c'est l'infobulle classique.

 

Ca fonctionne sur AutoCAD Architecture 2014

Ca ne fonctionne pas sur AutoCAD Architecture 2015 et 2016

Sur AutoCAD Architecture 2015 et 2016, c'est l'infobulle classique.

 

Oups !...

J'avais oublié de mettre à jour le fichier PackageContents.xml qui définit les modes de chargement automatique (dont les versions supportées).

 

On peut re-télécharger le ZIP dans le message plus haut (il est à jour).

Ou directement modifier le fichier BlockCountToolTip.bundle\PackageContents.xml dans le répertoire d'intallation :

remplacer :

SeriesMax="R19.1"

par :

SeriesMax="R20.1"

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

Lien vers le commentaire
Partager sur d’autres sites

Oups !...

J'avais oublié de mettre à jour le fichier PackageContents.xml qui définit les modes de chargement automatique (dont les versions supportées).

 

On peut re-télécharger le ZIP dans le message plus haut (il est à jour).

Ou directement modifier le fichier BlockCountToolTip.bundle\PackageContents.xml dans le répertoire d'intallation :

remplacer :

SeriesMax="R19.1"

par :

SeriesMax="R20.1"

 

 

Super, ça fonctionne :)

 

Celà dit, les informations sont différentes dansz AutoCAD et AutoCAD Architecture. A quoi est-ce dû?

 

Infobulle dans AutoCAD:

http://img15.hostingpics.net/thumbs/mini_479918acadreferenceblocavecacad.png

 

Infobulle dans AutoCAD Architecture:

http://img15.hostingpics.net/thumbs/mini_512164acadreferenceblocavecadt.png

 

Christian, ton lisp n'a pas l'air de fonctionner avec AutoCAD 2016 :mellow:

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Si l'info-bulle est différente dans AutoCAD et AutoCAD Architecture, c'est que la variable système ROLLOVERTIPS n'a pas la même valeur.

ROLLOVERTIPS contrôle l'affichage de l'info-bulle de survol des entités et le plugin l'utilise aussi.

Si ROLLOVERTIPS est à 1, comme dans ton AutoCAD, l'info-bulle standard d'autoCAD s'affiche sur toutes les entités survolées et elle est squattée par le plugin pour afficher les informations spécifiques des blocs.

Si elle est à 0, comme dans ton AutoCAD Architecture, les info-bulles standard ne s'affichent pas, seules s'affichent les infos-bulles du plugin.

 

Je ne comprends pas la dernière question. Les calques affichés dans l'info-bulle sont ceux des composants directs (premier niveau) de la définition de bloc (les calques des composants des blocs imbriqués ne sont pas traités).

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

Lien vers le commentaire
Partager sur d’autres sites

Allez hop, encore une variable :)

OK pour AutoCAD et Rollovertips, mais par contre, sur AA, que Rollovertips soit à 0 ou 1, l'infobulle est la même :blink:

Steven________________________________________

Pour le taf; Windows (et ses emmerdes) sinon pas d'AutoCAD.

Pour le perso Linux Mint et pas de problèmes. Mais pas d'AutoCAD.

En rêve; AutoCAD sous Linux.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

 

Un LISP qui devrait correspondre au CDC/CCTP du crabe.

 

(defun C:BLKLAYERS (/ distinct getLayers lst2str printBlk ss name lst)
 (vl-load-com)
 (or *acad* (setq *acad* (vlax-get-acad-object)))
 (or *acdoc* (setq *acdoc* (vla-get-ActiveDocument *acad*)))
 (or *blocks* (setq *blocks* (vla-get-Blocks *acdoc*)))

 (defun distinct (l)
   (if	l
     (cons (car l) (distinct (vl-remove (car l) l)))
   )
 )

 (defun getLayers (b / l)
   (vlax-for o	b
     (if (= (vla-get-ObjectName o) "AcDbBlockReference")
(setq l	(append	l
		(getLayers (vla-Item *blocks* (vla-get-EffectiveName o)))
	)
)
(setq l (cons (vla-get-Layer o) l))
     )
   )
   (vl-sort (distinct l) '<)
 )

 (defun lst2str (l s)
   (apply 'strcat
   (cons (car l)
	 (mapcar (function (lambda (x) (strcat s x))) (cdr l))
   )
   )
 )

 (defun printBlk (n / b l)
   (setq b (vla-Item *blocks* n)
  l (getLayers B)
   )
   (prompt
     (strcat
"\n"
n
" ("
(if (= (vla-get-IsDynamicBlock B) :vlax-true)
  "dynamique"
  "statique"
)
(if (= (length l) 1)
  ")\nCalque référencé : "
  ")\nCalques référencés : "
)
(lst2str l ", ")
"\n"
     )
   )
 )

 (if (ssget '((0 . "INSERT")))
   (progn
     (vlax-for	blk (setq ss (vla-get-ActiveSelectionSet *acdoc*))
(setq name (vla-get-EffectiveName blk))
(or (vl-position name lst)
    (setq lst (cons name lst))
)
     )
     (vla-Delete ss)
   )
 )
 (foreach n lst (printBlk n))
 (textscr)
 (princ)
)

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

Lien vers le commentaire
Partager sur d’autres sites

Hello Gilles

 

Qq mots : BRAVO , MAGNIFIQUE , etc !

 

Ta routine BlkLayers correspond exactement a mon CDC/CCTP !!

 

MERCI : c TIP-TOP pour voir "A quel point" des Blocs sur un DWG peuvent etre MAL DEFINIS/CONCUS :

- Entites sur de multiples calques - Pourquoi pas mais bon cela doit en valoir la peine !?

- Qq entites sur le calque - Voila qui est tres subtil ! (Cela ne s'imprime pas !)

- Attributs sur de multiples calques - Pourquoi pas mais bon cela doit en valoir la peine !?

- Toutes les entites sur un calque specifique ( ZERO) : par exemple "ARBRE"

- etc ...

 

Si possible une micro-amelioration, je sollicite 2 micro-compteurs supplementaires dans ta routine - SVP ecrire a la fin :

- Nombre total de blocs differents traites

- Nombre de bloc avec TOUT sur le calque ZERO (ET UNIQUEMENT sur ZERO)

- Nombre de bloc avec qq chose "ailleurs"

 

Encore MERCI, Bye, lecrabe

 

PS1: Routine "BlkLayers" testee & OK sur AutoCAD MEP 2016 x64 ... ( OUI sur MEP )

PS2: Routine "BlkLayers" testee & OK sur AutoCAD MAP 2015 x86 ...

PS3: Routine "BlkLayers" testee & OK sur AutoCAD MAP 2014 x86 ...

Autodesk Expert Elite Team

Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous !

 

Je vient d'experimenter ce lisp sur 2016

et dés lancement du lisp j'ai:

 

"Commande: _appload BLKLAYERS calque du blocs.lsp correctement chargé(s)

Commande: ; erreur: type d'argument incorrect: numberp: nil"

 

(j'ai placé le lisp dans le fichier support).

QELLE MANIPULATION JE N'AI PAS/ OU MAL FAIT?

 

( désolée )

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é