Анализ 10 000 деталей SolidWorks с помощью Python

Всю последнюю неделю я то и дело осматривался, чтобы узнать, выполнял ли кто-нибудь такую ​​работу. К сожалению, я нашел очень мало того, что специфично для Python.

У меня есть репозиторий с ~ 10 000 деталей SolidWorks. Я хотел бы анализировать эти файлы в пакетном режиме и собирать информацию, такую ​​​​как объем, материал и т. Д., Чтобы получить некоторую общую статистическую информацию. В идеале это должно быть на питоне, но решения на других языках более чем приветствуются.

Большинство ответов, которые я нашел, касаются создания надстроек на VB, C#, C++ для взаимодействия с API Solidworks, но ничего о проведении общего статистического анализа только частей. Я не хочу взаимодействовать с приложением или функциями сборки, я просто хочу посмотреть, что внутри файлов, не имея Solidworks. Я также работаю над Linux, который не поддерживается Solidworks.


person 6F4E37    schedule 16.07.2017    source источник


Ответы (1)


Нi, 6F4E37

Я вижу два способа получить то, что вы хотите от файлов SolidWorks, к сожалению, они оба связаны с Windows и кодом C#/VB.

  1. Без приложения SolidWorks. Используйте Диспетчер документов ПО. библиотека, которая позволяет вам получить доступ к метаинформации о ваших частях. Вы сможете получить некоторую информацию о своей детали, включая объем.

    Я не знаю о каких-либо попытках запустить Document Manager на Wine, поделитесь, пожалуйста, своими результатами, если попробуете.

    Обратите внимание, что лицензия на библиотеку Document Manager является бесплатной, при условии, что у вас есть действующая подписка SolidWorks.

  2. Использование API SolidWorks. Вам не нужно создавать надстройку, вы можете подключиться к SolidWorks из отдельного приложения:

    SldWorks swApp = (SldWorks)Activator.CreateInstance(System.Type.GetTypeFromProgID("SldWorks.Application"));
    

    Очевидно, что для этого подхода вам потребуется установить Solidowrks на свой компьютер.

    Также обратите внимание, что SolidWorks — не самое стабильное приложение, и оно будет падать каждые 200-400 файлов, которые вы обрабатываете, поэтому вы выберете этот подход, вам нужно будет следить за экземпляром SolidWorks и перезапускать его при необходимости.

person Vlad    schedule 17.07.2017
comment
Привет @Vlad, Спасибо за ваш ответ. Это очень полезно. Попробую попробовать первый вариант. У меня на работе двойная загрузка, так что, может быть, я попробую вечером, чтобы получить базовое доказательство концепции, а затем перейду на Linux, чтобы посмотреть, насколько хорошо это работает в вине. Я отчитаюсь, когда попробую. ›Также обратите внимание, что SolidWorks — не самое стабильное приложение, и оно будет падать каждые 200-400 файлов. Еще один повод попытаться избежать взаимодействия с самим приложением :) Спасибо! - person 6F4E37; 17.07.2017