Give this a try:
Code:
(vl-load-com)
(defun c:FOO (/ *error* acDoc layerName oLayer ss)
(defun *error* (msg)
(if ss
(vla-delete ss)
)
(if acDoc
(progn
(vla-endundomark acDoc)
(vla-regen acDoc acallviewports)
)
)
(cond ((not msg)) ; Normal exit
((member msg '("Function cancelled" "quit / exit abort"))) ; <esc> or (quit)
((princ (strcat "\n** Error: " msg " ** "))) ; Fatal error, display it
)
(princ)
)
(if (ssget "_:L" '((0 . "IMAGE") (8 . "~Image")))
(progn
(vla-startundomark
(setq acDoc (vla-get-activedocument (vlax-get-acad-object)))
)
;; get or create layer
(setq oLayer
(vla-add (vla-get-layers acDoc) (setq layerName "Image"))
)
;; set image layer
(vlax-for x (setq ss (vla-get-activeselectionset acDoc))
(vla-put-layer x layerName)
)
;; freeze image layer, set clayer
(vla-put-freeze oLayer :vlax-true)
(setvar 'clayer "Line1")
)
)
(*error* nil)
)
Cheers