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

Получить массы деталей/сборок с помощью VBA Excel


mechanical

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

Задача следующая, в экселевской таблице есть список названий деталей/сборок, необходимо получить их массы.

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

Sub Массы()

Application.ScreenUpdating = False

Dim swApp As SldWorks.SldWorks
Dim vMassProp As Variant
Dim sConfig As Variant
Dim FilePathName As String
Dim ConfigurationName As String

Set swApp = CreateObject("SldWorks.Application")

On Error Resume Next

For i = 1 To Range("Таблица_данных").Rows.Count
    vMassProp = Nothing
    FilePathName = ... указывается ячейка содержащая путь
    ConfigurationName = ... указывается ячейка содержащая имя конфигурации
    vMassProp = swApp.GetMassProperties2(FilePathName, ConfigurationName, 1)
    Cells(i + 1, 2) = Application.RoundUp(vMassProp(5), 1)
Next i

Application.ScreenUpdating = True

End Sub

И вроде бы все должно быть ОК, но почему-то массы возвращаются не на все детали/сборки, а как-то выборочно. В справке написано, что для того чтобы получить массу, необходимо, чтобы при сохранении модели были рассчитаны массовые характеристики. И дается команда (SetUserPreferenceToggle swUpdateMassPropsDuringSave, True/False) для установки расчета массовых характеристик автоматически при сохранении файла. Эта команда, как я понял, является аналогом последовательности действий в солидворксе "Параметры -> Качество изображения -> Обновить массовые характеристики при сохранении документа". Так вот галочка у меня в этой настройке стоит и командой "SetUserPreferenceToggle swUpdateMassPropsDuringSave, True" я ее тоже включал, но тем не менее результата нет. При открытой сборке, количество деталей на которые значение массы все-таки будет получено увеличивается (но тем не менее не до 100%), но мне надо, чтобы массы возвращались из закрытых файлов.

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


На работе используем Workgroup PDM, соответственно все файлы на моем ПК располагаются в одной папке. Изначально имя солидовского файла имеет вид "XXXX_YYYY.sldprt", в таблице оно разбито на три столбца: в первом - "XXXX", во втором - "YYYY", в третьем - ".sldprt". Путь указывается следующим образом:

FilePathName = "D:\PDM\Project files\" & Cells(i + 1, 1) & "_" & Cells(i + 1, 2) & Cells(i + 1, 3)

Проблема не в пути, т. к. масса не возвращается выборочно, в половине позиций всё нормально. По моим ощущениям, проблема в том, что при сохранении файла массовые характеристики не сохраняются, а вроде должны.

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

Тебе это срочно надо? 

Мне тема VBA Excel интересна вообще. В том числе в связке с SW. 

Но, понимаешь, сейчас так получается, что заняться сабжем в серьёз смогу только  через несколько дней. 

 

Конфигурации, как я понимаю, то же не влияют на результат?

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

Да чем тут заниматься-то? Я же не прошу написать новый код. Здесь вопрос конкретного знания/незнания. Задачи-то как таковой и нет, просто нужен человек, который в курсе каких-то конкретных настроек, с которыми я просто не знаком и не знаю где найти информацию о них.

 

У меня появилось новое предположение, что проблема как-то связана с использованием Workgroup PDM.

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

А что значит "массы возвращаются не на все"?

-Null/Nothing

-Пустой масив


Так вот галочка у меня в этой настройке стоит
 

ну так помимо галочки нужно же и пересохранить модель, чтоб данные внеслись.

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

А что значит "массы возвращаются не на все"?

 

Просто пустая строка, если значения в Immediate выводить.

 

ну так помимо галочки нужно же и пересохранить модель, чтоб данные внеслись.

 

Разумеется модель я сохранил-пересохранил сто раз и даже вручную массовые характеристики пересчитывал - не помогло.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Orchestra2603
      Была такая проблема у нас. Стол вибростенда бился об ограничитель. Но тогда это было ждя внутренних целей, так что мы сильно не заморчивались - все всё прекрасно понимали.   Но вообще можно по-разному попробовать выкрутиться.   1. Специально для испытаний в низкочастотной области можно присобачить между стендом и изделием какую-то "мягкую" подвеску. Тогда между стендом и изделием булет промежуточная простейшая система с своей АЧХ. Можно подобрать такую жесткость подвески, чтобы как раз в области низких частот был первый резонанс, и тогда при небольшом ходе стола можно получить бОльшую амплитудлу перемещения на самом изделии относительно стенда, ну и соответственно и ускорения будут также кратно выше. Можно поставить на изделие дополнительный акселерометр, чтобы знать точно там амплитуду ускорения. Очень похоже на задачу подбора параметров всяких виброгасителей, только в обратную сторону ))) Насколько это удобно и практично - это конечно вопрос открытый. Если можно было бы посмотреть на изделие и на стенд, может, че-нить придумали бы вместе.   2. Можно просто в МКЭ посчитать гармонический анализ, подогнать демпфирование и скорректировать жесткости/массы, чтобы для более высоких частот все хорошо ложилось. Тогда заказчику можно будет сказать, что это очень сложная задача поставить эксперимент для таких частот, но есть надежные расчетные модели, которые показывают хорошее совпадение с экспериментом на более высоких частотах (показываем графики), и они позволяют надежно предсказать результаты таких испытаний в низкочастотной области. Тут, кончено зависит то того, как это правильно преподнести заказчику. Нужна харизма определенная :)   3. Можно вообще придумать что-то типа маятника, и подвесить туда изделие. Варьируя высоту подвеса, можно менять частоту колебаний.  Амплитуду можно варьировать меняя начальное отклонение, причем можно сделать ее довольно большой (только отклонения должны быть маленькими, чтобы не проявлялась сильно нелинейность восстанавливющего момента). Вот такое я делал для калибровочных целей, был довольно забавный самопал конечно ))            
    • Igor Lipin
      Извиняюсь, да такой модуль есть. Я предположил он установлен в самом приводе  https://postimg.cc/gallery/cJHmJHg
    • Пронин
      Нашел только в RMPGroup, цена 1625  Евро/шт., а надо 2. У Интос нету и не будет, звонил  им. А подскажите спецы, я с ГЦ раньше не сталкивался, если ставить обычные ГЦ не выдержит, назад пойдет, у меня знак оформляющий ступенькой ф 3,2 (длина3,5)хф5,2 (длина 4мм) в неподвижке, на него усилие при литье небольшое. Или надо обязательно подпирать. 
    • ANT0N1DZE
      Я бы вполне смог посчитать форму профиля. У вас есть схема механизма нужного? Еще нужны параметры пружины силовые. 
    • gudstartup
      так было написано
    • andref
      А что то вроде такого блока у вас на станке есть? Это  safety  module от EMCO  
    • Fixidea
      Золотые слова !   Именно тот, что в статье, но размеры немного другие.   В статье действительно нет практической реализации расчётов и графиков в форму профиля. Тему открыл от безысходности (закончились мысли, идеи). Не силён в теоретической механике. Но после: Решил, что это было зря. Решение всё равно придёт...  
    • afalina
      Где найти методичку? Не разобралась 
    • Oleg63_
      Добрый день! Столкнулся с проблемой запуска обрабатывающих центров со стойкой indramotion mtx. Подскажите пожалуйста где можно заказать написание постпроцессора и управляющей программы?
    • Александр1979
      Зел/черн, фиолет/чёрный, бирюз/чёрный действительно на +15V нужно. Я выше неправильно написал что на 0V. X12 контакт 5 это +15V,  контакт 8 это 0V. Слева на схеме Power Supply + и - действительно перепутаны.
×
×
  • Создать...