Определение головной сборки

Автор Тема: Определение головной сборки  (Прочитано 6574 раз)

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

Оффлайн ВитосАвтор темы

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
Добрый день!
В папке лежат два файла iam. Один - главная сборка, другой - подсборка. Как программно узнать кто из них кто? Программно открываю по очереди файлы. Думал что можно использовать свойство ReferensingDocuments, но при открытии ТОЛЬКО подсборки - это свойство содержит "0"

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

  • Administrator
  • *****
  • Сообщений: 13880
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Определение головной сборки
« Ответ #1 : 19-05-2016, 15:22:48 »
Попробуй воспользоваться этим кодом по очереди (для главной сборки и для подсборки) и сравни результаты: http://adndevblog.typepad.com/manufacturing/2013/07/recursively-accessing-parameters-from-an-inventor-assembly-document.html
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВитосАвтор темы

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
Re: Определение головной сборки
« Ответ #2 : 19-05-2016, 15:46:35 »
Прогнал этим кодом. Результат не тот.

Для подсборки:
PodSborka.iam
pod_det1:1,d0=1
pod_det1:1,d1=0
pod_det2:1,d0=1
pod_det2:1,d1=0
DIN EN 24036 M5:1,ParS=0,8
DIN EN 24036 M5:1,M=0,27
DIN EN 24036 M5:1,d2=0
DIN EN 24036 M5:1,d14=0
DIN EN 24036 M5:1,d15=0
DIN EN 24036 M5:1,d16=0
DIN EN 24036 M5:1,PTC=0,08
DIN EN 24036 M5:1,NND=0,5
DIN EN 24036 M5:1,d17=0,048
DIN EN 24036 M5:1,d21=0
DIN EN 24036 M5:1,d23=0
DIN EN 24036 M5:1,d24=0
DIN EN 24036 M5:1,d25=0
DIN EN 24036 M5:1,THREADDIA=0,5

Для главной сборки
Sborka.iam
det3:1,d0=1
det3:1,d1=0
det:1,d0=1
det:1,d1=0
det5:1,d0=2
det5:1,d1=1
det5:1,d2=1
det5:1,d3=0
det7:1,d0=1
det7:1,d1=0
det9:1,d0=1
det9:1,d1=0
PODSBORKA:1
pod_det1:1,d0=1
pod_det1:1,d1=0
pod_det2:1,d0=1
pod_det2:1,d1=0
DIN EN 24036 M5:1,ParS=0,8
DIN EN 24036 M5:1,M=0,27
DIN EN 24036 M5:1,d2=0
DIN EN 24036 M5:1,d14=0
DIN EN 24036 M5:1,d15=0
DIN EN 24036 M5:1,d16=0
DIN EN 24036 M5:1,PTC=0,08
DIN EN 24036 M5:1,NND=0,5
DIN EN 24036 M5:1,d17=0,048
DIN EN 24036 M5:1,d21=0
DIN EN 24036 M5:1,d23=0
DIN EN 24036 M5:1,d24=0
DIN EN 24036 M5:1,d25=0
DIN EN 24036 M5:1,THREADDIA=0,5
Болт 2 ГОСТ 15591-70 M10?45:1,d1=1,61658075373095
Болт 2 ГОСТ 15591-70 M10?45:1,d2=1,4
Болт 2 ГОСТ 15591-70 M10?45:1,d4=0,64
Болт 2 ГОСТ 15591-70 M10?45:1,d5=0
Болт 2 ГОСТ 15591-70 M10?45:1,d6=1,33
Болт 2 ГОСТ 15591-70 M10?45:1,s_=1,4
Болт 2 ГОСТ 15591-70 M10?45:1,e=1,53
Болт 2 ГОСТ 15591-70 M10?45:1,D_=1,33
Болт 2 ГОСТ 15591-70 M10?45:1,d=1
Болт 2 ГОСТ 15591-70 M10?45:1,d1_=1
Болт 2 ГОСТ 15591-70 M10?45:1,k1=0,64
Болт 2 ГОСТ 15591-70 M10?45:1,d18=0,64
Болт 2 ГОСТ 15591-70 M10?45:1,d19=1,0471975511966
Болт 2 ГОСТ 15591-70 M10?45:1,d21=1
Болт 2 ГОСТ 15591-70 M10?45:1,d22=4,5
Болт 2 ГОСТ 15591-70 M10?45:1,L=4,5
Болт 2 ГОСТ 15591-70 M10?45:1,b=2,6
Болт 2 ГОСТ 15591-70 M10?45:1,d24=2,6
Болт 2 ГОСТ 15591-70 M10?45:1,d25=0
Болт 2 ГОСТ 15591-70 M10?45:1,d26=0,06
Болт 2 ГОСТ 15591-70 M10?45:1,chamfer=0,06
Болт 2 ГОСТ 15591-70 M10?45:1,d33=0
Болт 2 ГОСТ 15591-70 M10?45:1,d34=0
Болт 2 ГОСТ 15591-70 M10?45:1,d35=0
Болт 2 ГОСТ 15591-70 M10?45:1,h_=0,128
Болт 2 ГОСТ 15591-70 M10?45:1,D1=1,12
Болт 2 ГОСТ 15591-70 M10?45:1,d36=1,12
Болт 2 ГОСТ 15591-70 M10?45:1,d39=0,03
Болт 2 ГОСТ 15591-70 M10?45:1,Grip_Length=1,9
Болт 2 ГОСТ 15591-70 M10?45:1,d41=2,0943951023932
Болт 2 ГОСТ 15591-70 M10?45:1,d42=0,512
Болт 2 ГОСТ 15591-70 M10?45:1,d43=1,14
Гайка ГОСТ 15525-70 M10:1,D=1
Гайка ГОСТ 15525-70 M10:1,S_=1,7
Гайка ГОСТ 15525-70 M10:1,e=1,87
Гайка ГОСТ 15525-70 M10:1,da=1
Гайка ГОСТ 15525-70 M10:1,dw=1,55
Гайка ГОСТ 15525-70 M10:1,m_=1,5
Гайка ГОСТ 15525-70 M10:1,d1=1,5
Гайка ГОСТ 15525-70 M10:1,d2=0
Гайка ГОСТ 15525-70 M10:1,d10=0,523598775598299
Гайка ГОСТ 15525-70 M10:1,d11=0,32
Гайка ГОСТ 15525-70 M10:1,d12=1,55
Гайка ГОСТ 15525-70 M10:1,d15=1
Гайка ГОСТ 15525-70 M10:1,d17=0,785398163397448
Гайка ГОСТ 15525-70 M10:1,d18=0
Гайка ГОСТ 15525-70 M10:1,d20=0
Гайка ГОСТ 15525-70 M10:1,d21=0
Гайка ГОСТ 15525-70 M10:1,d22=0,785398163397448
Гайка ГОСТ 15525-70 M10:1,d24=1
Гайка ГОСТ 15525-70 M10:1,d25=0
Гайка ГОСТ 15525-70 M10:1,d26=1,7

