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