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

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


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 пользователей

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




  • Сообщения

    • Павлуха
      Поставите сюда галочку и будет Вам счастье.    
    • Бестолковый
      Так вот, осваивая потихоньку SW пришёл к созданию собственных таблиц свойств. Тех самых которые Custom Properly Table, для детали, сборки чертежа детали и чертежа сборки соответственно. Создал таблицы (синхронно создав заготовки для каждого типа вышеуказанных документов, переписал переменные и сложил в отдельную папочку, прописав в свойствах SW пути к ней. Так, чтобы при создании нового документа всё открывалось правильно.   Начитавшись форумов всяко-разных профильных (включая этот) и мануалов пришёл к выводу, что можно "скармливать" в таблицу текстовый или Excel файл с необходимыми данными, как то данные для заполнения штампа и прочее. Иерархия такова: Есть конкретный неизменяемый диск, на нём папки всех проектов, в каждой из них, кроме самих файлов SW кладу этот самый файл гордо именуемый "Код_проекта_db.txt" имя которого меняется, равно как и путь. Всё бы ничего, но когда у тебя один проект - всё гуд, делаешь второй проект - при открытии панельки справа - SW автоматом "подтягивает" файлик из первого проекта, приходится открывать Properly Table Builder и переназначать путь к файлу с необходимыми для второго проекта данными.   Сопсна - сам вопрос к Многоуважаемому Сообществу: Продолжать перезаписывать пути каждый раз или есть какой-то другой выход из сложившейся моими шаловливыми ручонками ситуации?   Заранее признателен за адекватный развёрнутый ответ!  
    • igor555
      Но почему-то на других станках в цехе этого нет и не тупим...хотим придти к единому знаменателю
    • mrVladimir
    • Vengeance
      https://t.me/bBqcc5UzY2E6 заходи в гости, там есть все ^_^
    • Давид
      Доброго времени. Можете поделиться русификатором пожалуйста. ambdavids@gmail.com
    • Александр1979
      В диагностике параметр 0000 смотрите.
    • the Devil incarnate
      сделайте связь "параллельно" со смещением 5мм и будет вам счастье.
    • mrVladimir
      Здравствуйте. Система 0i Mate-TD. При нарезании резьбы зависает между проходами. Есть предположение, что нет нуль-метки. Датчик подключен по схеме к JA7A. Можно как-то проверить приход нуль-метки не снимая датчика прямо на системе? Может в диагностике есть что-то подобное. Сами обороты (в минуту имеется ввиду) отображаются. В программе так: S800 Z3. X37. G76 P10060 Q50 R50 G76 X33.35 Z-35.5 R0 P1000 Q50 F2.  -вот здесь зависает Z3. X350 но зависает не окончательно - постоит-постоит и может дальше пойти. Есть еще предположение - рассогласование по осям превышает установленный порог. Но никак не могу сообразить - где посмотреть...
    • ak762
      вроде можно если использовать американский стандарт  
×
×
  • Создать...