这是我的Rinky dink版本:
使用NLAYUNISO恢复图层设置。
- (defun c:nlayiso (/ lays llst x n)
- (setq lays (vla-get-layers
- (vla-get-activedocument (vlax-get-acad-object))
- )
- )
- (if *frzlyrs*
- (c:nlayuniso)
- )
- (while (setq x (nentsel
- "\nSelect objects on the layer(s) to be isolated: "
- )
- )
- (progn
- (setq n (cdr (assoc 8 (entget (car x)))))
- (if (not (member n llst))
- (progn
- (setq llst (cons n llst))
- (princ (strcat "\n" n))
- )
- )
- (if (nth 3 x)
- (foreach z (nth 3 x)
- (setq n (cdr (assoc 8 (entget z))))
- (if (not (member n llst))
- (progn
- (setq llst (cons n llst))
- (princ (strcat "\n" n))
- )
- )
- )
- )
- )
- )
- (if llst
- (progn
- (vlax-map-collection
- lays
- '(lambda (x)
- (if (not (member (vla-get-name x) llst))
- (progn
- (setq *frzlyrs*
- (append *frzlyrs* (list (cons x (vla-get-freeze x))))
- )
- (vl-catch-all-error-p
- (vl-catch-all-apply
- 'vla-put-freeze
- (list x :vlax-true)
- )
- )
- )
- )
- )
- )
- (defun c:nlayuniso (/)
- (if *frzlyrs*
- (mapcar '(lambda (x)
- (vl-catch-all-error-p
- (vl-catch-all-apply
- 'vla-put-freeze
- (list (car x) (cdr x))
- )
- )
- )
- *frzlyrs*
- )
- )
- (command "._regen")
- (setq *frzlyrs* nil)
- (princ)
- )
- )
- )
- (princ)
- )
|