关于AutoCAD中的打开文档操作

原创 2006年05月24日 16:11:00

    在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种方法在某些情况下不管用,暂时也没有分析清楚,以后有机会再分析吧。

    在AutoCAD 2000/2002下,支持了MDI,因此常用操作有了一些改变。当然,并不是说ads_command不能用了,只是我更喜欢使用acDocManager->appContextOpenDocument(filename)这样的模式,调用此函数前,需要确认当前处于Application Context(利用acDocManager->isApplicationContext()进行判断),如果当前不是处于Application Context,可以通过调用acDocManager->executeInApplicationContext执行。在AutoCAD 2000/2002设定为“单文档兼容模式”时,也可以调用acedSyncFileOpen来打开文档,不过这种方式在MDI时无法工作。

    总体说来,目前对AutoCAD中打开文档的操作的了解还不够深入,需要进行进一步整理,待有时间整理了操作,封装好了再写一次这个话题吧。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

关闭文档不提示保存

最近,有一个这样的需求,所以把解决方法给贴出来一下。 首先,cad判断图纸是否被修改过,是根据一个变量的值来判断的,这个变量就是 DBMOD,很多人肯定会想到,那我把这个变量的值给修改成0或者是-1...

用arx 如何让 cad关闭文档时,不提示保存。

最近,有一个这样的需求,所以把解决方法给贴出来一下。首先,cad判断图纸是否被修改过,是根据一个变量的值来判断的,这个变量就是 DBMOD,很多人肯定会想到,那我把这个变量的值给修改成0或者是-1不就...

斑马打印机打开文档

【iOS】预览和打开文档

本文转自CocoaChina,译自http://code.tutsplus.com/tutorials/previewing-and-opening-documents-with-uidocument...

调用WPS打开文档

  • 2016-05-14 07:39
  • 274KB
  • 下载

自动打开文档

  • 2008-04-24 14:48
  • 1.91MB
  • 下载

同一系统安装双版本的Office软件,打开文档优先级设定的办法

同一系统安装双版本的Office软件,打开文档优先级设定的办法        在现在的办公软件中, Microsoft出品的 Office集成办公软件占据了绝大多数的市场份额,从最初的 Offi...

OnOpenDocument指定打开文档的默认类型

IDR_MAINFRAME字符串资源中包含7个子串,分别以\n结束,即如下格式: \n\n\n\n\n\n\n (1)CDocTemplate::windowTitle,主窗口标题栏上的字符串,M...
  • whucv
  • whucv
  • 2012-07-14 19:27
  • 1212

22打开文档ShellExcute

四个按钮:IDC_BTN_TXT ID
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)