加载工程图后,反应堆数据中的未绑定符号

时间:2018-10-14 13:31:44

标签: autolisp

我在表中添加了一个修改反应器。反应堆的数据中具有标注功能。 callout是函数am:trench-updated

(vlr-pers 
  (vlr-object-reactor 
     (list table)
     (list (cons :am:dictionary dictionary)
           (cons :am:modified callout))
     (list (cons :vlr-modified 'am:table-modified))))

在反应堆中,我从列表中提取以下标注:

(defun am:object-get (object field)
    (cdr (assoc field object)))

(defun am:table-modified (reactor-object)
  (setq reactor-data (vlr-data reactor-object)
        callout (am:object-get reactor-data :am:modified))
  (apply callout (list ...)))

在我保存加载图形之前,它工作正常。加载后,callout包含正确的名称,但值为nil。

Before and after

1 个答案:

答案 0 :(得分:3)

仅在文档名称空间的范围内定义AutoLISP函数,因此在重新打开文档(图形文件)时需要重新定义。我不确定为什么在保存操作后将无法定义此类功能。

我个人建议您避免使用持久性反应堆,而是在图纸启动时重建瞬态反应堆。以我的经验,持久性反应堆永远不会真正持久化。