块内层归0层
本帖最后由 sharetow 于 2021-9-17 13:32 编辑将块内元素全部改为0层,颜色byblock
命令:C0
3278 发表于 2022-8-29 19:33
是写错了么,是bylayer么。(vla-put-color dxl acBlock)改为(vla-put-color dxl acBylayer)
弄好了,谢谢前辈。 shcvip 发表于 2022-8-20 19:53
可否除了某个特性的图层不改,比如中心层,其他的都改为0层
中心层不改变
(defun C:C0(/ dxl km)
(if (= (getvar "cmdactive") 1) (ssget "x" ) (sssetfirst nil (ssget "x" )))
(and
(setq dxl (car(l-vldxl(ssget "_:S:L" '((0 . "INSERT"))))))
(setq km (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))))
(l-c0 dxl km)
(not(vla-Update dxl))
(vlax-release-object km)
)
(princ)
)
;
(defun l-c0(dxl km)
(vla-put-layer dxl "0")
(vla-put-color dxl acbylayer)
(if (= "AcDbBlockReference" (vlax-get-property dxl "objectname"))
(progn
(vlax-for x (vla-item km (vla-get-name dxl))
(l-c0 x km)
)
(if(=(vla-get-HasAttributes dxl):vlax-true)
(vl-cmdf "AttSync" "n" (vla-get-name dxl))
)
)
)T
)
;
(defun l-vldxl(dx / dxl i)
(if (null dx)
(setq dxl nil)
(progn
(setq i 0 dxl nil)
(sssetfirst nil nil)
(repeat (sslength dx)
(setq dxl (cons (vlax-ename->vla-object (ssname dx i)) dxl) i (1+ i))
)
)
)
dxl
)
大佬,其余选中的图元也能归置0层吗?这个需要怎么修改 怎么没有回复呢 缺函数了no function definition: L-VLDXL 谢谢 分享!!! 感谢,今天终于偶遇到了 好用,顶一下 可否除了某个特性的图层不改,比如中心层,其他的都改为0层 本帖最后由 shcvip 于 2022-8-26 22:36 编辑
sharetow 发表于 2022-8-21 08:52
中心层不改变
在变成0层的时候,可否将颜色改为 byblock 而不是byblock
转发 改块的颜色
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=184659&fromuid=7322683
(出处: 明经CAD社区)
shcvip 发表于 2022-8-26 22:09
在变成0层的时候,可否将颜色改为 byblock 而不是byblock
是写错了么,是bylayer么。(vla-put-color dxl acBlock)改为(vla-put-color dxl acBylayer)