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

Получить массы деталей/сборок с помощью 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 пользователей

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




  • Сообщения

    • Bot
      Компания «Топ Системы» открывает Весеннюю школу САПР 2024 — серию уроков в формате открытых вебинаров по теме «T‑FLEX CAD как часть платформенного решения T‑FLEX PLM». Когда? 22-27 апреля 2024, начало в 11.00 МСК Какой формат? ONLINE вебинары продолжительностью 2-2,5 часа Что в программе? Демонстрация экспертного опыта работы с технологиями программного комплекса T‑FLEX PLM. Опыт АЗ Урал, Борлас, НИЯУ МИФИ. Знакомство на практических примерах с функционалом и алгоритмами работы программ комплекса T‑FLEX PLM. Опыт миграции с иностранных решений на программный комплекс T-FLEX PLM. РЕГИСТРАЦИЯ Есть ограничения по участникам, требования к слушателям указаны на сайте регистрации. View the full article
    • alex0800
      вылет большой это раз фрезу отгибает.уменьшить глубину резания .и для снятия фаски это не тот инструмент. виктор они вам морочат голову. но проверь люфт по оси может разболтаны болты на шаровой. или поменяйте направление подачи может в этом случае будет без подрыва  
    • Клиент
      @Viktor2004 , почему второй станок делает лучше можно разбираться. Но здесь реально большой вылет фрезы, слышно как звенит. Может быть, стоит с оборотами поиграть (уменьшить или увеличить. Может быть нагрузку (съём) на фрезу больше дать. Режимы явно нетехнологичны. Судя по всему серия, над технологией поработать нужно, поставьте такую фрезу, она не дорогая:  
    • gudstartup
      @Viktor2004 вопросы к технологам при такой обработке рябь обеспечена это сильно сказано прям таки зеркало? да и ряби на фото не видно @Viktor2004 это вы рябью называете это какое-то дробление материала а не рябь притом только сверху вижу поставите это зеркало на ваш с рябью и сделайте небольшой съем и посмотрите чего зарябит и вообще чего нельзя стол повернуть и фаску продольно снять что за дикий метод
    • Viktor2004
      мне в пример приводят соседний станок. Там все то же самое, такой же вылет, такие же режимы. Но там дает зеркало
    • Leksunkin
      Вылет великоват, сделать припуск поменьше на фаску, как вариант пройти предварительно ступеньками предыдущим инструментом. Фреза похожа на сферическую, если да то лучше по кругу послойно закатать. Станок не виноват.
    • gudstartup
      ну пока еще мы вам никак не помогли но возможно удастся после изучения бэкапа
    • Viktor2004
      Товарищи, подскажите пожалуйста что можно поднастроить При снятии фаски получается рябь. SERVO ERROR в пределах 5 микрон Series31i Model B   VID_20240420_145644.mp4 CNCIDNUM.TXT CNC-PARA.TXT
    • Maik812
      все работает.. привязывать правильно нужно.
    • maxx2000
      @Павлуха так и я о том же.
×
×
  • Создать...