iamhuangjinming 发表于 2021-6-3 08:47:39

卸载除了带有“结构参照”、“建筑参照”、“设备参照”字符的外部参照

以下简单的语句只能排除“结构参照”。 我想排除“结构参照”、“建筑参照”、等多个关键字


(Defun C:dxrs ( )         
      (command "-xref" "Detach" "~结构参照*")
)
(Defun C:gxrs ( )         
      (command "-xref" "unload" "~结构参照*")
);

845245015 发表于 2021-6-3 08:47:40

本帖最后由 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 08:56:51

本帖最后由 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)
      )
    )
)

iamhuangjinming 发表于 2021-6-3 12:38:15

845245015 发表于 2021-6-3 08:56
(Defun C:tt1234 ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))))
...

试验了一下, 把建筑参照-xxx卸载掉了。 反而想卸载掉的参照-xxx没有卸载掉。

iamhuangjinming 发表于 2021-6-3 14:53:48

845245015 发表于 2021-6-3 08:47
(Defun C:tt1234 ( )
(setq blks (vla-get-blocks (vla-get-ActiveDocument (VLAX-GET-ACAD-OBJECT))) ...

还想问您一下,就是把这个unload改成Detach之后, 已经卸载的外部参照不能拆离。就同样的功能,不管外部参照有没有卸载,实现拆离应该怎么搞呢。

LIULISHENG 发表于 2021-6-4 08:44:26

谢谢分享
页: [1]
查看完整版本: 卸载除了带有“结构参照”、“建筑参照”、“设备参照”字符的外部参照