Всем привет!
Чувствую, что схожу с ума...
Стоит задача - нужно открыть dxf файл, что-то в нем сделать, сохранить. По сути, файл мне открывать не нужно как документ, а достаточно прочитать БД и внести изменения. Но я до этого момента даже дойти не могу!
Вот такой код:
namespace MoveToOrigin
{
using System;
using System.IO;
using System.Windows;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Runtime;
public class Starter
{
[CommandMethod("MoveToOrigin")]
public void Start()
{
try
{
var file = @"E:\Test\MoveToOrigin\test.dxf";
var outputDir = @"E:\Test\MoveToOrigin\Correct";
Database db = new Database(false, true);
db.ReadDwgFile(file, FileShare.ReadWrite, false, "");
using (Transaction tr = db.TransactionManager.StartTransaction())
{
// some work
tr.Commit();
}
db.SaveAs(Path.Combine(outputDir, "Test.dxf"), db.OriginalFileVersion);
db.Dispose();
}
catch (System.Exception exception)
{
MessageBox.Show(exception.Message + Environment.NewLine + exception.StackTrace);
}
}
}
}
На 22 строке я ловлю ошибку eBadDwgHeader. Ничего найти по этой ошибке не могу. Причем, сначала я ловил ошибку eInvalidInput, которая пропала после замены
db.ReadDwgFile(file, FileShare.Write, true, string.Empty);
на
db.ReadDwgFile(file, FileShare.ReadWrite, false, "");