Real_King 发表于 2015-5-31 20:03:39

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

本帖最后由 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;会报错

雪山飞狐_lzh 发表于 2015-5-31 21:14:44

设置命令格式为session

cooolseee 发表于 2015-5-31 23:15:58

本帖最后由 cooolseee 于 2015-6-22 22:07 编辑

,其中,“XXX”为命令名。以前我也遇到过类似操作文档的问题,论坛上高手知道后,解决了。

cooolseee 发表于 2015-6-22 22:58:50

曾经以为自己懂了,实际上还是不懂,还是请飞狐兄给指点,代码如下:
#region 新建dwg文档
      
      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* )
================================================
请赐教,谢谢飞狐兄

Real_King 发表于 2015-6-23 09:00:01

cooolseee 发表于 2015-6-22 22:58 static/image/common/back.gif
曾经以为自己懂了,实际上还是不懂,还是请飞狐兄给指点,代码如下:
#region 新建dwg文档
      

加锁吧?翻翻.NET 开发人员手册

cooolseee 发表于 2015-6-23 10:03:06

谢谢,我看看

cooolseee 发表于 2015-6-23 23:02:00

#region 新建dwg文档
      
      public void dwgCreat()
      {
            using (Document ODOC = Application.DocumentManager.MdiActiveDocument)
            {
                Document doc = Application.DocumentManager.Add("acad.dwt");
                DocumentCollection docs = Application.DocumentManager;
                docs.MdiActiveDocument = ODOC;
            }
      }
      #endregion 新建dwg文档
终于成功,感谢朋友们的支持
页: [1]
查看完整版本: C# .NET 如何切换图纸(DWG)?