分离已卸载/未引用
大家好,我发现了许多lisp例程,可以在有一个外部参照实例时分离未加载/未引用的外部参照和所有工作。我遇到的问题是,我试图删除具有多个引用的未加载外部参照。我有一个带有6个图纸空间选项卡的图形,我试图删除的外部参照是一个标题栏,它插入到所有6个图纸空间选项卡上,因为它存在于多个图纸空间中,所以它不会删除外部参照。有什么办法可以强制这样做吗?
我试图实现的是删除未加载的外部参照。但因为它有多个参考文献;它不会删除的每个图纸空间选项卡一个。如果我使用下面的代码,它将从每个选项卡中删除所有引用,并允许我拆离外部参照。下面的代码现在的问题是,它删除了对所有外部参照的所有引用。我想修改代码,使其仅对未加载和未找到的外部参照执行此操作。此处的最终目标是创建一个将绑定所有外部参照的lisp,但当图形具有未加载和/或未找到的外部参照时,bind all命令不起作用。
我希望我解释得很好,有人能帮我。
(defun c:test6 ()
(vl-load-com)
;retrieve a reference to the Active Document
(setq activedocument (vla-get-activedocument (vlax-get-Acad-Object)))
;retrieve a reference to the blocks
(setq theblocks (vla-get-blocks activedocument))
;process each block
(vlax-for item theblocks
;check if it's an Xref
(setq yesxref (vlax-get-property item 'isXref))
;if it is
(if (= yesxref :vlax-true)
;do the following
(progn
;get the Xref name
(setq ablock (vlax-get-property item 'Name))
;remove all instances of xref from each tab__________________________________________________________________________________
(if (ssget "_x" (list '(0 . "INSERT")(cons 2 ablock)))
(vlax-for n (vla-get-activeselectionset(vla-get-activedocument(vlax-get-acad-object)))(vla-delete n))
)
(repeat 4 (vla-purgeall (vla-get-activedocument (vlax-get-acad-object))))
;_______________________________________________________________________________________________________
);progn
);if
);vlax-for
(princ)
)
尝试:http://forums.augi.com/showthread.php?168899-拆离卸载的未引用外部参照&p=1324840&viewfull=1#post1324840
页:
[1]