Автоматизация моделирования, анализ напряжений

Автор Тема: Автоматизация моделирования, анализ напряжений  (Прочитано 3035 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SamАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Уважаемые специалисты.
Прошу помощи в следующих вопросах:
1. Как в VBA в открытом документе (деталь, сборка) назначить библиотеки материалов "Избранное", "Внешняя"?
2. Как в VBA в открытом документе (деталь, сборка) извлечь/назначить детали, компоненту материал?

Спасибо.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Назначение материала: http://adndevblog.typepad.com/manufacturing/2013/07/inventor-2014-api-set-part-material.html (и продолжение в комментариях).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн SamАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Благодарю, изучаю.

Оффлайн SamАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
А как назначить материал компоненту сборки? Можете дать ссылку?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
А как назначить материал компоненту сборки? Можете дать ссылку?
Посмотри обсуждение здесь: https://forums.autodesk.com/t5/inventor-customization/change-material-of-part-in-assembly-inventor-2014-2015/td-p/5128944
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн SamАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
А как назначить материал компоненту сборки? Можете дать ссылку?
Посмотри обсуждение здесь: https://forums.autodesk.com/t5/inventor-customization/change-material-of-part-in-assembly-inventor-2014-2015/td-p/5128944

Александр. В тексте я вставил свой материал и свою библиотеку материалов. Строку 34 заменил на строку 36.
Но назначение материала 09Г2С компоненту сборки item(1) не происходит. В чем моя ошибка?
Код - Visual Basic [Выбрать]
  1. Public Sub SetOccurrenceAppearance()
  2.     Dim asmDoc As AssemblyDocument
  3.     Set asmDoc = ThisApplication.ActiveDocument  
  4.     ' Get an appearance from the document.  To assign an appearance is must
  5.    ' exist in the document.  This looks for a local appearance and if that
  6.    ' fails it copies the appearance from a library to the document.
  7.    Dim localAsset As Asset
  8.     On Error Resume Next
  9.  
  10.     Set localAsset = asmDoc.Assets.item("09Г2С")  
  11.  
  12.     If Err Then
  13.         On Error GoTo 0      
  14.         ' Failed to get the appearance in the document, so import it.      
  15.        ' Get an asset library by name.  Either the displayed name (which
  16.        ' can changed based on the current language) or the internal name
  17.        ' (which is always the same) can be used.
  18.        Dim assetLib As AssetLibrary
  19.  
  20.         Set assetLib = ThisApplication.AssetLibraries.item("Избранное")
  21.  
  22.         ' Get an asset in the library.  Again, either the displayed name or the internal
  23.        ' name can be used.
  24.        Dim libAsset As Asset
  25.  
  26.         Set libAsset = assetLib.AppearanceAssets.item("09Г2С")
  27.  
  28.         ' Copy the asset locally.
  29.        Set localAsset = libAsset.CopyTo(asmDoc)
  30.     End If
  31.     On Error GoTo 0          
  32.     ' Have an occurrence selected.
  33.    Dim occ As ComponentOccurrence
  34.  ''''''' Set occ = ThisApplication.CommandManager.Pick(kAssemblyOccurrenceFilter, "Select an occurrence.")
  35.  
  36.     Set occ = asmDoc.ComponentDefinition.Occurrences.item(1)
  37.  
  38.     ' Assign the asset to the occurrence.
  39.    occ.appearance = localAsset
  40.      Call asmDoc.BrowserPanes.ActivePane.TopNode.DoSelect
  41. End Sub
« Последнее редактирование: 26-06-2018, 13:13:04 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Затрудняюсь сказать, так как для Inventor не программирую. Не уверен, что должно быть item(1), а не item(0).  И вообще попробуй запустить код под отладчиком, чтобы понимать как он выполняется.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн SamАвтор темы

  • ADN OPEN
  • Сообщений: 6
  • Карма: 0
Александр. В сборке отсутствует asmDoc.ComponentDefinition.Occurrences.item(0), поэтому выдается ошибка <Invalid procedure or argument>.
Кстати, при назначении нового материала детали присвоение выполняется, если новый материал отсутствует в документе детали. Поэтому приходится перед назначением нового материала удалять из документа все материалы.
У меня есть новый вопрос.

Для автоматизации моделирования мне необходимо получить силы реакции и реактивные моменты. Как их можно извлечь из параметров результатов?


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
У меня есть новый вопрос.
Один вопрос - одна тема.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение