A-A+
当关闭AutoCAD文档时自动执行AutoLISP脚本程序
在AutoCAD中我们可以使用AutoLISP的vlr-command-reactor函数来监听文件的关闭事件FileOnClose,当监听到此命令时可以自动执行AutoLISP脚本来完成相应的工作。整个流程代码如下:
(defun AtEndCommand (calling-reactor b)
(if (= (nth 0 b) "CLOSE")
(关闭文档时要执行的代码)
)
)
(defun loadTheReactor ()
(vl-load-com)
(if *FileOnClose* (vlr-remove *FileOnClose*))
(setq *FileOnClose*
(vlr-command-reactor nil '((:vlr-commandEnded . AtEndCommand)))
)
)
(loadTheReactor)
使用此流程时需要注意:(1)不能在代码中执行更改即将关闭的AutoCAD文档内容的命令,因为更改AutoCAD文档后必须再次执行关闭动作,这样会造成死循环;(2)不能在代码中执行对话框相关操作,否则可能会造成致命错误。