Тема: Геометрия Aec объектов

Добрый день!
У меня появилась проблемка: не могу никак добраться до геометрии Aec объектов(в Brep форме).  Пробовала конвертировать стены в AcDb3dSolid:

AecDbWall* wall = AecDbWall::cast(pEnt);
AcDbVoidPtrArray wallComponents;
Adesk::Boolean doSimple3d = Adesk::kFalse;
Adesk::Boolean cacheIt = Adesk::kTrue;
Adesk::Boolean doMergers = Adesk::kTrue;
Adesk::Boolean cutOpenings = Adesk::kTrue;
Adesk::Boolean cutInterference = Adesk::kTrue;
Adesk::Boolean applyBodyModifiers = Adesk::kTrue;
Adesk::Boolean modelOpeningEndcaps = Adesk::kFalse;                            wall.getComponentBodies(wallComponents,doSimple3d,cacheIt,doMergers,cutOpenings,cutInterference,
applyBodyModifiers,modelOpeningEndcaps);

int nComponents = wallComponents.length();
for(int i=0; i < nComponents; i++)
{
AcDb3dSolid solid;
solid.setBody(wallComponents[i]);
                                       
}
Естественно, так конвертировать не получается.
Приветствуются любые идеи, с помощью которых можно программно либо конвертировать Aec объекты в AcDb3dSolid, либо как-то иначе получать все грани, рёбра и вершины.

(изменено: Yuriy, 28 октября 2011г. 20:26:05)

Re: Геометрия Aec объектов

Анна пишет:

Приветствуются любые идеи, с помощью которых можно программно ... конвертировать Aec объекты в AcDb3dSolid...

это не программно
Command: _AecConvertto3DSolids
Select AEC objects to convert: 1 found
Select AEC objects to convert:
Erase selected objects? [Yes/No] <No>: y
Added 1 solid(s) to the drawing.

а это программно  :)  :)
(defun c:test ()

  (setq _e (car (entsel)))
  (command "_AecConvertto3DSolids" _e "" "_y")
 
(princ))

(изменено: Анна, 28 октября 2011г. 20:39:47)

Re: Геометрия Aec объектов

Вручную я уже научилась  ;)
Хотелось бы программно на С++. Весь день бьюсь над этим  :(

Мне важно получить результат для конкретного AEC объекта, поскольку мне нужно будет обрабатывать результат, переносить геометрию. Хорошо бы было воспользоваться функцией explode(), но она на Aec объектах программно плохо работает(не разбивает объекты).

Re: Геометрия Aec объектов

_.explode, примененное к АЕС-объектам, создает анонимный блок. В его составе находятся 3DFace, полностью повторяющие готовую геометрию АЕС-объекта.
Хотя я, наверное, пошел бы по другому пути - получил указатель на объект, выбрал его стиль, получил все приякоренные подобъекты (окна, двери, проемы и т.п.) и дальше уже все засовывал в обработку.

Re: Геометрия Aec объектов

Кулик Алексей aka kpblc пишет:

_.explode, примененное к АЕС-объектам, создает анонимный блок. В его составе находятся 3DFace, полностью повторяющие готовую геометрию АЕС-объекта.

explode почему-то у меня ничего не делает. Можно ли получить простенький пример использования?

Кулик Алексей aka kpblc пишет:

Хотя я, наверное, пошел бы по другому пути - получил указатель на объект, выбрал его стиль, получил все приякоренные подобъекты (окна, двери, проемы и т.п.) и дальше уже все засовывал в обработку.

Зачем выбирать стиль объекта, чтоб получить приякорённые подобъекты? Можно ли подробнее про другой путь?  Возможно, я действительно зарываюсь в дебри :)

Re: Геометрия Aec объектов

Анна,
1. Тема создана не в том разделе. Вы используете ObjectARX, значит создавать её следовало здесь
2. Вы используете классы OMF, которая лицензируется только членам ADN. Отсюда я делаю вывод, что и Вы член ADN. И следовательно Вы должны быть в курсе, что вопросы по OMF следует задавать только на сайте ADN через DevHelp Online.