вставить примитив в базу данных

Автор Тема: вставить примитив в базу данных  (Прочитано 4412 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sash-2007Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Приветствую :)
пример кода:

Код - C# [Выбрать]
  1.                     Database db = new Database(false, false);
  2.                     db.DxfIn(pathDXF, null);
  3.  
  4.                     using (Transaction Tr = db.TransactionManager.StartTransaction())
  5.                     {
  6.  
  7.                         BlockTable BT = Tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;
  8.                         BlockTableRecord BTR = Tr.GetObject(BT[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
  9.  
  10.                         DBText text = new DBText();
  11.                         text.SetDatabaseDefaults();
  12.                         text.TextString = "TEXT";
  13.                         text.Height = 20;
  14.                         BTR.AppendEntity(text);                                  // вылетает исключение eWrongDatabase
  15.                         Tr.AddNewlyCreatedDBObject(text, true);
  16.  
  17.                         Tr.Commit();
  18.                     }
  19.              
  20.                  
  21.                     db.DxfOut(pathDXF+"123", 16, false);
  22.                     db.Dispose();
  23.  

Вопрос: можно ли добавить примитив в базу чертежа таким образом и сохранить?

Отмечено как Решение sash-2007 26-07-2017, 11:14:20

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: вставить примитив в базу данных
« Ответ #1 : 26-07-2017, 09:50:25 »
Замени
Код - C# [Выбрать]
  1. BlockTable BT = Tr.GetObject(db.BlockTableId, OpenMode.ForWrite) as BlockTable;
на
Код - C# [Выбрать]
  1. BlockTable BT = Tr.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;
и
Код - C# [Выбрать]
  1. text.SetDatabaseDefaults();
на
Код - C# [Выбрать]
  1. text.SetDatabaseDefaults(db);
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн sash-2007Автор темы

  • ADN OPEN
  • Сообщений: 21
  • Карма: -1
Re: вставить примитив в базу данных
« Ответ #2 : 26-07-2017, 11:17:28 »
Работает :)
Сенкю, вэри мач :)