我从未在命令调用中使用过e,因此不知道它们是否相同。这一层的大部分内容可以在没有任何命令的情况下实现自动化。下面是更改图层颜色的快速示例:
- (vl-load-com)
- (defun layer2color (pattern color / n)
- (vlax-for l (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)))
- (if (wcmatch (setq n (strcase (vla-get-name l))) (strcase pattern))
- (vla-put-color l color)
- )
- (princ)
- )
- )
- (layer2color
- "*TREE*,*BUSH*,*PLANTS*,*LTS*,*LITE*,*LIGHT*,*FURN*,*DETL*,*CURB*,*PARK*,*PITCH*,*SLOPE*,*ANNO*,*IDEN*,*PATT*"
- 8
- )
- (defun layer2colorvanilla (pattern color / e l n)
- (while (setq l (tblnext "layer" (null l)))
- (and (setq n (cdr (assoc 2 l)))
- (wcmatch (strcase n) (strcase pattern))
- (setq e (tblobjname "layer" n))
- (setq e (entmod (append (entget e) (list (cons 62 color)))))
- )
- )
- (princ)
- )
- (layer2colorvanilla
- "*TREE*,*BUSH*,*PLANTS*,*LTS*,*LITE*,*LIGHT*,*FURN*,*DETL*,*CURB*,*PARK*,*PITCH*,*SLOPE*,*ANNO*,*IDEN*,*PATT*"
- 8
- )
不客气 |