任何事情都有可能,这只是一个如何实现的问题。
- (defun c:obtol( / layLst ss ssEnts echo)
- (vl-load-com)
- (setq echo (getvar "cmdecho"))
- (setvar "cmdecho" 0)
- (setq ss (ssget))
- (if ss (setq ssEnts (vl-remove-if 'listp (mapcar 'cadr (ssnamex ss)))))
- (foreach forVar ssEnts
- (if (not (wcmatch (cdr (assoc 8 (entget forVar))) "* - FUTURE"))
- (if (member (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") (layer-list))
- (vl-cmdf "-layer" "Ltype" "hidden" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") ""
- "-layer" "Color" "252" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") ""
- "chprop" forVar "" "LAYER" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") "")
- (vl-cmdf "-layer" "new" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") ""
- "-layer" "Ltype" "hidden" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") ""
- "-layer" "Color" "252" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") ""
- "chprop" forVar "" "LAYER" (strcat (cdr (assoc 8 (entget forVar))) " - FUTURE") "")
- )
- )
- )
- (setvar "cmdecho" echo)
- (princ)
- )
- (defun layer-list( / layLst)
- (vl-load-com)
- (vlax-for vFor (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
- (setq layLst (cons (vla-get-name vFor) layLst)))
- )
... 当然,“怎么样?”对于那些花时间关心的人来说,这起到了很大的作用" |