Перейти к публикации

Программное чтение структуры сборки


BazingAAA

Рекомендованные сообщения

Задача состоит в том чтобы в Windows-приложении (WPF или Windows Forms) подключиться к работающему приложению SolidWorks с открытой сборкой и прочесть структуру этой сборки с вложенными сборками и деталями. Плюс после хотелось бы прочесть свойства у каждого из этих элементов. Полистал справку по API, особого результата не дало. Сумел подключиться к приложению и прочитать некоторые свойства запущенного приложения.

К проекту подключал SolidWorks.Interop.sldworks.dll и SolidWorks.Interop.swconst.dll.

Ссылка на сообщение
Поделиться на других сайтах


36 минут назад, BazingAAA сказал:

Полистал справку по API, особого результата не дало.

Ищите по ключевым словам Tree (дерево).

 

Правде теперь не понятно где искать, т.к. онлайн справку на оф.сайте похоже грохнули (по крайней мере пока пропали только ссылки на справку по API со страницы http://help.solidworks.com/ ).

 

Но пока есть сам ресурс: http://help.solidworks.com/SearchEx.aspx?query=tree&version=2010&lang=English,rus&prod=api

 

Один из примеров: http://help.solidworks.com/2010/english/api/sldworksapi/get_and_set_featuremanager_design_tree_display_example_vb.htm 

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, Kelny сказал:

Ищите по ключевым словам Tree (дерево).

 

Правде теперь не понятно где искать, т.к. онлайн справку на оф.сайте похоже грохнули (по крайней мере пока только ссылку на справку по API).

Но пока есть сам ресурс: http://help.solidworks.com/SearchEx.aspx?query=tree&version=2010&lang=English,rus&prod=api

Например: http://help.solidworks.com/2010/english/api/sldworksapi/get_and_set_featuremanager_design_tree_display_example_vb.htm 

Спасибо, за столь быстрый совет. Почитаю, скорее всего чего-то будет не понятно.

Данные примеры могут быть в приложенной справке API?

Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, BazingAAA сказал:

Данные примеры могут быть в приложенной справке API?

По последней ссылке и есть пример.

В справке много примеров, которые можно использовать в той или иной мере.

 

Вам возможно так же может потребоваться справка по тому языку в котором вы желаете программировать, что бы снять некоторые вопросы не связанные с Solidworks.

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, BazingAAA сказал:

приложению SolidWorks с открытой сборкой и прочесть структуру этой сборки с вложенными сборками и деталями. Плюс после хотелось бы прочесть свойства у каждого из этих элементов.

А если не секрет для чего сие нужно ?

Ссылка на сообщение
Поделиться на других сайтах

 

2 часа назад, BazingAAA сказал:

подключиться к работающему приложению SolidWorks с открытой сборкой

А не проще ли выгрузить структуру средствами самого Солида, раз уж он запущен и сборка в него загружена?

Ссылка на сообщение
Поделиться на других сайтах
36 минут назад, Maik812 сказал:

А если не секрет для чего сие нужно ?

Чтобы перенести данную структуру в лоцман.

Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, BazingAAA сказал:

Чтобы перенести данную структуру в лоцман.

Мои соболезнования.

Ну, передадите структуру в этот несчастный Лоцман. Дальше-то что? Какой толк от этой "структуры"? Просто "шоб було"?

Изменено пользователем Ветерок
Ссылка на сообщение
Поделиться на других сайтах
22 минуты назад, BazingAAA сказал:

Чтобы перенести данную структуру в лоцман.

Эх, а я уж думал Treehouse посоветовать...

 

21 минуту назад, Ветерок сказал:

Мои соболезнования.

+1

Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, BazingAAA сказал:

Чтобы перенести данную структуру в лоцман.

А Эксель файл не подойдет?

Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Ветерок сказал:

Мои соболезнования.

Ну, передадите структуру в этот несчастный Лоцман. Дальше-то что? Какой толк от этой "структуры"? Просто "шоб було"?

Начальство попросило, значит им надо.

По сути чтобы быстро переносить эту структуру.

11 час назад, VOleg сказал:

А Эксель файл не подойдет?

Ну вообще если только как промежуточный этап. Какой-то инструмент есть для этой выгрузки?

Ссылка на сообщение
Поделиться на других сайтах
5 минут назад, BazingAAA сказал:

Начальство попросило, значит им надо.

По сути чтобы быстро переносить эту структуру.

Ну вообще если только как промежуточный этап. Какой-то инструмент есть для этой выгрузки?

У меня расширенный шаблон спецификации - его сохраняю в эксель и импортирую в ПДМ.

Ессно, эти эксель файлы передаю производству. Они только рады.

Т.к. у меня есть добавочка в каждой сборке - то при опции "только детали" получаю полный состав изделия. Производство довольно. Это для случая без ПДМ.

Изменено пользователем VOleg
Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Krusnik сказал:

Эх, а я уж думал Treehouse посоветовать...

А он как работает? Во что выгружает?

3 минуты назад, VOleg сказал:

У меня расширенный шаблон спецификации - его сохраняю в эксель

Вот здесь хотелось бы по-подробнее, если не сложно)

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, BazingAAA сказал:

