关于MicroStation AutoSave功能


背景

MicroStation里面总共有五个环境变量(MS_DGNAUTOSAVE, MS_V7AUTOSAVE, MS_DWGAUTOSAVE, MS_V7AUTOSAVE_NODIALOG, 以及MS_DWGAUTOSAVE_NODIALOG) 和一个用户偏好设置("Automatically Save Design Changes")来控制决定AutoSave的行为。

步步深入

总则1:如果上述环境变量都没有被设置,并且用户偏好设置里也没有勾选"Automatically Save Design Changes"的情况下,经过编辑的文件不会被自动保存,关闭MicroStation的时候会出现是否保存的提醒。

总则2:环境变量的优先级 > 用户偏好设置的优先级。所以如果环境变量被设置,用户偏好设置会随之改变并且不可更改。

总则3:如果MS_DGNAUTOSAVE被设置为0或者负数,无论其他环境变量如何设置,所有类型文件的自动保存将会被屏蔽。
              在关闭MicroStation的时候会出现和总则1一样的提醒对话框。
              如下图所示,基于总则2,这时用户偏好设置没被勾选并且不可更改。

总则4:如果MS_DGNAUTOSAVE被设置为正数,所有类型文件的自动保存将会被开启。
如下图所示,基于总则2,这时用户偏好设置被勾选并且不可更改。

当对文件进行编辑之后,在MicroStation View窗口下方状态栏的File Changed栏目上会显示出一个Floppy Disk的图标(File Changed栏目可以通过右键点击状态栏选择开启)。

当编辑V8格式的文件的时候,MS_DGNAUTOSAVE的值表示用户在非操作状态(Inactive)下到开始自动保存时的时间差(以秒为单位)。保存动作结束时Floppy Disk小图标消失。默认值为2秒。(在MS_DGNAUTOSAVE的值没有被设置,但是MS_V7AUTOSAVE或者MS_DWGAUTOSAVE的值被设置了,或者用户偏好设置里"Automatically Save Design Changes"被勾选的情况下执行默认值)

总则5:如果MS_V7AUTOSAVE 被设置为正数,它代表V7格式文件在首次被编辑之后,直至激发自动保存时的时间差(以秒为单位,最小值为30)。当经过所设置的自动保存时间时,会弹出一个小窗口向用户确认是否需要保存变更内容。用户有权选择推迟保存,因为保存可能会相对较长。
注意:如果MS_DGNAUTOSAVEMS_V7AUTOSAVE 同时被设置为正数,那么对于V7格式文件来说MS_V7AUTOSAVE 的设置优先。

总则6:和总则5类似,如果MS_DWGAUTOSAVE 被设置为正数,它代表DWG或者DXF文件在首次被编辑之后,直至激发自动保存时的时间差(以秒为单位,最小值为30)。当经过所设置的自动保存时间时,会弹出一个小窗口向用户确认是否需要保存变更内容。用户有权选择推迟保存,因为保存可能会相对较长。
注意:如果MS_DGNAUTOSAVEMS_DWGAUTOSAVE同时被设置为正数,那么对于DWG或者DXF文件来说MS_DWGAUTOSAVE的设置优先。并且不可更改。

总则7:如果MS_V7AUTOSAVE_NODIALOG 或者MS_DWGAUTOSAVE_NODIALOG环境变量被设置为任何值,在上面提到的情况之中将不会出现自动保存确认的小窗口。

总则8:如果MS_DGNAUTOSAVE或者MS_V7AUTOSAVE 或者MS_DWGAUTOSAVE 被设置为正数,但是在文件编辑过程中没有执行自动保存,在关闭MicroStation的时候当前的状态会被默认执行自动保存而不会出现和总则1类似的保存提醒。

总结

综上所述,
环境变量的优先级 > 用户偏好设置的优先级。当所有环境变量都没有被设置的时候,可以手动勾选或者取消用户偏好设置。否则用户偏好设置由环境变量的值决定。
MS_DGNAUTOSAVE被设置为0或者负数的时候优先级是最高的。
MS_DGNAUTOSAVE被设置为正数的时候,所有类型文件的自动保存将会被开启。
      当被编辑的文件时V7格式,DWG或者DXF的时候,
            如果MS_V7AUTOSAVE 或者MS_DWGAUTOSAVE 为0或者负数,编辑过程中自动保存不会被执行,关闭MicroStation的时候自动保存被执行;
            如果MS_V7AUTOSAVE 或者MS_DWGAUTOSAVE为正数,以MS_V7AUTOSAVE 或者MS_DWGAUTOSAVE的设置优先。
MS_V7AUTOSAVE_NODIALOG 或者MS_DWGAUTOSAVE_NODIALOG仅仅是用来控制在特殊情况下是否出现提示保存的小窗口。