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;会报错 设置命令格式为session 本帖最后由 cooolseee 于 2015-6-22 22:07 编辑
,其中,“XXX”为命令名。以前我也遇到过类似操作文档的问题,论坛上高手知道后,解决了。 曾经以为自己懂了,实际上还是不懂,还是请飞狐兄给指点,代码如下:
#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* )
================================================
请赐教,谢谢飞狐兄 cooolseee 发表于 2015-6-22 22:58 static/image/common/back.gif
曾经以为自己懂了,实际上还是不懂,还是请飞狐兄给指点,代码如下:
#region 新建dwg文档
加锁吧?翻翻.NET 开发人员手册 谢谢,我看看 #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]