反应堆文件已打开!?
以下代码应在文件打开、保存和关闭时发出警报。Save和Close可以正常工作,但beginOpen-EndOpen什么都不做。有没有在文件打开时工作的反应堆?我有Autocad 2008。(defun add-reactors( / )
(vlr-dwg-reactor nil '(
(:vlr-beginClose . beginCloseCallback)
(:vlr-beginDwgOpen . beginOpenCallback)
(:vlr-endDwgOpen . endOpenCallback)
(:vlr-beginSave . beginSaveCallback)
(:vlr-saveComplete . saveCompleteCallback)
)
)
)(defun beginCloseCallback(ro args / )
(princ"\n=====>Aktuelle Zeichnung wird geschlossen")
(princ "\nTaste drücken\n")
(read-char)
(princ)
)
(defun beginOpenCallback(ro args / )
(princ(strcat "\n=====>Zeichnung " (car args) " soll geöffnet werden"))
(princ)
)
(defun endOpenCallback(ro args / )
(princ(strcat "\n=====>Zeichnung " (car args) " wurde geöffnet"))
(princ)
)
(defun beginSaveCallback(ro args / )
;(princ(strcat "\n=====>Aktuelle Zeichnung soll als " (car args) " gespeichert werden"))
(princ(type(car args)))(terpri)
(princ)
)
(defun saveCompleteCallback(ro args / )
;(princ(strcat "\n=====>Aktuelle Zeichnung wurde als " (car args) " gespeichert"))
(princ(type(car args))) (terpri)
(princ "\nTaste drücken\n")
(read-char)
(princ)
)
; one shot by load
(add-reactors
确保它是持久的反应器,并确保回调函数在startapp加载,但当转移到其他电脑时,你必须先加载回调函数,它才能工作。
Wizman,简单介绍一下——持久反应堆和瞬态反应堆之间的区别是什么? 持久性反应堆仍在图纸中。reactor对象可以通过函数持久化(vlr pers reactor object)。一旦持久化,反应器会自动加载自身,因为它嵌入到反应器持久化字典中。因此无需再次加载。
瞬态电抗器是正常的默认类型的电抗器,一旦图纸关闭,它就不再起作用。
但是回调函数(在事件上运行的lisp)不会自动加载,除非加载到启动套件或acaddoc中。lsp。我还没有见过一个回调函数没有在starup或(load)函数中使用start就可以正常工作。但可以通过扩展数据、ldata、xrecord或注册表来嵌入回调。但仍然缺少一个阅读功能。但是,也许回叫功能也可以像dict中保存反应堆一样保存和加载。也许有人可以提供缺失的链接。
感谢Wizman的澄清-有趣的东西
页:
[1]