Jump to content

Recommended Posts

Всем привет

 

Начал ваять макрос для создания Сводной спецификации всех компонентов, входящих в сборку.

 

Корректно разбираются сборки, детали, сварные детали со списком вырезов, которые на самом деле сборки, а также листовые детали со списком вырезов, которые тоже на самом деле сборки.

Рекурсивно строится дерево компонентов со всеми нужными свойствами - для сборок и деталей это SldWorks.Component2,  из которого потом достанем все свойства пользователя, для сварных и листовых деталей, которые сборки - SldWorks.Feature, из которого достаем списки вырезов с теми же свойствами.

 

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

 

Как оно сейчас работает:

 

Главная форма. Пока на ней ничего не работает, кроме "Большой Красной Кнопки" и мелкого переключателя про промежуточные вычисления:

Скрытый текст

MainForm.jpg

 

Если включен переключатель, будет показано это окно (его включать необязательно, это просто визуализация дерева):

Скрытый текст

ServiceForm.jpg

 

Результат в Excel по кнопке "Продолжить":

Скрытый текст

Excel.jpg

 

Свойства пользователя, которые желательно должны быть заполнены в Списках вырезов или Свойствах пользователя:
 - Формат
 - Наименование
 - Обозначение
 - Масса
 - Материал
 - Заготовка
 - Типоразмер

 

Писалось под SW2018, работает также и на SW2024.

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

Для дерева был написан рекурсивный класс, который сам себя строит и наполняет.

 

v0.01a

Понятно, использован чатГПТ и кибертехнолох.

Обратная связь приветствуется.

CompTree v0.01a.zip

  • Чемпион 3
Link to post
Share on other sites


UnPinned posts
2 минуты назад, ГЕЛА сказал:

Хотя и не должно наверное

Должно по идее. В SW2018 работало.

Скорее всего, нужно переключить ссылки в меню Tools-Reference на ваши версии (2024->2020)

Скрытый текст

image.png

Убрал лишние Reference. v0.02a.

CompTree v0.02a.zip

  • Чемпион 2
Link to post
Share on other sites
32 минуты назад, ANT0N1DZE сказал:

А покупное как-то отображается

Если это деталь или сборка с заполненными свойствами, то да. Но в типе будет деталь или сборка соотв. 

Не обрабатываются пока продвинутые сборки. Они заходят как сборки со своими узлами, как будто они не продвинуты. 

Link to post
Share on other sites
1 час назад, clavr сказал:

что это?

Это такая сборка, которая в спецификации прикидывается не сборкой, т.е все входящие в нее компоненты переходят на один уровень вверх, хотя в дереве конструирования выглядит все как обычно. Поиском по справке Продвинуть/Promote. 
Активируется правой кнопкой мыши по развернутой модельке в спецификации. Выключается правой кнопкой по сборке в дереве из чертежа. 

Link to post
Share on other sites

Доброго всем дня. Я правильно понимаю что надо менять библиотеки подчеркнутые на библиотеки с вопросом. Если да - то не помогает , макрос не запускается. Наставте кто на путь истинный .

Скрытый текст

Безымянный.jpg

 

Link to post
Share on other sites

Error: Type mismatch - 'и вставим предупреждение, если не сходится кол-во тел!
        If cBody <> CInt(.cells(currRow + 2, 7 + maxLevel).Value) Then
          .cells(currRow + 3, 7 + maxLevel - 1).Value = "Количество тел [" & cBody & "] не равно количеству деталей [" & _
                                                         .cells(currRow + 2, 7 + maxLevel).Value & _
                                                         "]! Проверьте подсвеченные красным позиции и их примечания или спецификацию по чертежам!"

Edited by mme
Link to post
Share on other sites
1 час назад, mme сказал:

Error: Type mismatch

Ошибка приведения типов. Я повторить не смог.

 

Есть несколько вариантов решения:

1) закомментить весь блок проверки:

Скрытый текст

image.png

2) переменная cBody - long. Переменная .cells - variant. Правильнее было бы привести .cells к Long с помощью функции cLng():

        If cBody <> CLng(.cells(currRow + 2, 7 + maxLevel).Value) Then
          .cells(currRow + 3, 7 + maxLevel - 1).Value = "Количество тел [" & cBody & "] не равно количеству деталей [" & _
                                                         CLng(.cells(currRow + 2, 7 + maxLevel).Value) & _
                                                         "]! Проверьте подсвеченные красным позиции и их примечания!"
          .cells(currRow + 3, 7 + maxLevel - 1).Font.Bold = True
          .cells(currRow + 3, 7 + maxLevel - 1).Font.Color = vbRed
        End If

 

1 час назад, ГЕЛА сказал:

Наставте кто на путь истинный

Вам нужно снять галки с библиотек, помеченных словом "MISSING" и установить их напротив таких же библиотек, только с вашей версией, сохранить.

После этого заработает, точка входа - ComponentTree.Main:

Скрытый текст

image.png

 

Link to post
Share on other sites
2 часа назад, jtok сказал:

Версия 0.06. Чисто визуал. Начали использовать в продакшн.

Держи 1000й лайк за это =))

  • Нравится 1
Link to post
Share on other sites
  • 1 month later...

Обновление до 0.07

 

Изменения:

  • поправлен интерфейс главной и промежуточной формы,  
  • добавлен столбец "Масса всего, кг"
  • добавлена проверка по массе Итого
  • добавлена опция сохранения спецификации в Excel по окончании ее создания

 

Главная форма:

Скрытый текст

MainForm 3 (0.07).jpg

Промежуточная форма:

Скрытый текст

ServiceForm 3 (0.07).jpg

Спецификация в Excel:

Скрытый текст

Excel 3 (0.07).jpg

 

CompTree v0.07.zip

  • Нравится 1
Link to post
Share on other sites
  • 3 weeks later...
jtok

Обновление до v0.08

 - Теперь Имена свойств для формирования спецификации можно задавать в выпадающих списках. До этой версии они не использовались.
 - Изменена промежуточная форма для просмотра дерева компонентов, вывод стал более строгий. Добавлены кнопки "в Блокнот" и "Отмена"

CompTree v0.08.zip

Link to post
Share on other sites
  • 3 months later...
jtok

Обновление до v0.10

 - Добавлена опция об исключенных из спецификации (ExcludeFromBOM) компонентах. Их теперь также можно исключить или добавить в спецификацию в Excel.

CompTree v0.10.zip

Link to post
Share on other sites
Docuk1
21.04.2026 в 00:21, jtok сказал:

Перезалил архив. Была ошибка

CompTree v0.10.zip 205 \u041a\u0431 · 3 скачивания

Доброго дня! Макрос запароленный. Так и было задуманно? У меня макрос не запускается совсем. может дело в рефернсах, но референсы не могу поменять

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...