C # NxOpen — поиск всех групп объектов в активной рабочей части

#c# #nxopen

#c# #nxopen

Вопрос:

Да, в программе САПР Siemens NX у меня есть активная рабочая часть. Внутри этой рабочей части у меня есть некоторые функции (например, кривые). Для этих функций я создаю FeatureGroup, например, папку с документами в проводнике Windows. Теперь я пытаюсь найти через интерфейс программирования NxOpen все группы объектов в активной рабочей части. Я делаю это на C #, но любая помощь в VBA также должна быть приемлемой для меня.

Я пытаюсь это:

 foreach(FeatureGroup FGroupX in workpart.Features)
{
    do something with current FGroupX ...
}
  

«workpart.features» предоставляет мне коллекцию всех функций в активной рабочей части. Но цикл for вызывает запросы для каждой функции этой коллекции, которая не относится к типу «Featuregroup».

Есть ли другое подходящее решение для поиска всех групп объектов в активной рабочей части?

Ответ №1:

Решена с помощью дополнительной проверки типа объекта:

 foreach(Feature curFeature in workpart.Features)
{
    Type type = curFeature.getType();
    if(type == typeof(FeatureGroup))
    {
        FeatureGroup fg = (FeatureGroup)curFeature //explicite conversion to FeatureGroup-Type
        //do something with fg
    }
}
  

Комментарии:

1. Вы также могли бы написать что-то вроде foreach (var feature in workpart.Features.ToArray()) 😉