ObjectARX, AutoCAD. Среда программирования библиотеки C++



         

Обработка жестких ссылок к AcDbEntities в течение WblockClone (): СЛУЧАЙ 1 - часть 2


if (es != Acad::eOk)

return es;

// Use the same owner, and pass in the same isPrimary

// value.

//

AcDbObject* pSubClone = NULL;

es = pEnt->wblockClone(pOwner, pSubClone, idMap, kTrue);

if (pSubClone != NULL)

pSubClone->close();

pEnt->close();

if (es != Acad::eOk)

return es;

}

// Now we can clone ourselves by calling our parent’s method.

//

return AcDbEntity::wblockClone(pOwner, pClone, idMap, isPrimary);

}

Обработка жестких ссылок к AcDbEntities в течение wblockClone(): СЛУЧАЙ 2

Предыдущий пример будет только работать, когда ссылка находится в примитиве, и тот примитив - всегда в той же самой записи таблицы блоков как упомянутый примитив. Поскольку они находятся в той же самой записи таблицы блоков, установка isPrimary для относящегося примитива будет также иметь силу для упомянутого примитива. Однако, если упомянутый примитив может существовать в различной записи таблицы блоков, или если относящийся примитив - AcDbObject, Вы использовали бы другие средства, чтобы определить, было ли добавление в конец сделано.

Сначала, Вы будете должны проверить WBLOCK уведомление, чтобы определить, который тип WBLOCK встречается, вероятно,  устанавливая глобальный флажок, котором можно тогда делать запрос вашим wblockClone () функция:

§         если это - WBLOCK *, не используют AcDbBlockTableRecord:: appendAcDbEntity () в перегрузке заказного класса wblockClone (), в течение повторных вызовов, или в любом другом месте.

§         если это - WBLOCK определяемого пользователем блока, это может зависеть от того, где упомянутый примитив в настоящее время существует. Сначала, помните, что отобранный блок становится вырезанным в пространство модели рисунка адресата. Вы можете хотеть определить это поведение в другим способом, но сценарии пары могут быть следующие:

1) Всегда клонируйте упомянутые примитивы в пространство модели также. В этом случае, Вы всегда установили бы isPrimary в Adesk:: kTrue, или,




Содержание  Назад  Вперед