Перейти к публикации

Creo. Получить дерево сборки с помощью API.


Рекомендованные сообщения

Приветствую всех.

Задача: программно (с помощью API) получить дерево сборки Creo Parametric.

Нужны компоненты типа IpfcAssembly и IpfcPart.

Если кто-нибудь решал подобную задачу, просьба помочь или подсказать. Желательно на C# или на Visual Basic.

Фактически мне нужно только знать, как из сборки (IpfcAssembly) получить ее подсборки (IpfcAssembly) и детали (IpfcPart).

Заранее благодарен.

 

Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
31 минуту назад, ainis сказал:

дерево сборки

Что Вы под этим подразумеваете? Чем это "дерево" отличается от спецификации?

Ссылка на сообщение
Поделиться на других сайтах

Отвечу сам себе. Может, кому пригодится.

 

Dim CreoAssembly As IpfcAssembly = TryCast(Model, IpfcAssembly)' получаем корневую сборку из модели

Call GetComponents(CreoAssembly, CreoAssembly , New Cintseq)'получаем  компоненты сборки

'================================================================================

Public Sub GetComponents(RootCreoAssembly As IpfcAssembly, CreoAssembly As IpfcAssembly, ByVal currentLevel As Cintseq)

 Dim currentComponent As IpfcSolid = TryCast(CreoAssembly, IpfcSolid)

 Dim Components As IpfcFeatures = currentComponent.ListFeaturesByType(False, EpfcFeatureType.EpfcFEATTYPE_COMPONENT)

 Dim level As Integer = currentLevel.Count

 For i As Integer = 0 To Components.Count - 1

  Dim componentFeat As IpfcComponentFeat = TryCast(Components.Item(i), IpfcComponentFeat)

  currentLevel.Set(level, componentFeat.Id)

  Dim currentPath As IpfcComponentPath = (New CMpfcAssembly).CreateComponentPath(RootCreoAssembly, currentLevel)

  Dim currentComponent1 As IpfcSolid = currentPath.Leaf

  Select Case currentComponent1.Type

   Case EpfcModelType.EpfcMDL_PART 'деталь

    dim CurrentDetail As IpfcPart = TryCast(currentComponent1, IpfcPart)' получили деталь

   Case EpfcModelType.EpfcMDL_ASSEMBLY 'сборка

     Dim CurrentAssembly As IpfcAssembly = TryCast(currentComponent1, IpfcAssembly)'получили подсборку

     Call GetComponents(RootCreoAssembly , CurrentAssembly, currentLevel)'получаем  компоненты подсборки

  End Select

 Next

 If Not level = 0 Then
   currentLevel.Remove(level - 1, level)
 End If

End Sub

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




  • Сообщения

    • Orchestra2603
      Я так и не понял, так в чем проблема то была? За что @Jesse то получил ? :D Ну, допустим нужна факторизация. Ну, так, сделаем факторизацию. В чем сложность в итоге? Или вы хотите скахать, что в ИСПЕ какая-то специальная крутая система обхода факторизации?   Кроме того, разве матрица масс стержневого элемента не так выглядит?     Почему у вас нет внедиагональных элементов?
    • cepr
      Есть рабочий компьютер, есть от чего отталкиваться. Понятно, что связка Intel-Nvidia. Экран 17", обратить внимание на матрицу. Ну, и сумма, какую можете потратить на ноут.
    • gudstartup
      а вот тут все уже расписано   это оказалось непросто оказывается китайцы в этих вопросах большие параноики и сами себе не доверяют
    • MagicNight
      Да дело не в бедности, ищу оптимальный ноут, пока не могу найти.
    • Bot
      АСКОН объявляет о старте открытого бета-тестирования новой версии КОМПАС-3D и приложений. Коммерческая версия КОМПАС-3D v23 выйдет летом 2024 года, но уже сейчас испытать новинки может любой желающий. Бета-тестирование — это проверка новой функциональности в «полевых» условиях, когда пользователи знакомятся с нововведениями на собственных проектах и сценариях работы, а также проверяют совместимость со своим программно-аппаратным обеспечением. Новая версия создавалась в соответствии с дорожной картой АСКОН для задач проектирования изделий высокотехнологичных отраслей и стала еще более функциональной и производительной. При разработке учитывались предложения пользователей по темам трехмерного моделирования, подготовки чертежей и спецификаций, приложений для машиностроения, приборостроения и строительства. Бета-версия КОМПАС-3D открыта для всех. Дистрибутив предоставляется бесплатно на время проведения тестирования. *** Период проведения бета-тестирования: с 6 [...] View the full article
    • fenics555
      Уважаемые Дамы и Господа!  Есть библиотечные изделия, которые почему-то очень доооооолго грузятся в сборках. Я хочу попросить Вас потестить их и сказать в чем причина, ибо совсем невозможно работать. gost18829-73.prt.1 pin_split.prt.1 Как это всё можно ускорить?
    • gudstartup
      а вы хоть станок проверяли по программе на изделии на точность прежде чем товарищей этих выгнать? если нет то грешите на самих себя! система в наших краях еще не распространенная поэтому и тем тут нет надо в поднебесную писать
    • AlexArt
      Ну допустим, ты и на другом ресурсе это опубликовал. А не коммуниздил. Но вот продвигать воровство от государства, ворующее из Вики, это верх мерзости.
    • maxx2000
      Ах, да. Фильтры выбора добавили. Теперь можно выбрать только то что видно на первом плане, а не вместе с тем что с обратной стороны детали. В общем надо обновляться. Как раз работёнка на прессформу нарисовалась 
    • maxx2000
      Причина того - Кроилово. Кроилово всегда приводит к попадалову. Месяц простоял сколько мильонов деревянных потеряли? Вопрос риторический. И ещё будет стоять. Как памятник человеческой глупости и жадности.
×
×
  • Создать...