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

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

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




  • Сообщения

    • alek77
      Не отработал на нарисованном прямоугольнике: Начальный макрос такие вещи отрабатывает:   SW17 у меня  
    • Горыныч
      Не занимайтесь ерундой. В Китае б/у оборудование ОЧЕНЬ ликвидно, а потому дорого. Ну и в 99%случаев уже ушатано почти в ноль. 
    • Guhl
      Кто-нибудь может подсказать сайт, где продаются б/у станки в Китае?
    • gudstartup
      если не повезет то вобразе исправляйте user/system/etc/basesys.ini
    • andref
      @gudstartup  ну если есть PCU50  то все гораздо проще: подключаем к нему мышь , клаву и монитор, загружаемся в Windows и выставляем там  нужный IP (надеюсь что он известен). А вот если 840Dsl без PCU50 , то да... Хотя может просто сетевые разъемы  перепутали  
    • Kate KAUS
      Инжиниринговая компания, специализирующаяся на проектировании морских портов и терминалов приглашает в команду Ведущего/главного инженера-проектировщика ПОС. Чем предстоит заниматься: Разработка разделов проектной документации ПОС согласно ПП№87; Анализ проектной и исходно-разрешительной документации, используемой в качестве данных для составления раздела ПОС Составление ведомостей объемов работ разделов ПОС; Выдача заданий и исходных данных для смежных отделов; Обеспечение увязки принятых решений с проектными решениями других разделов (частей) проекта; Принятие основных технических решений, их обоснование, согласование и защита в органах экспертизы. Разработка основных технических решений на период строительства объектов (ППР, ОПР, строительные решения); Обеспечение соответствия разрабатываемой документации стандартам, техническим условиям, заданию на проектирование.   Требования: Высшее профильное образование (строительное); Опыт не менее 3 лет по специализации ПОС, ППР; Знание требований, предъявляемых к оформлению проектной документации; Умение качественно и в срок выполнять поставленные задачи; Опыт работ на строительных площадках приветствуется; Опыт прохождения согласований проектной документации; Знание ПК на уровне уверенного пользователя: (AutoCAD, Adobe Acrobat PRO, MS Office : Word, Excel, выполнение расчетов в программах).   Мы предлагаем: Трудоустройство согласно ТК РФ Пятидневную рабочую неделю с 9:00 до 18:00 Все социальные гарантии, ДМС Полностью официальную заработную плату, уровень готовы обсуждать с успешным кандидатом Динамично развивающаяся компания, комфортный офис   г. СПб м. Василеостровская, зп от 100 000-140 000р.   Контакты: eksmirnova@kaus-group.ru ТГ @Kate_Kaus  
    • Maks Horhe
      Все ок, работает. Спасибо, только пересчитывает подачи, как отключить пересчет, работать с постоянной подачей? Есть аналог cftcp Siemens? Или надо лезть в параметры?
    • Anat2015
      Боюсь, что не смогу вам помочь, тему прочитал. Я давно уже на административной работе, технические нюансы не помню. Думаю, вам тут помогут.
    • gudstartup
      придется вам вооружиться access my machine выкачать образ cf и там отредактировать сетевые настройки или если образ есть то залить его для восстановления
    • andref
      на фото у вас не стойка а TCU (Thin Client Unit) Посмотрите в шкафу, вот примерно такой блок есть? PCU50.3
×
×
  • Создать...