А он как работает? Во что выгружает?

Он берёт файл SolidWorks и строит дерево "до последнего винтика", с картинками, свойства показывает...

В SolidWorks 2017 и новее он в комплекте поставки.

Ссылка на сообщение
Поделиться на других сайтах

А чем проблема программно?

 

Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim swADoc As SldWorks.AssemblyDoc
Dim varComp As Variant
Dim varMatProp As Variant

Option Explicit
Sub main()

Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
Set swADoc = swDoc
varComp = swADoc.GetComponents(True)     ' Получили все компоненты которые входят в сборку

  ' ===================делаете свои грязные дела c каждым компонентом=================
Dim I As Long
For I = LBound(varComp) To UBound(varComp)
    Dim swComp As SldWorks.Component2

    Dim swChild as SldWorks.ModelDoc2
    Set swComp = varComp(I)

    Set swChild = swComp.GetModelDoc2

 

Next I
varComp = Empty

'======================================================================
End Sub

Изменено пользователем vasyam
Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, VOleg сказал:

импортирую в ПДМ

Это не PDM. PDM - это когда всё работает автоматически, без всяких импортов-экспортов. Иначе это не PDM, а просто хранилище данных.

Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, BazingAAA сказал:

А он как работает? Во что выгружает?

Вот здесь хотелось бы по-подробнее, если не сложно)

Вот подробнее в шаблоне спецификации

СП 80.sldbomtbt

Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, vasyam сказал:

А чем проблема программно?

 

Dim swApp As SldWorks.SldWorks
Dim swDoc As SldWorks.ModelDoc2
Dim swADoc As SldWorks.AssemblyDoc
Dim varComp As Variant
Dim varMatProp As Variant

Option Explicit
Sub main()

Set swApp = Application.SldWorks
Set swDoc = swApp.ActiveDoc
Set swADoc = swDoc
varComp = swADoc.GetComponents(True)     ' Получили все компоненты которые входят в сборку

  ' ===================делаете свои грязные дела c каждым компонентом=================
Dim I As Long
For I = LBound(varComp) To UBound(varComp)
    Dim swComp As SldWorks.Component2

    Dim swChild as SldWorks.ModelDoc2
    Set swComp = varComp(I)

    Set swChild = swComp.GetModelDoc2

 

Next I
varComp = Empty

'======================================================================
End Sub

Сначала промаргал такой путь)

Только начал ее рассматривать и ваш ответ пришел))

Сейчас пока думаю над тем как достать разные свойства (размеры, массу, материалы и т.д.)

Ссылка на сообщение
Поделиться на других сайтах

 

57 минут назад, BazingAAA сказал:

Сначала промаргал такой путь)

Только начал ее рассматривать и ваш ответ пришел))

Сейчас пока думаю над тем как достать разные свойства (размеры, массу, материалы и т.д.)

GetComponents(True) кстати выводит все компоненты в том числе и погашенные, так что не забудьте проверку сделать. Ну и с конфигурациями повнимательней, он для активной конфигурации получает значения (на всякий случай вначале узнаете, какая конфигурация вам нужна, потом, когда получите ModelDoc2 делайте ее активной. Это я про подсборки говорю).

Массу и материалы достать не проблема, а вот что за размеры вы хотите достать? 

Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, vasyam сказал:

Ну и с конфигурациями повнимательней, он для активной конфигурации получает значения

А как уж с ними разобраться?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...