Вставка таблицы

Автор Тема: Вставка таблицы  (Прочитано 7232 раз)

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

Оффлайн valtur1983Автор темы

  • ADN OPEN
  • Сообщений: 46
  • Карма: 2
Вставка таблицы
« : 26-02-2022, 16:54:43 »
Здравствуйте!

Необходимо таблицу разместить в разных местах пространства Модели.

Первая вставка срабатывает, вторая на методе  AppendEntity выдет ошибку
Код - C# [Выбрать]
  1. table.Position = new Point3d(pos1, pos2, 0.0);
  2. table.GenerateLayout();
  3. BlockTableRecord sp = tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite) as BlockTableRecord;
  4. sp.AppendEntity(table);
  5. tr.AddNewlyCreatedDBObject(table, true);
  6.  
  7. table.Position = new Point3d(pos2, pos2, 0.0);
  8. sp.AppendEntity(table);
  9. tr.AddNewlyCreatedDBObject(table, true);
  10.  

Подскажите в чем проблема. Неужели необходимо создавать новую таблицу с нуля?

Оффлайн Вильдар

  • ADN Club
  • ****
  • Сообщений: 409
  • Карма: 77
  • Skype: vildar82
Re: Вставка таблицы
« Ответ #1 : 26-02-2022, 18:24:41 »
Копировать таблицу точно необходимо.
Можно два варианта попробовать.
1. Клонировать таблицу. Что создаст копию таблицы и вставлять эту копию. Тут могут быть проблемы с клонированием, оно как-бы не глубокое. Важно это или нет для таблиц, не знаю.
2. Копировать вставленную таблицу, через WBlockCopyObjects или точнее DeepCloneObjects.

Ну и само собой, создавать новую таблицу тоже можно. Писать кода меньше)

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

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Вставка таблицы
« Ответ #2 : 26-02-2022, 19:29:21 »
valtur1983,
После
Код - C# [Выбрать]
  1. sp.AppendEntity(table);
table уже в базе и повторно добавлять в базу его нельзя.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение