求助一个可以修改块内图层为Bylayer的插件程序
求助一个可以修改块内图层为Bylayer的插件程序(比如我有一个图层,图层内的颜色是红色,但是块内还是黄色,怎么样才可以不进块批量修改成与图层一致的颜色),先谢过大神SETBYLAYER 本帖最后由 yshf 于 2018-6-15 16:14 编辑
(defun c:cc()
(setq AcadDoc (vla-get-ActiveDocument (vlax-get-acad-object)))
(setq Blocks (vla-get-blocks AcadDoc))
(if (setq ssa (ssget '((0 . "INSERT"))))
(vlax-for Ent (vla-get-ActiveSelectionSet AcadDoc)
(vlax-for Obj (vla-item Blocks (vla-get-name Ent))
(vla-put-color Obj 256) ;对象颜色随层
)
)
)
(vlax-release-object Blocks)
(vlax-release-object AcadDoc)
(princ)
) (defun c:tt ()
(if (and
(setq e (car (entsel "\n选择块:")))
(= "INSERT" (cdr (assoc 0 (setq el (entget e)))))
)
(vlax-for o (setq blkdef (vla-item (vla-get-blocks
(vla-get-ActiveDocument
(vlax-get-acad-object)
)
)
(cdr (assoc 2 el))
)
)
(vla-put-layer o "0") ;_ 对象修改到"0"层
(vla-put-color o 256) ;_ 对象颜色随层
)
)
(princ)
) 您试过在 '0' 层造图块吗? Andyhon 发表于 2018-6-13 12:30
您试过在 '0' 层造图块吗?
没懂你的意思呢,我的情况是别人做好了块,我想通过程序直接修改,而不进块 我们在学用AutoCAD之初即被带上 得在 '0' 层造图块的规范
是以我们的程序链就缺了您所说的这一环 Gu_xl 发表于 2018-6-14 10:35
G版:
我觉得楼主想要的是块内对象为Bylayer,
所以可以去掉 ;(vla-put-layer o "0") ;_ 对象修改到"0"层,
最后添加 (command "_move" e "" 0 0) ;刷新
能否改为多选呢? yshf 发表于 2018-6-15 16:09
我想请教下,我导入到cad,提示说未知命令,您能再帮忙看看是什么问题吗 shh1980 发表于 2018-6-14 10:01
SETBYLAYER
我要的就是这个命令,谢谢,但是怎么用lisp程序,把图纸内所有的块一次按这个命令修改到位呢