Сообщество программистов Autodesk в СНГ

ADN Club => AutoCAD .NET API => Тема начата: simson43 от 14-03-2019, 17:56:59

Название: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 14-03-2019, 17:56:59
Добрый день!
Есть код, корректно работающий в автокад 2019, решил опробовать его в автокад 2016 и ни в какую.. может что-то упускаю
выдает ошибку eFileAccessErr, обычно это проходит после LockDocument()

Код - C# [Выбрать]
  1. Document doc = Application.DocumentManager.MdiActiveDocument;
  2. Database db = doc.Database;
  3.  
  4.             using (DocumentLock dl = doc.LockDocument())
  5.             {
  6.                 using (Transaction tr = db.TransactionManager.StartTransaction())
  7.                 {
  8.                     string fullName = @"D:\1.dwg";
  9.                     string name = Path.GetFileNameWithoutExtension(fullName);
  10.                     BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
  11.                     ObjectId xRefId = db.AttachXref(fullName, name);//в этом месте ошибка eFileAccessErr
  12.  
  13.                     using (BlockReference blkRef = new BlockReference(Point3d.Origin, xRefId))
  14.                     {
  15.                         BlockTableRecord modelBtr = tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForWrite) as BlockTableRecord;
  16.                         modelBtr.AppendEntity(blkRef);
  17.                         tr.AddNewlyCreatedDBObject(blkRef, true);
  18.                     }
  19.  
  20.                     tr.Commit();
  21.                 }
  22.             }
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: Александр Ривилис от 14-03-2019, 17:58:54
simson43,
dwg-файл сохранён в формате какой версии???
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 14-03-2019, 18:04:54
Он только созданный.. ещё не сохраненный. А вообще стоит 2013 в настройках в обоих автокадах
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: Александр Ривилис от 14-03-2019, 18:06:01
Он только созданный.. ещё не сохраненный.
Я про файл @"D:\1.dwg"
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 14-03-2019, 18:07:39
Так как стоит 2013 в настройках везде, то такой и должен быть, но все возможно, понял, проверю.
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: Александр Ривилис от 14-03-2019, 18:08:59
simson43,
Заодно убери:
Код - C# [Выбрать]
  1. BlockTable bt = tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
P.S.: Ну и надеюсь, что @"D:\1.dwg" не открыт в AutoCAD как отдельный документ или просто как база.
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 14-03-2019, 18:11:19
Да это для чего то в коде нужно, не прибрал просто)
Спасибо
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: Александр Ривилис от 14-03-2019, 18:12:19
Да это для чего то в коде нужно, не прибрал просто)
Спасибо
И? Что-то помогло, раз ты отметил мой ответ как решение?
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 14-03-2019, 18:12:36
Ну и надеюсь, что @"D:\1.dwg" не открыт в AutoCAD как отдельный документ или просто как база.
Ну нет
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 14-03-2019, 18:13:06
Позже проверю
Случайно отметил, убрал отметку
Название: Re: Подгрузить внешнюю ссылку AutoCad 2016
Отправлено: simson43 от 15-03-2019, 09:32:05
simson43,
dwg-файл сохранён в формате какой версии???
вы были правы, дело в версии!
Спасибо)