Here you are...
I simplified it very much :
Code:
(vlr-remove-all)
(if (null myxr-react)
(setq myxr-react (vlr-command-reactor nil
'((:vlr-commandwillstart . myxr-swaplayer)
(:vlr-commandended . myxr-restorelayer)
(:vlr-commandcancelled . myxr-restorelayer)
)
))
)
(defun setormakelayer (layn doc / oldlay)
(if (null (tblsearch "layer" layn))
(vla-add (vla-get-layers doc) layn)
)
(setq oldlay (getvar "clayer"))
(setvar "clayer" layn)
oldlay
)
;;commandwillstart callback (reactor commandlist)
(defun myxr-swaplayer (r cl / doc)
(if (wcmatch (strcase (car cl)) "*ATTACH,*XCLIP*,*XREF");allowance for other commands
(progn
(setq doc (vlr-document r))
(setq oldlay (setormakelayer "_XREF" doc))
)
)
)
;;commandended callback (reactor commandlist)
(defun myxr-restorelayer (r cl)
(if oldlay
(progn
(setvar "clayer" oldlay)
(setq oldlay nil)
)
)
)
HTH.