chico1201 发表于 2022-7-5 19:50:23

更改la的属性块

有人能帮忙吗?
这个lisp可以将所有项目更改为第0层,但颜色可以更改为“bylayer”?
请有人能帮我修改这个Lisp程序吗?
谢谢!!
切加布拉。LSP

Jef! 发表于 2022-7-5 20:20:25

对请尝试以下操作
 
(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)
 
干杯

chico1201 发表于 2022-7-5 20:32:07

太棒了。非常感谢您的支持,帮助我修改了这个程序。

Jef! 发表于 2022-7-5 20:56:34

不客气,我很高兴能帮上忙!
 
干杯
杰夫!
页: [1]
查看完整版本: 更改la的属性块