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

ADN Club => AutoCAD .NET API => Тема начата: valtur1983 от 26-02-2022, 16:54:43

Название: Вставка таблицы
Отправлено: valtur1983 от 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.  

Подскажите в чем проблема. Неужели необходимо создавать новую таблицу с нуля?
Название: Re: Вставка таблицы
Отправлено: Вильдар от 26-02-2022, 18:24:41
Копировать таблицу точно необходимо.
Можно два варианта попробовать.
1. Клонировать таблицу. Что создаст копию таблицы и вставлять эту копию. Тут могут быть проблемы с клонированием, оно как-бы не глубокое. Важно это или нет для таблиц, не знаю.
2. Копировать вставленную таблицу, через WBlockCopyObjects или точнее DeepCloneObjects.

Ну и само собой, создавать новую таблицу тоже можно. Писать кода меньше)
Название: Re: Вставка таблицы
Отправлено: Александр Ривилис от 26-02-2022, 19:29:21
valtur1983,
После
Код - C# [Выбрать]
  1. sp.AppendEntity(table);
table уже в базе и повторно добавлять в базу его нельзя.