Lisp layer toggle with multiple wildcards and xrefs

Lisp layer toggle with multiple wildcards and xrefs

Anonymous
Not applicable
653 Views
3 Replies
Message 1 of 4

Lisp layer toggle with multiple wildcards and xrefs

Anonymous
Not applicable

Hello everyone Smiley Happy

 

Found this nice lisp on the forums which works well with only one wildcard. How can I make it search for multiple wildcards

e.g. 

(if (vl-string-search "*Layer001*,*Layer002*,*Layer003*" (vla-get-name x))
(defun C:ToggleXrefLayers (/ layers)
(vl-load-com)
(setq layers (vla-get-layers (vla-get-activedocument (vlax-get-acad-object))))
(vlax-for x layers
(if (vl-string-search "|Layer001" (vla-get-name x))

(progn
(cond
((= (vla-get-freeze x) :vlax-true)
(vla-put-freeze x :vlax-false))
(T (vla-put-freeze x :vlax-true)))
(cond
((= (vla-get-layeron x) :vlax-true)
(vla-put-layeron x :vlax-false))
(T (vla-put-layeron x :vlax-true)))
)
)
)
(command "regen")
(princ)
)

PLease help! thanks in advance Smiley Happy

0 Likes
Accepted solutions (1)
654 Views
3 Replies
Replies (3)
Message 2 of 4

hmsilva
Mentor
Mentor
Accepted solution

Hi JCprog,

 

try to change

(vl-string-search "|Layer001" (vla-get-name x))
;; to
(wcmatch (vla-get-name x) "*Layer001*,*Layer002*,*Layer003*")

 

Untested...

 

Henrique

EESignature

0 Likes
Message 3 of 4

Anonymous
Not applicable

Thanks for the quick reply Henrique! That did the trick Smiley Very Happy Thank you!

0 Likes
Message 4 of 4

hmsilva
Mentor
Mentor
You're welcome, JCprog
Glad I could help

Henrique

EESignature

0 Likes