mummypie 发表于 2011-6-30 17:21:06

DocumentManager.Open之后Editor.WriteMessage 出现 eNotApplicable错误

本帖最后由 mummypie 于 2011-6-30 17:25 编辑

            public static void cmd()
{
            Document doc = Application.DocumentManager.Open("d:\\勘测.dwg",false);               Editor ed = doc.Editor;
            Database db = doc.Database;

            ed.WriteMessage("获取地形图数据\n");
}


似乎是文档还没被完全打开,Document还没有被初始化,造成调用命令失败
有人知道处理办法吗,我需要打开后自动的处理图形中相关数据

有没有通知文档已经打开完毕的事件?

sieben 发表于 2011-6-30 19:41:45

你的doc不是当前文档,这时使用其ed应该不行吧?

cdinten 发表于 2011-6-30 21:13:07

楼上说的有道理,你试试将doc设置为当前活动文档试试

mummypie 发表于 2011-7-1 11:06:58

本帖最后由 mummypie 于 2011-7-1 11:12 编辑

            Document doc= Application.DocumentManager.Open("d:\\勘测.dwg", true);
            Application.DocumentManager.MdiActiveDocument = doc ;
第二句执行不了,就像被阻断了。。vc#里面用“全部中断”发现就停在第二句上面,在cad里面改变活动文档或者关掉时就可以往下执行,但就要报错了
eNotApplicable
或者eNoDocument

sailorcwx 发表于 2011-7-2 19:48:31

open后就是当前文档了,所以不需要再设置。
试试用lockdocument(是lockdocument还是documentlock忘记了,!-_-)锁定文档

cdinten 发表于 2011-7-4 08:43:40

然后Editor ed=doc.Editor;

longge7685 发表于 2011-7-10 16:35:07

这两天我也遇到了类似的问题,            
Document doc= Application.DocumentManager.Open("d:\\勘测.dwg", true);
Application.DocumentManager.MdiActiveDocument = doc ;
第二句会报错,删去之后确定没错?

shghe 发表于 2011-7-12 12:37:21

这个问题,我也遇到了。仍未解决!

cdinten 发表于 2011-7-12 16:58:13

有人试过下面的代码吗?
DocumentCollection acDocMgr = Application.DocumentManager;
Document acDoc = acDocMgr.Add(strTemplatePath);
acDocMgr.MdiActiveDocument = acDoc;

☆⒈笙相守o0 发表于 2011-11-28 20:54:53

貌似 过去超级版主 给的代码的可以解决

加上CommandFlags.Session标记
页: [1] 2
查看完整版本: DocumentManager.Open之后Editor.WriteMessage 出现 eNotApplicable错误