卸载除了带有“结构参照”、“建筑参照”、“设备参照”字符的外部参照
以下简单的语句只能排除“结构参照”。 我想排除“结构参照”、“建筑参照”、等多个关键字(Defun C:dxrs ( )
(command "-xref" "Detach" "~结构参照*")
)
(Defun C:gxrs ( )
(command "-xref" "unload" "~结构参照*")
);
本帖最后由 845245015 于 2021-6-3 15:10 编辑
iamhuangjinming 发表于 2021-6-3 12:38
试验了一下, 把建筑参照-xxx卸载掉了。 反而想卸载掉的参照-xxx没有卸载掉。
(Defun C:gxrs ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))))
(vlax-for item blks
(setq name (vla-get-name item))
(if (and (setq i (VL-STRING-SEARCH "|" name))
(/= (substr name 1 1) "*")
(setq name (substr name 1 i))
)
(if (and
(= nil (VL-STRING-SEARCH "结构参照" name))
(= nil (VL-STRING-SEARCH "建筑参照" name))
(= nil (VL-STRING-SEARCH "设备参照" name))
)
(command "-xref" "unload" name)
)
)
)
(princ)
)
(Defun C:dxrs ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))))
(vlax-for item blks
(setq name (vla-get-name item))
(if (and (setq i (VL-STRING-SEARCH "|" name))
(/= (substr name 1 1) "*")
(setq name (substr name 1 i))
)
(if (and
(= nil (VL-STRING-SEARCH "结构参照" name))
(= nil (VL-STRING-SEARCH "建筑参照" name))
(= nil (VL-STRING-SEARCH "设备参照" name))
)
(command "-xref" "Detach" name)
)
)
)
(princ)
)
本帖最后由 845245015 于 2021-6-3 11:04 编辑
(Defun C:tt1234 ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))))
(setq xrefnames '("结构参照" "建筑参照" "设备参照"))
(vlax-for item blks
(setq name (vla-get-name item))
(if (and (setq i (VL-STRING-SEARCH "|" name))
(/= (substr name 1 1) "*")
(setq name (substr name 1 i))
(not (member name xrefnames))
)
(command "-xref" "unload" name)
)
)
)
845245015 发表于 2021-6-3 08:56
(Defun C:tt1234 ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))))
...
试验了一下, 把建筑参照-xxx卸载掉了。 反而想卸载掉的参照-xxx没有卸载掉。
845245015 发表于 2021-6-3 08:47
(Defun C:tt1234 ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))) ...
还想问您一下,就是把这个unload改成Detach之后, 已经卸载的外部参照不能拆离。就同样的功能,不管外部参照有没有卸载,实现拆离应该怎么搞呢。 谢谢分享
页:
[1]