;Mimmick LAYISO - for AutoCAD web app
;VM - www.cadforum.cz
(defun C:LAYISO (/ cmde ss dim cnt lmod lay laylst val)
 (while (not (or ss (setq ss (ssget "_I"))))
     (prompt "\nSelect objects on layers which should be isolated or <settings>: ")
     (setq ss (ssget))
     (if (not ss)(progn
      (initget "Off Lock")
      (setq lmod (getkword "\nSet non-isolated layers [Off/Lock and dim] <Lock and dim>: "))
      (if (/= lmod "Off")(progn
        (setq dim (getint "Fading level (0-90) <50>: "))
        (if (or (not dim)(> dim 90)(< dim 0))(setq dim 50))
		(setvar "LAYLOCKFADECTL" dim)
      ))
     ))
 ) ; while
 (if (not lmod)(setq lmod "Lock"))
 (if ss (progn
     (setq cmde (getvar "cmdecho")  cnt 0)
     (setvar "cmdecho" 0)
     (while (setq lay (ssname ss cnt))
       (setq lay (cdr (assoc 8 (entget lay)))  cnt (1+ cnt))
       (if (not (member lay laylst))(setq laylst (cons lay laylst))) ; add
     ) ; while
     (if (member (getvar "CLAYER") laylst)
       (setq lay (getvar "CLAYER")) ; else
       (setvar "CLAYER" (setq lay (last laylst)))
     )
     (if (= lmod "Lock")(progn
      (command "_.LAYER" "_LOCK" "*") ; all LOCK, my UNL
       (foreach val laylst (command "_UNL" val))
       (command "")
     ) ;else
     (progn
      (command "_.LAYER" "_OFF" "*" "_Y") ; all OFF, my ON
       (foreach val laylst (command "_ON" val))
       (command "")
     ))
     (if (= (length laylst) 1)
       (prompt (strcat "\nLayer " (car laylst) " separated."))
       (prompt (strcat "\n" (itoa (length laylst)) " layers separated. Layer " lay " is current."))
     )
     (setvar "cmdecho" cmde)
 )) ; if ss
 (princ)
)

(defun C:LAYUNISO ( / cmde)
 (setq cmde (getvar "cmdecho")  cnt 0)
 (setvar "cmdecho" 0)
 (command "_.LAYER" "_ON" "*" "_UNL" "*" "")
 (setvar "cmdecho" cmde)
 (princ)
)

(defun C:IZOLHLAD (/)(C:LAYISO)(princ)) ; CZ aliases
(defun C:NEIZOLHLAD (/)(C:LAYUNISO)(princ))