Не то пальто...

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

  • Administrator
  • *****
  • Сообщений: 13880
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Определение головной сборки
« Ответ #3 : 19-05-2016, 15:52:01 »
Как же не то, когда именно то. Удаляю из твоего лога всё лишнее:
Цитировать
Для подсборки:
PodSborka.iam
Цитировать
Для главной сборки
Sborka.iam
PODSBORKA:1
Т.е. PODSBORKA входит в Sborka, но Sborka не входит в PODSBORKA. Соотвественно Sborka - это головная сборка.
Вроде бы ты именно эту информацию хотел получить.

Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн ВитосАвтор темы

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
Re: Определение головной сборки
« Ответ #4 : 19-05-2016, 16:26:08 »
При наличии большой вложенности и большого количества подсборок - проблематично вычислять, думал есть более красивое решение.

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

  • Administrator
  • *****
  • Сообщений: 13880
  • Карма: 1786
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Определение головной сборки
« Ответ #5 : 19-05-2016, 17:02:46 »
Как я понимаю подсборка не хранит в себе информацию о том, куда она вставлена. Это и логично, так как она может быть вставлена в кучу сборок. И наоборот сборка хранит в себе информацию о том, что в неё вставлено (какие подсборки).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Определение головной сборки
« Ответ #6 : 19-05-2016, 20:26:54 »
При наличии большой вложенности и большого количества подсборок - проблематично вычислять, думал есть более красивое решение.
Проблематично в плане по времени? В этом случае Apprentice Server рулит. В хэлпе есть отдельно небольшой мануал на эту тему.
Вот небольшой код как открыть сборку оттуда:
Код - Visual Basic [Выбрать]
  1. Private Sub TestApprentice()  
  2. ' Create a new instance of Apprentice.  
  3. Dim oApprentice As New ApprenticeServerComponent    
  4. ' Open a document.    
  5. Dim oDoc As ApprenticeServerDocument    
  6. Set oDoc = oApprentice.Open("C:\Temp\Assembly1.iam")    
  7. End Sub
  8.  

Объектная модель у Apprentice Server похожа на сам инвенторовский АПИ, только сильно обрезанный.
В Apprentice Server осталась только работа со свойствами, ссылками и просмотр модели. Утилита Inventor View работате на Apprentice Server. Так как Apprentice Server грузит из файла только минимум, то работает быстро.

Инвенторовские файлы это компаундные файлы, можно юзать интерфейс IStorage из WinAPI32 без всякого инвентора, для извлечения данных. Думаю что будет работать еще быстрее, но это для особо продвинутых.

Оффлайн ВитосАвтор темы

  • ADN OPEN
  • Сообщений: 4
  • Карма: 0
Re: Определение головной сборки
« Ответ #7 : 20-05-2016, 08:38:54 »
Открыл через Apprentice - обрезанный API инвентора. Чем он может помочь - не понимаю.
« Последнее редактирование: 20-05-2016, 09:35:03 от Витос »

Оффлайн mikazakov

  • ADN
  • *
  • Сообщений: 752
  • Карма: 195
  • Skype: mikazakov@mail.ru
Re: Определение головной сборки
« Ответ #8 : 20-05-2016, 09:51:01 »
Чем он может помочь - не понимаю.
анализ ссылок все равно самому программить придется, Apprentice Server просто более шустрый.
Да и еще свойство ссылки на объектную библиотеку инвентора (или библиотека типов Apprentice Server)  “Embed Interop Types” должно быть выставлено равным False, а то будут глюки