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

ADN Club => ObjectARX => Тема начата: begiz от 19-12-2022, 14:46:21

Название: анонимные блоки после удаления блока из выноски
Отправлено: begiz от 19-12-2022, 14:46:21
Добрый день, колеги
в проге нужно периодически обновлять данные в выносках.
чтобы всё было красиво в качестве информации указывается блок
при обновлении выноски выполняю следующий код в надежде всё почистить после себя

Код - C++ [Выбрать]
  1. AcDbObjectId blockId = mleader->blockContentId();
  2. mleader->setContentType(AcDbMLeaderStyle::kNoneContent);
  3. mleader.close();
  4.  
  5. AcDbBlockTableRecordPointer pRec(blockId, AcDb::kForWrite);
  6. if (pRec.openStatus() == Acad::eOk)
  7. {
  8.  AcDbObjectIdArray idArray;
  9.  pRec->getBlockReferenceIds(idArray);
  10.  for (int bi = 0; bi < idArray.length(); bi++)
  11.     EraseEntity(idArray[bi]);
  12.  pRec->erase();
  13. }
  14.  
  15.  

ошибок никаких нет, но вот через purge вижу анонимные блоки.

тут или с последовательностю чтото не так, либо я чтото не делаю.
Может встречались?
Название: Re: анонимные блоки после удаления блока из выноски
Отправлено: Александр Ривилис от 21-12-2022, 02:04:14
В мультивыноске динамический блок?
Название: Re: анонимные блоки после удаления блока из выноски
Отправлено: begiz от 21-12-2022, 08:07:03
Нет, обычный блок в котором только 1 таблица
AcDbTable  наследован от AcDbBlockReference, может с этим как то связано?
Название: Re: анонимные блоки после удаления блока из выноски
Отправлено: Александр Ривилис от 21-12-2022, 10:01:04
Нет, обычный блок в котором только 1 таблица
AcDbTable  наследован от AcDbBlockReference, может с этим как то связано?
Очень похоже.
Название: Re: анонимные блоки после удаления блока из выноски
Отправлено: begiz от 21-12-2022, 10:12:32
а есть какой-то способ этот анонимный блок посмотреть для начала?
а потом если это точно таблицы то через acdbCurDwg()->purge поудалять их

есть конечно вариант взрывать таблицу перед добавлением в блок, то тогда стили таблицы уже не получется использовать
Название: Re: анонимные блоки после удаления блока из выноски
Отправлено: Алексей Кулик от 21-12-2022, 12:57:42
А какие маски имен этих анонимных блоков? *D - это размеры, *T - таблицы, *U - как правило, вхождения дин.блоков. И потом, анонимные блоки, как правило, уничтожаются при закрытии документа автоматом (если, конечно, они не используются)
Название: Re: анонимные блоки после удаления блока из выноски
Отправлено: begiz от 21-12-2022, 13:10:16
многое праясняется :)
да, деиствительно маски *Т