bitslapped 发表于 2022-7-6 07:51:58

LISP在所有操作中重新加载外部参照

是否可以创建在所有打开的图形中重新加载外部参照的命令?最好只有已更改的外部参照,但所有打开图形中的所有外部参照也都很好
 
谢谢

Lee Mac 发表于 2022-7-6 08:15:17

据我所知,VLA块对象的重新加载方法将仅在活动文档命名空间中操作,因此只能在当前图形中重新加载外部参照:
 
(defun c:rlall nil
   (vlax-for b (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
       (if (eq :vlax-true (vla-get-isxref b)) (vla-reload b))
   )
   (princ)
)
(vl-load-com) (princ)

BlackBox 发表于 2022-7-6 08:29:37

我有一个类似的实用程序,也允许隐含选择。
 
如果不存在有效的隐含选择,代码会有条件地提示用户指定要按名称重新加载的外部参照。提示还包括“All”选项。
 
这个工具对我的工作非常宝贵。

bitslapped 发表于 2022-7-6 08:40:23

 
谢谢李。是否可以在打开的图形中循环,在每个图形上使用此功能,然后跳回初始的“当前”图形?

Lee Mac 发表于 2022-7-6 08:53:59

 
不使用LISP,因为当另一个文档名称空间处于活动状态时,LISP函数将失去焦点,因此将停止计算。我认为实现这一点的唯一方法是编写一个临时脚本,在图形上迭代,并在每个图形上评估LISP函数,尽管这并不理想。
页: [1]
查看完整版本: LISP在所有操作中重新加载外部参照