Как получить список рёбер?

Программирование для CATIA.

Как получить список рёбер?

Сообщение yakovchuck » 25 фев 2009 15:05

Здраствуйте,

необходимо получить список рёбер CATEdge для элемента CATIEdgeFillet. Собственно как я понял для этого необходимо использовать функцию GetObject. Но никак не могу понять что дальше делать со списком CATISpecialObject_var.

Заранее спасибо за любую помощь !!!
yakovchuck
Новичок
Новичок
 
Сообщения: 1
Зарегистрирован: 20 фев 2009 13:13

Re: Как получить список рёбер?

Сообщение booSter » 25 фев 2009 16:57

GetObject возвращает список CATISpecialObject-ов которые в свою очередь являются CATIMfRedge-ами либо CATIMfRsur-ами (см. доку). Интерфейсы CATIMfXxx происходят от CATIMfBRep у которого есть функция GetEdges...

Код: Выделить всё
...
CATIEdgeFillet_var spMyFillet = ...
...
CATLISTV(CATISpecObject_var) * plsspSpecOnEdges = spMyFillet->GetObject();
if ( NULL == plsspSpecOnEdges )
    ...
CATIMfBRep_var spBRepOnEdge( NULL_var );
CATLISTP(CATCell) lspCells;
CATCell * pCell( NULL );
for ( int nIdx = 1; nIdx<=plsspSpecOnEdges->Size(); ++nIdx )
{
    spBRepOnEdge = (*plsspSpecOnEdges)[nIdx];
    if ( ! spBRepOnEdge )
        ...
    lspCells = spBRepOnEdge->GetEdges();
    for ( int nCell = 1; nCell<=lspCells; ++nCell )
    {
        pCell = lspCells[nCell];
        if ( NULL != pCell  )
        {
            if ( pCell->IsAKindOf( CATEdge::ClassName() ) )
            {
                CATEdge_var spEdge = pCell;
                // use your edge
                ...
            }
        }
    }
}
...
delete plsspSpecOnEdges, plsspSpecOnEdges = NULL;
...
Сделаешь доброе дело за деньги - скажут спасибо,
Сделаешь бесплатно - сядут на шею...
©пёрто
Аватара пользователя
booSter
Moderator
 
Сообщения: 227
Images: 15
Зарегистрирован: 09 фев 2008 16:48
Откуда: Minsk


Вернуться в CAA-RADE

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

cron