Анализ сборки в Inventor API

Автор Тема: Анализ сборки в Inventor API  (Прочитано 5377 раз)

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

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Анализ сборки в Inventor API
« : 03-04-2020, 14:45:51 »
Всем привет. У меня нет опыта в проектировании, поэтому многие вопросы могут быть простыми. Мне необходимо написать программу для анализа файлов сборок. Описать требования к программе лучше на примере, программа должна работать следующим образом
"Пользователь выбирает 1ю сборку, программа анализирует все детали этой сборки и сохраняет их в БД, затем пользователь выбирает какую-то одну деталь из БД, открывает 2ю сборку и программа предоставляет результат, есть ли данная деталь во 2й сборке или нет". То есть нужно собрать такую информацию о детали, чтобы эту деталь потом можно было идентифицировать в другой сборке.
По этой теме есть несколько вопросов:
1)Не совсем понимаю иерархию объектов в Inventor API.  Если перебирать циклом ComponentOccurrences в сборке из нескольких разных деталей, то все ComponentOccurrences.Parent возвращают один и тот же объект ComponentDefinion. Что означает объект ComponentDefinion? как можно получить информацию о каждой отдельной детали? я нашёл в интернете следующий способ
Код - C# [Выбрать]
  1. foreach (Document docin assembly.AllReferencedDocuments)
  2.     {
  3.     }
Это правильный подход?
2) Какая информация о детали нужна для построения такой системы?
3) Я предполагаю, что нужная информация есть в объекте Document.PropertySets, там довольно много свойств. В Справке к API в моём инвенторе указан метод PropertySets.Item, но коде я воспользоваться им не могу(нет такого метода). Примеры я брал отсюда https://modthemachine.typepad.com/my_weblog/2010/02/accessing-iproperties.html . Как обрабатывать в таком случае?
4) Так же нашёл статью https://ru.wikibooks.org/wiki/Autodesk_Inventor_API._Первые_шаги/Спецификация. В ней работают с объектом BOM с помощью тех же PropertySets. Там доступны уже другие свойства или те же самые?
У меня установлен Inventor 2017.
Надеюсь читать не устанете) буду рад любому ответу

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #1 : 03-04-2020, 15:07:51 »
С PropertySets разобрался как работать, можно вот так PropertySets["Design Tracking Properties"]["Authority"].Value;
Но большинство свойств пустые.

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #2 : 03-04-2020, 17:24:08 »
по свойствам ещё почитайте на моем ресурсе
https://mihakazakov.wixsite.com/inventor-api/nachinayushim

Но большинство свойств пустые.
А вы заполняли эти свойства через интерфейс пользователя в самом инвенторе?

Что означает объект ComponentDefinion?
В нем в основном все трёхмерные построения описаны и через свойство ComponentDefinition.Document можно попасть на верх документа.

Но по описанию вашего функционала, похожие инструменты реализованы в Vault. А так же можно посмотреть дизайн ассистент, в нем то же есть создание отчёта типа "где используется"



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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #3 : 03-04-2020, 19:30:17 »
через свойство ComponentDefinition.Document можно попасть на верх документа.
что значит наверх документа? наверх какого документа? не совсем понимаю

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #4 : 03-04-2020, 19:51:25 »
Любой файл модели или чертежа или презентации в терминологии инвенторовского АПИ называется документом.
Существуют "подвиды" документов PartDocument, AssemblyDocument, DrawingDocument. Объект-документ является верхним узлом в объектной модели любого открытого инвенторовского файла модели или чертежа. В этом объекте-документе находится всё что относится к конкретному открытому файлу.

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #5 : 03-04-2020, 20:25:40 »
В этом объекте-документе находится всё что относится к конкретному открытому файлу.
Тогда метод AllReferencedDocuments возвращает коллекцию объектов document для каждой детали?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #6 : 03-04-2020, 20:45:23 »
Тогда метод AllReferencedDocuments возвращает коллекцию объектов document для каждой детали?
Если деталь была получена через производный компонент.
Там в сборках ситуация хитрее, например, если деталь подавлена то ссылка на неё есть а сам документ детали загружен в память не будет.
И обращение к подавленной детали вызовет ошибку. Там лучше посмотреть, может использовать Document.ReferencedDocumentDescriptors в нем информации больше.
Вообще если нужно только ссылки и свойства в сборке посмотреть, то такую сборку лучше грузить не в инвентор а в апрентис сервер, быстрее будет.

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #7 : 03-04-2020, 21:47:44 »
в нем информации больше.
а по второму моему вопросу, не знаете как можно деталь идентифицировать?

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #8 : 03-04-2020, 22:00:38 »
какая информация для этого нужна?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #9 : 03-04-2020, 22:02:20 »
не знаете как можно деталь идентифицировать?
Ну
Document.FullFileName
и
Document.RevisionId

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #10 : 03-04-2020, 22:43:06 »
Document.RevisionId
это уникальный id документа? в справке для поля написано следующее : "Gets the GUID that represents the last saved revision of this file. Works as a stamp of the contents of this file.", что не совсем понятно

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #11 : 04-04-2020, 11:11:00 »
это уникальный id документа?
Это уникальный ID который перегенерируется при сохранении. Там есть еще Document.InternalName, но он может совпадать с файлом который был получен копированием исходного.

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #12 : 04-04-2020, 13:17:42 »
Там в сборках ситуация хитрее, например, если деталь подавлена то ссылка на неё есть а сам документ детали загружен в память не будет.
И обращение к подавленной детали вызовет ошибку. Там лучше посмотреть, может использовать
объяните ещё пожалуйста, что значит деталь подавлена? 

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #13 : 04-04-2020, 13:27:05 »
то такую сборку лучше грузить не в инвентор а в апрентис сервер, быстрее будет
и по этому вопросу хотел уточнить.  Если делать через апрентис сервер, то мне нужно будет написать сервер для работы с API и клиента для подключения к этому серверу, правильно понимаю? так же хотел узнать, если я автономный exe сейчас делаю используя API 17го инвентора, то на другом компьютере с другой версией инвентора работать это не будет, так же? хотел узнать, как себя в таком случае будет вести себя апрентис сервер? и на сколько сложнее разрабатывать через апрентис сервер?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #14 : 04-04-2020, 15:59:34 »
объяните ещё пожалуйста, что значит деталь подавлена?
Вы уверенный пользователь инвентора? В сборке есть детализационные представления, там детали и подсборки можно подавлять чтоб их не было в памяти.

