Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

 

Un truc que j'utilise peu, c'est les "filtres nommés", dans le gestionnaire de calques (à ne pas confondre avec les filtres nommés de la commande FILTER). Le jour où je veux l'utiliser, je découvre une liste faramineuse d'une cinquantaine de noms QUE JE N'AI JAMAIS DONNES. Quelqu'un sait comment on édite cette liste ?

 

Ribbit.

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Posté(e)

Ah oui, bien vu. Je n'ai pas pensé lancer une recherche globale....

 

Merci !

Ribbit.

 

Du code, c'est un script de Mr. R.Bell:

 

CADALYST 05/04 Tip1949: LFD.LSP Remove Layer Filters © 2004 R. Robert Bell

Written by: R. Robert Bell

Copyright © 2004 by R. Robert Bell

Purpose: Allows the user to enter a wildcard string to keep any matching filters.

 

(NDR : Permet à l'utilisateur d'entrer un joker pour garder des filtres)

 

Sample string: "`#*,MW*" will keep all filters beginning with a "#" or "MW"

 

(NDR : exemple : "`#*,MW*" garde tous les filtres commencant par un "#" ou "MW"

 

Début du code (a coller dans un fichier texte LFD.lsp ) :

 

(defun rrbI:LayerFiltersDelete (strKeepWC / objXDict)

;; This function insures that an Extension Dictionary exists, and works on both locations for layer filters

(vl-load-com) ; load ActiveX if needed

(vl-catch-all-apply ; trap error if no extension dictionary

(function

(lambda ()

(setq objXDict (vla-GetExtensionDictionary ; bind dictionary to variable

(vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))))))))

(cond (objXDict ; if the extension dictionary exists

(or ; use OR to return T for success

(rrbI:DeleteAllXRecs objXDict "ACAD_LAYERFILTERS" strKeepWC) ; pre-2005 layer filters

(rrbI:DeleteAllXRecs objXDict "AcLyDictionary" strKeepWC))))) ; 2005 layer filters

 

(defun rrbI:DeleteAllXRecs (objXDict dictName strKeepWC / objDict i)

;; This function performs the chore of deleting each filer that doesn't match the wildcard

(vl-catch-all-apply ; trap errors

(function

(lambda ()

(setq objDict (vla-Item objXDict dictName)) ; get layer filters dictionary

(vlax-for objXRec objDict ; loop thru all XRecords in the dictionary

(cond ((not (and strKeepWC (wcmatch (vla-Get-Name objXRec) strKeepWC))) ; if deleting all filters, or current doesn't match wildcard

(setq i (1+ (cond (i) ; increment counter

(0)))) ; initialize counter

(vla-Delete objXRec))))))) ; delete filter

(cond (i (princ (strcat "\n" (itoa i) " filters deleted."))))) ; if counter is bound, report number of filters deleted

 

(defun C:LFD (/ inpKeep)

;; Main command-line function

(setq inpKeep (getstring

"\nWildcard mask for filters to keep, or to delete all: "))

(rrbI:LayerFiltersDelete (cond ((/= inpKeep "") inpKeep))) ; pass nil to subr if user hit

(princ)) ; clean exit

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

Posté(e)

Et en rab pour le VBistes (visez le code en une ligne !!:

 

Q How to delete unused layer filters?

A In AutoCAD 2004, there is the 'Delete all' button in the Named layer filter part of the Layer Properties Manager. In AutoCAD 2005 select your Layer filters in the Layer Properties Manager dialog, right-click and choose Delete.

In older AutoCAD versions (or in AutoCAD 2004/2005) you can perform the following VBA macro to erase the layer filters (use e.g. the _VBASTMT command):

For Each ent In ThisDrawing.Layers.GetExtensionDictionary("ACAD_LAYERFILTERS"): ent.Delete: Next ent

 

In AutoCAD 2005, add also:

For Each ent In ThisDrawing.Layers.GetExtensionDictionary("ACLYDICTIONARY"): ent.Delete: Next ent

 

There is also the 'REMLAY' VLISP downloadable from Xanadu VIP server.

Ribbit.

"Une fois qu'on les a découvertes toutes les vérités sont faciles à comprendre; l'essentiel c'est de les découvrir."

Version en cours : Autocad Map 2013

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é