1

いくつかの図面でバッチ処理を行うプログラムがあります。図面の1つを開こうとすると、例外「データの復号化エラー」がスローされます。特にこの図面は、AutoCAD以外のサードパーティツールによって生成されました。さらに、この問題はAutoCAD 2011でのみ発生します。AutoCAD2010では、ファイルがAutoCADの外部で生成されたことをユーザーに確認しますが、クリックするとバッチが続行されます。マネージド.NETAPIとCOMInteropAPIの両方を使用して開こうとしましたが、どちらも同じエラーが発生します。

これがAutoCADformusからの投稿ですが、解決策は提供されませんでした。

http://forums.autodesk.com/t5/NET/Error-Decrypting-Data-Acad-2011/td-p/2661762/highlight/true

マネージドAPI

string drawingFilePath = @"C:\Drawings\MyDrawing.dwg";
Application.DocumentManager.Open(drawingFilePath, false);

COM相互運用

string drawingFilePath = @"C:\Drawings\MyDrawing.dwg";
Object comAutoCAD = Application.AcadApplication;
Object comDocuments = comAutoCAD.GetType().InvokeMember("Documents", BindingFlags.GetProperty, null, comAutoCAD, new object[] { });

Object comDocument = comDocuments.GetType().InvokeMember("Open", BindingFlags.InvokeMethod, null, comDocuments,
    new object[] { drawingFilePath, false, Type.Missing });
Document.FromAcadDocument(comDocument);
4

1 に答える 1

2

AutoCAD フォーラムの誰かが、私にとって有効な回答を投稿しました。

http://forums.autodesk.com/t5/NET/Error-Decrypting-Data-Acad-2011/td-p/2661762/page/2

次に例を示します。

const string systemVar_DwgCheck = "DWGCHECK";
Int16 dwgCheckPrevious = (Int16)Application.GetSystemVariable(systemVar_DwgCheck);
Application.SetSystemVariable(systemVar_DwgCheck, 2);

Document document = Application.DocumentManager.Open(@"C:\Drawings\MyDrawing.dwg", false);
// Do stuff...

Application.SetSystemVariable(systemVar_DwgCheck, dwgCheckPrevious);
于 2010-11-01T15:40:56.233 に答える