(defun make_layerlist( / elem layername)
(setq layerliste NIL)
(setq layerliste (list (cdr (assoc 2 (tblnext "LAYER" T)))))
(while (setq layername (cdr (assoc 2 (tblnext "LAYER"))))
(setq layerliste (cons layername layerliste))
)
(setq layerliste (acad_strlsort layerliste))
(foreach elem layerliste
(prompt "\"")
(princ elem)
(prompt "\"\n")
)
)
(defun lay_ex(elementname)
(setq element (entget elementname))
(setq LAYER (cdr (assoc 8 element)))
)
(defun C:friere_layer()
(setvar "CMDECHO" 0)
(command "_undo" "_group")
(make_layerlist)
(setq testelement (entsel))
(setq lname (lay_ex (car testelement)))
(prompt "Versuche den Layer ") (princ lname) (prompt " zu frieren... ")
(if (/= lname (getvar "CLAYER"))
(progn
(command "_layer" "_freeze" lname "")
(prompt "OK. \n")
)
(progn
(alert "Der aktuelle Layer kann nicht gefroren werden...")
)
)
(command "_undo" "_end")
(setvar "CMDECHO" 1)
(prompt "\n Fertig :-)")
(princ)
)
(defun C:taue_layer()
(make_layerlist)
(foreach elem layerliste
(progn
(command "_layer" "_thaw" elem "")
)
)
)
(defun C:iso_layer()
(setvar "CMDECHO" 0)
(command "_undo" "_group")
(make_layerlist)
(setq testelement (entsel))
(setq lname (lay_ex (car testelement)))
(prompt "Behalte den Layer ") (princ lname) (prompt ".\n")
(foreach elem layerliste
(if (and (/= elem lname) (/= elem (getvar "CLAYER")))
(progn
(command "_layer" "_freeze" elem "")
)
)
)
(command "_undo" "_end")
(setvar "CMDECHO" 1)
(prompt "\n Fertig :-)")
(princ)
)
(prompt "\n Das Werkzeug zum Isolieren der Layer wurde geladen \n")
(princ)