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

ADN Club => ObjectARX => Тема начата: Debalance от 05-02-2015, 12:04:06

Название: Как корректно разбить динамический блок?
Отправлено: Debalance от 05-02-2015, 12:04:06
При попытке применить AcDbEntity::explode() к динамическому блоку получается полная каша из всех возможных элементов этого самого блока. А как разбить только текущее его представление? Я так понимаю надо копать в сторону AcDbDynBlockReference::convertToStaticBlock()... Кто нибудь в курсе?
Название: Re: Как корректно разбить динамический блок?
Отправлено: Александр Ривилис от 05-02-2015, 13:24:30
Попробуй обычный метод explode(), но отфильтровывай результат по двум критериям:
1) Полученный объект - это примитив (т.е. AcDbEntity::cast(pEnt) != NULL)
2) Полученный примитив видим (т.е. pEnt->visibility() == AcDb::kVisible)
Должно получится. Во всяком случае в .NET такое работает: http://forums.autodesk.com/t5/net/explode-dynamic-block-with-visibility-states/td-p/3643036
Название: Re: Как корректно разбить динамический блок?
Отправлено: Debalance от 05-02-2015, 13:44:47
pEnt->visibility() == AcDb::kVisible
А ларчик просто открывался... Спасибо!
Название: Re: Как корректно разбить динамический блок?
Отправлено: Александр Ривилис от 05-02-2015, 13:50:17
А ларчик просто открывался... Спасибо!
Пожалуйста! Надеюсь ты проверил моё предположение до того, как отметить мой ответ как Решение? :-)
Название: Re: Как корректно разбить динамический блок?
Отправлено: Debalance от 05-02-2015, 13:54:33
Пожалуйста? Надеюсь ты проверил моё предположение до того, как отметить мой ответ как Решение? :-)

Обижаете!!! Так как я доверяю только себе  :)  я, естественно, всё предварительно проверил...