加载绘图后反应堆数据中的未绑定符号
Unbound symbols in reactor data after loading the drawing
我在 table 中添加了一个修饰反应器。反应器在其数据中具有标注功能。 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
包含正确的名称,但值为零。
AutoLISP 函数只会在文档命名空间的范围内定义,因此在重新打开文档(绘图文件)时需要重新定义。但是,我不确定为什么在保存操作后会未定义此类函数。
我个人建议您避免使用持久性反应器,而应在绘图启动时重建瞬态反应器。以我的经验,持久性反应器从来都不是真正持久性的。
我在 table 中添加了一个修饰反应器。反应器在其数据中具有标注功能。 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
包含正确的名称,但值为零。
AutoLISP 函数只会在文档命名空间的范围内定义,因此在重新打开文档(绘图文件)时需要重新定义。但是,我不确定为什么在保存操作后会未定义此类函数。
我个人建议您避免使用持久性反应器,而应在绘图启动时重建瞬态反应器。以我的经验,持久性反应器从来都不是真正持久性的。