и по этому вопросу хотел уточнить.  Если делать через апрентис сервер, то мне нужно будет написать сервер для работы с API и клиента для подключения к этому серверу, правильно понимаю? так же хотел узнать, если я автономный exe сейчас делаю используя API 17го инвентора, то на другом компьютере с другой версией инвентора работать это не будет, так же? хотел узнать, как себя в таком случае будет вести себя апрентис сервер? и на сколько сложнее разрабатывать через апрентис сервер?
Апрентис Сервер это не какой то внешний удаленный сервер. Апрентис Сервер это всего лишь библиотека которая позволяет без инвентора работать с некоторыми данными из инвенторовских файлов.
Инвентора на компе может даже вообще не быть, только dll апрентиса нужно в реестре грамотно зарегистрировать. Разрабатывать на апрентисе не сложнее чем на самом инвенторовском АПИ. Объектная модель почти такая же, там только мелкие особенности есть при открытии и сохранении файлов.
Пользовательсая утилита дизайн ассистент работает на апрентисе. Можете зайти в хэлп и почитать о Апрентис Сервер, можете на моей страничке почитать, ссылку я вас уже скидывал выше.

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

  • ADN OPEN
  • Сообщений: 26
  • Карма: 0
Re: Анализ сборки в Inventor API
« Ответ #15 : 05-04-2020, 15:55:32 »
Вы уверенный пользователь инвентора?
я уже писал выше, что опыта проектирования нет вообще, поэтому так много вопросов. ещё хотел уточнить, информация о детали (материал, тип и прочее) можно найти в PropertySet объекта Document. В BOM для сборки лежит та же информация.  Внутри PartDocument нет каких нибудь объектов, из которых можно вытащить какую-либо дополнительную информацию или она вся находится в BOM?

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 751
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Анализ сборки в Inventor API
« Ответ #16 : 05-04-2020, 20:40:19 »
я уже писал выше, что опыта проектирования нет вообще,
Это называется нет опыта работы в инвенторе. Без собственного юзерского опыта... не знаю кто то должен ТЗ тогда очень грамотно писать, зная все тонкости. иначе толку будет ноль.

информация о детали (материал, тип и прочее)
Материал
PartDocument.ActiveMaterial

Массовые характеристики на
PartComponentDefinition.MassProperties


BOM собирается в сборке, с входящих в неё деталей и подсборок.

Оффлайн R.I.Chernov

  • ADN Club
  • *****
  • Сообщений: 565
  • Карма: 18
Re: Анализ сборки в Inventor API
« Ответ #17 : 07-04-2020, 03:41:54 »
Без собственного юзерского опыта... не знаю кто то должен ТЗ тогда очень грамотно писать, зная все тонкости. иначе толку будет ноль.
Хотел написать то же самое. Надо понимать, что именно можно и нужно делать руками для получения требуемого результата в Inventor, а потом вот это вот "руками" заменить на программный код. У меня перед глазами есть пара примеров, когда код вроде бы был написан, и 3д модель вроде бы строилась, как и планировалось. Но строилась так, что конструкторам использовать ее было не удобно. Так вот бесславно и заканчивалась ее эксплуатация, потому что изначально ТЗ было плохо продумано, и переделать в "удобно" уже не представлялось возможным.
В программировании я новичок...но ненадолго! ;)