Сообщество программистов Autodesk в СНГ

ADN Club => Inventor API => Тема начата: Elfilagas от 05-09-2017, 11:04:35

Название: Имя файла недостающего в сборке
Отправлено: Elfilagas от 05-09-2017, 11:04:35
Добрый день,
Подскажите, пожалуйста, можно ли как то получить имена файлов, которых не хватает в сборке?
Название: Re: Имя файла недостающего в сборке
Отправлено: mikazakov от 05-09-2017, 12:12:49
Где то тут:
Для первой детали
Код - Visual Basic [Выбрать]
  1. Sub rr()
  2. Dim Ass As AssemblyDocument
  3. Set Ass = ThisApplication.ActiveDocument
  4. Dim Occur As ComponentOccurrence
  5. Set Occur = Ass.ComponentDefinition.Occurrences(1)
  6. Sub rr()
  7. Dim Ass As AssemblyDocument
  8. Set Ass = ThisApplication.ActiveDocument
  9. Dim Occur As ComponentOccurrence
  10. Set Occur = Ass.ComponentDefinition.Occurrences(1)
  11.  
  12. If Occur.ReferencedDocumentDescriptor.ReferencedFileDescriptor.ReferenceMissing Then
  13. MsgBox Occur.ReferencedDocumentDescriptor.ReferencedFileDescriptor.FullFileName
  14. End If
  15.  
  16. End Sub
  17.  
  18.  

Там если массив то смотри:
AssemblyDocument.ComponentDefinition.OccurrencePatterns
Название: Re: Имя файла недостающего в сборке
Отправлено: Elfilagas от 08-09-2017, 10:03:58
Спасибо, да все работает, подскажите еще один момент.
При отсутствии сборки в составе, открываю сборку через  ThisApplication.Documents.Open(FileName, False) и при каждом открытии появляется окно поиска компонентов, можно ли ка то сделать, чтобы окно не появлялось, т.к. при большом количестве входящих сборок много сообщений приходится пропускать.
Название: Re: Имя файла недостающего в сборке
Отправлено: mikazakov от 08-09-2017, 12:44:32
Логика подсказывает что нужно другой метод:
Documents.OpenWithOptions(FullDocumentName As String, Options As NameValueMap, [OpenVisible] As Boolean )
Здесь тонкость это задать опции через NameValueMap
Правильное название опций для NameValueMap можно найти здесь
http://adndevblog.typepad.com/manufacturing/2013/04/specify-import-unit-for-sat-file-using-openwithoptions.html
там есть SkipAllUnresolvedFiles

Можно так же попробовать на время открытия сделать:
Application.SilentOperation=true
только после открытия не забыть назад сделать
Application.SilentOperation=false