更改la的属性块
有人能帮忙吗?这个lisp可以将所有项目更改为第0层,但颜色可以更改为“bylayer”?
请有人能帮我修改这个Lisp程序吗?
谢谢!!
切加布拉。LSP 对请尝试以下操作
(defun c:chgabla (/ ss ly doc)
;; Tharwat 27.May.2014 ;;
(if (and (/= (setq ly (getstring t "\n Specify Layer name :")) "")
(if (not (tblsearch "LAYER" ly))
(progn (alert (strcat "Layer name < " ly " > is not found !!")) nil)
t
)
(princ "\n Select attributed blocks to change layer of Attributes ")
(setq ss (ssget "_:L" '((0 . "INSERT") (66 . 1))))
)
(progn (vla-startUndomark (setq doc (vla-get-activedocument (vlax-get-acad-object))))
((Lambda (i / sn e)
(while (setq sn (ssname ss (setq i (1+ i))))
(setq e (tblobjname "BLOCK" (cdr (assoc 2 (entget sn)))))
(while (setq e (entnext e))
(entmod (subst (cons 8 ly) (assoc 8 (entget e)) (entget e))))
(foreach x (vlax-invoke (vlax-ename->vla-object sn) 'getattributes) (vla-put-layer x ly)(vla-put-color x 256))
)
)
-1
)
(vla-Endundomark doc)
)
)
(princ)
)(vl-load-com)
如您所见,在foreach循环中,当驻留用于更改层的代码时,您只需添加代码来更改颜色(256是bylayer)
干杯 太棒了。非常感谢您的支持,帮助我修改了这个程序。 不客气,我很高兴能帮上忙!
干杯
杰夫!
页:
[1]