明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1819|回复: 6

C# .NET 如何切换图纸(DWG)?

[复制链接]
发表于 2015-5-31 20:03:39 | 显示全部楼层 |阅读模式
本帖最后由 Real_King 于 2015-5-31 20:28 编辑

当前CAD有了两张图,一张为最开始获得的Document DOC = AcadApp.DocumentManager.MdiActiveDocument;
另一张为后建立的
Document acDoc = AcadApp.DocumentManager.Add("acad.dwt");
AcadApp.DocumentManager.MdiActiveDocument = acDoc;这第二张acDoc被设为了当前

如何将当前CAD操作的图切换为第一张DOC?如何互相切换?
如果加上AcadApp.DocumentManager.MdiActiveDocument = DOC;会报错
发表于 2015-5-31 21:14:44 来自手机 | 显示全部楼层
设置命令格式为session
发表于 2015-5-31 23:15:58 | 显示全部楼层
本帖最后由 cooolseee 于 2015-6-22 22:07 编辑

[CommandMethod(“xxx”,CommandFlags.Session)],其中,“XXX”为命令名。以前我也遇到过类似操作文档的问题,论坛上高手知道后,解决了。
发表于 2015-6-22 22:58:50 | 显示全部楼层
曾经以为自己懂了,实际上还是不懂,还是请飞狐兄给指点,代码如下:
#region 新建dwg文档
        [CommandMethod("dwgCreat",CommandFlags.Session)]
        public void dwgCreat()
        {
            DocumentCollection docs=Application.DocumentManager;
            Document doc = Application.DocumentManager.Add("acad.dwt");
            docs.MdiActiveDocument = doc;
        }
        #endregion 新建dwg文档


加载后运行后,异常提示:
========================================
应用程序不支持实时(JIT)调试。
有关详细信息,请参见此消息的结尾。

************** 异常文本 **************
Autodesk.AutoCAD.Runtime.Exception: eInvalidInput
   在 Autodesk.AutoCAD.Runtime.Interop.Check(Int32 returnValue)
   在 Autodesk.AutoCAD.ApplicationServices.DocumentCollection.set_MdiActiveDocument(Document value)
   在 电码化工具.Tools.dwgCreat() 位置 D:\电码化工具\电码化工具\Tools.cs:行号 820
   在 AcMgCommandClass.InvokeWorker(AcMgCommandClass* , MethodInfo mi, Object commandObject, Boolean bLispFunction)
   在 AcMgCommandClass.InvokeWorkerWithExceptionFilter(AcMgCommandClass* , MethodInfo mi, Object commandObject, Boolean bLispFunction)
   在 AcMgPerDocumentCommandClass.Invoke(AcMgPerDocumentCommandClass* , gcroot<System::Reflection::MethodInfo ^>* mi, Boolean bLispFunction)
   在 AcMgCommandClass.CommandThunk.Invoke(CommandThunk* )
================================================
请赐教,谢谢飞狐兄
 楼主| 发表于 2015-6-23 09:00:01 | 显示全部楼层
cooolseee 发表于 2015-6-22 22:58
曾经以为自己懂了,实际上还是不懂,还是请飞狐兄给指点,代码如下:
#region 新建dwg文档
        [Comm ...

加锁吧?翻翻.NET 开发人员手册
发表于 2015-6-23 10:03:06 | 显示全部楼层
谢谢,我看看
发表于 2015-6-23 23:02:00 | 显示全部楼层
  1. #region 新建dwg文档
  2.         [CommandMethod("dwgCreat", CommandFlags.Session)]
  3.         public void dwgCreat()
  4.         {
  5.             using (Document ODOC = Application.DocumentManager.MdiActiveDocument)
  6.             {
  7.                 Document doc = Application.DocumentManager.Add("acad.dwt");
  8.                 DocumentCollection docs = Application.DocumentManager;
  9.                 docs.MdiActiveDocument = ODOC;
  10.             }
  11.         }
  12.         #endregion 新建dwg文档

终于成功,感谢朋友们的支持
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 10:41 , Processed in 0.166003 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表