月下闲人 发表于 2023-8-30 12:13

图层快速改色

求助有没有图层快速改色的工具,输入数字键直接选择图层所在图元改色操作?

aggdqty 发表于 2023-8-30 17:58

直接从图层 那里改,不是很方便吗,另外论坛里面也有,搜一下嘛
http://bbs.mjtd.com/thread-185715-1-1.html
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=186198&highlight=%B8%C4%C9%AB

xj6019 发表于 2023-8-30 18:03


(defun C:NM (/ cc ent layobj)
        (setq ent(car(entsel "\n請拾取")))
        (setq cc(cdr(assoc 8 (entget ent))))
        (setq LAYOBJ (vla-item (vla-get-Layers (vla-get-ActiveDocument (vlax-get-acad-object))) cc))
        (vla-put-color layobj 1) ;改为1号颜色
        (princ)
)

xj6019 发表于 2023-8-30 18:04

aggdqty 发表于 2023-8-30 17:58
直接从图层 那里改,不是很方便吗,另外论坛里面也有,搜一下嘛
http://bbs.mjtd.com/thread-185715-1-1.h ...

他是想改图元所在图层颜色,不是要改图元颜色

月下闲人 发表于 2023-8-30 21:03

aggdqty 发表于 2023-8-30 17:58
直接从图层 那里改,不是很方便吗,另外论坛里面也有,搜一下嘛
http://bbs.mjtd.com/thread-185715-1-1.h ...
这个操作下来跟图层特性管理器一样,步骤有点繁琐,想要的是跟图元改色一样,输入色号直接改图层颜色

月下闲人 发表于 2023-8-30 21:09

xj6019 发表于 2023-8-30 18:03
(defun C:NM (/ cc ent layobj)
        (setq ent(car(entsel "\n請拾取")))
        (setq cc(cdr(assoc 8 (entget...

感谢大佬,就是想要的效果,能帮忙改下下面这个代码对图层操作不?
(defun c:1~255 (/ cnt)
(setq cnt -1)
(repeat 257
(eval(read(strcat
"(defun C:" (if (= cnt -1)"`"(itoa cnt))
"(/ ent)(setq ent (ssget))"
"(command \"_.change\" ent \"\" \"_p\" \"_c\" \""
(cond((= cnt -1)"bylayer")((= cnt 0)"byblock")(t(itoa cnt)))
"\" \"\")(princ))")))
(eval(read(strcat
"(defun C:C" (if (= cnt -1)"`"(itoa cnt)) "()"
"(command \".-color\""
(cond((= cnt -1)"bylayer")((= cnt 0)"byblock")(t(itoa cnt)))
")(princ))")))
(setq cnt (1+ cnt))))
(c:1~255)

mojianxing 发表于 2023-9-14 21:05

感谢大佬,就想要这个效果

月下闲人 发表于 2023-9-17 12:56

在论坛翻到的,有需要可以下载.
;图层快速选择图元改色
(defun c:bb ()(setq yanse (acad_colordlg 1))(gtcys yanse)(princ))(defun gtcys (yanse / acaddoc acadobj en i lay layobj obj ss vlay vlay1)
(setq AcadObj (vlax-get-Acad-object)AcadDoc (vla-get-ActiveDocument AcadObj) LayObj (vla-get-layers AcadDoc))
(if (setq ss (ssget))(progn(setq i 0)(repeat (sslength ss)(setq en (ssname ss i) obj (vlax-ename->vla-object en) lay (vla-get-layer obj)vlay (vla-item LayObj lay))
(if (= (equal vlay vlay1) nil)(progn(vla-put-color vlay yanse)(setq vlay1 vlay)))(setq i (1+ i)))))(princ))

moranyuyan 发表于 2024-5-8 07:41

月下闲人 发表于 2023-9-17 12:56
在论坛翻到的,有需要可以下载.
;图层快速选择图元改色
(defun c:bb ()(setq yanse (acad_colordlg 1))( ...

谢谢分享,正需要这样的
页: [1]
查看完整版本: 图层快速改色