Jump to content

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


Recommended Posts

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

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

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

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

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

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

 

Link to post
Share on other sites


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

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

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

Link to post
Share on other sites

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

 

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Kir95
      в 10 винде можно включать длинные пути в реестре: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem поставь для LongPathsEnabled  значение 1    или в групповой политике через консоль gpedit.msc в Конфигурации компьютера-Админ.шаблоны-Система-Файловая система-Включить длинные пути..   Если солид будет поддерживать длинные пути. Сам давно из-за этого ограничения делаю пути к файлам короткими, проверить не на чем))
    • sloter
      Степы других сборок поменьше, полученные таким же образом, открывает. У них и глубина вложенности файлов на диске меньше - пока на это грешу (превышение ограничения количества символов в абсолютном пути).
    • Shura
      сделать, есть ЛСК...   можно изменить ориентацию главного вида, т.е. вид слева, например, или любой произвольный назначить главным, и он станет видом спереди...   можно изменить расположение первого эскиза, если дальше все на нем завязано...   можно вставить деталь в сборку, с нужной ориентацией, и сохранить сборку как деталь...   вариантов много   
    • Ветерок
      А просто создать новую систему координат и работать от неё? Или в Компасе такое не сделать?
    • _Ghost_
      Всем здравствуйте. Использовал Vericut версии 8.0.3 и более ранние и задавал коррекцию на радиус инструмента в окне Overrides, которое находится в меню G-code advanssed. Перешел  на версию 9  Vericut и окно Overrides убрали и настройку коррекции перенесли непосредственно в инструмент. И все хорошо работает если создавать новый проект, но если открыть проект, который создан в Vericut версии 8.0.3 и более ранней версии и настроена коррекция инструмента, то эта коррекция учитывает значения корректоров, внесенных в окне Overrides, и инструмент работает с учетом этой коррекции. а обнулить значения корректоров я немогу т.к. меню Overrides нет в 9 версии. Это немного раздражает т.к. если необходимо изменить диаметр инструмента, то коррекция берется не из меню инструмента, а из параметров, которые были внесены в окне Overrides в предыдущей версии.   Вопрос: как обнулить  коррекцию внесенную в старых проектах Vericut, если проект открыт в версии 9 Vericut???
    • Shura
    • ankab
      Здравствуйте, к меня вопрос, может и глупый но не судите новичка, Почему с одной геометрией продление кармана до заготовки работает, а с другой нет? В настройках ничего не менялось, просто поменял геометрию.     Как тут картинки вставить?
    • lexx174
      это переменные их не надо добавлять в консоль администратора. консоль в данном случае не при чем   их надо добавить либо в переменные среды windows либо в батник который стартует тимцентр
    • Andrey337
      Спасибо за ответ, эти команды надо запустить из консоли администратора на сервере?   Если я установлю эти preference в интерфейсе ТС для расположения сайт, это будет тоже самое?   Я посмотрел эти preference в документации для ТС10.1.7 и не нашел там вот эту - TC_DEBUG. Подскажите, пожалуйста, где найти её описание?
    • AndreBriyanskiy
      Читал. Даже делал пробный постпроцесс для 3-осевого фрезера, по видеоурокам PostBuilder.  Однако не нашел возможности задать конфигурацию/геометрию 6-осевого робота, в самом начале создание постпроцесса. И, судя, по тому как сделаны постпроцессы из примеров по роботам (Kuka) они сделаны не через PostBuilder - хотя могу и ошибаться сильно.    
×
×
  • Create New...