在AutoCAD R14的时候,SDI模式下,打开文档很多时候直接用ads_command(RTSTR, "_open", RTSTR, sFileName, RTNONE)这样的方法去打开,基于有些时候我们需要程序控制原文档是否保存(往往是放弃保存),因此往往需要检查当前文档是否已经被修改,是否会提示用户保存,否则,传入的sFileName往往就被当作了系统提问是否保存Yes/No的回答,然后就乱七八糟了。判断当前文档是否处于被修改状态可以通过ads_getvar("DBMOD",&rb)进行查询,如果发现文档被修改,这时就有3个解决方法:要么欺骗系统,让系统认为该文档在保存后没有被修改,要么把当前文件save到一个tmp.dwg中,要么就是在ads_command执行open后,系统提示是否存盘时再传入一个"N"。关于第一个方案,正常情况下,DBMOD是只读的,AutoCAD提供了一个extern long acdbSetDbmod(class AcDbDatabase* pDb, long newVal)让用户强行修改。第2种方案,很直接的,可以把这个tmp.dwg写到一个temp目录下,例如C:temp,或者软件的安装目录,不过碰到文件比较大,这个操作就需要耗点时间,而且毕竟不是一个体面的操作模式。第3种方案,为了系统是通过文字提问而非弹出对话框,需要修改FILEDIA 的值为0,然后就可以调用ads_command了。不过在实际操作过程中,发现第3种方法在某些情况下不管用,暂时也没有分析清楚,以后有机会再分析吧。
相关文章
- 2021-02-18AutoCAD 2013建筑制图经典设计228例中文版 [孙启善,白
- 2021-02-18AutoCAD 2013建筑与土木工程设计从入门到精通 [李波
- 2021-02-18AutoCAD 2013建筑设计绘图基础入门与范例精通 [丁金学
- 2021-02-18AutoCAD 2013建筑设计绘图笔记 [李京忠 编著] 2013年P
- 2021-02-18AutoCAD 2013家具设计绘图笔记PDF下载
- 2021-02-17AutoCAD 2013家具设计绘图笔记 [李波 编著] 2013年版P
- 2021-02-17AutoCAD 2013基础教程 [武晓丽,田广科,刘荣珍 主编] 201
- 2021-02-17AutoCAD 2013机械制图实例教程 [汪哲能 主编] 2014年P
- 2021-02-17AutoCAD 2013机械制图全解视频精讲 [谢龙汉 编] 2013
- 2021-02-17AutoCAD 2013机械制图经典设计228例中文版 [孙启善,陈