Jump to content

Макрос для групповой правки Свойств пользователя


jtok

Recommended Posts

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

Вообще, я искал замену Properties+, который за 300 зеленых, но так и не нашел. Также был когда то Task#, но тоже стал дорог.

Написал его из Ведомость сборок, который основан на прекрасном коде с codestack.net

Хорошо, когда попадается хороший код, который не падает, стабилен и понятен, багов в него я и сам успею насувать.

 

Итак, макрос.

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

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

01.jpg

Открываем сборку побольше да пожирнее (рекомендую предварительно ее сохранить со всеми входящими компонентами, куда-нить в архив, серьезно):

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

02.jpg

Открывается окно с результатами. Так как контролы у VBA ущербные, то вот так - работать можно только с одним каким-то свойством, но зато для всех компонентов сразу:

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

03.jpg

Сейчас можно изменить какое-то одно свойство у одного компонента по двойному клику в списке:

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

04.jpg

И можно удалить все свойства с выбранным именем - после запроса:

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

05.jpg

...получим результат:

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

06.jpg

Остальной функционал не дописан(

 

Prop rev0.1.zip

Edited by jtok
  • Нравится 2
  • Чемпион 2
Link to post
Share on other sites


UnPinned posts
Ветерок
37 минут назад, jtok сказал:

Написал макрос для групповой правки свойств пользователя.

В чем выражается "групповое", если

37 минут назад, jtok сказал:

Сейчас можно изменить какое-то одно свойство у одного компонента по двойному клику в списке

 

38 минут назад, jtok сказал:

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

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

Не надо ни писать, ни дописывать, ни выискивать баги.

  • Печаль 1
Link to post
Share on other sites
3 минуты назад, Ветерок сказал:

В чем выражается "групповое

Можно удалить свойство всем и сразу:

45 минут назад, jtok сказал:

И можно удалить все свойства с выбранным именем - после запроса:

 

 

3 минуты назад, Ветерок сказал:

добавляю туда столбцы с нужными свойствами

Иногда бывает какое-то ненужное свойство модель имеет, и добавлять его в спец, чтобы удалить, не совсем удобно.

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

Иногда это важно

Edited by jtok
  • Нравится 1
Link to post
Share on other sites
4 часа назад, jtok сказал:

Остальной функционал не дописан(

Отличный макрос! продолжай и не кого не слушай! Очень нужный код и макрос!!!!

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

Ну он конечно кривой еще очень. Так, для затравки показал. Там еще править и править, для меня этот swCustPropMgr темный лес пока.

Link to post
Share on other sites
49 минут назад, jtok сказал:

Там еще править и править, для меня этот swCustPropMgr темный лес пока.

Объект CustomPropertyManager не такой сложный как кажется) Я сам его долго изучал, если будут вопросы спрашивайте

  • Нравится 1
Link to post
Share on other sites
04.07.2025 в 17:21, jtok сказал:

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

Вопрос по вхождению. Количество вхождений только в этой сборке? То есть открытую только прописывает? А так чтобы выбрать например сборки из папки все и по открывать и обработать что куда входит, записать типа  Количество штук ххххх.sldasm ? И так по списку куда входит. Ну и общее количество штук.

Edited by Maik812
Link to post
Share on other sites

Однажды, 3 года назад, тут на форуме написали уже макрос для групповой правки свойств, когда записывались свойства во все детали и подсборки в указанной папке. Даже моим именем назвали, потому как идея присваивать обозначение каждому элементу индивидуальное, отличающееся от предыдущего на 1, была моей. Потом на основе этого макроса тут же написали полноценную программу. Так что все это уже тут есть - не было нужды заморачиваться и писать все это заново. Но сейчас я не об этом. Первоначальный макрос не работал с большими сборками, только с мелкими, на больших просто пропадал и ничего не происходило. Тогда ребята пытались с этим бороться, но потом я пропал и не видел результатов. И вот сегодня я решил вернуться к вопросу, но с помощью ЧатGPT. За пару часов работы, а мы помним, что я не программист и знаний у меня в этом деле чуть больше, чем полный ноль, мы с ИИ доработали этот макрос и теперь он работает с любой сборкой. 

Мир меняется и очень стремительно.

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

 

Кстати - чат обещал, что можно использовать для заполнения свойств готовый шаблон, составленный в Property Tab Builder, вроде как убедительно объяснил как это сделать и какими инструментами. 3 года назад об этом даже говорить никто не хотел. Аж интересно что получится.

image.png

Link to post
Share on other sites
18 часов назад, Sykes сказал:

тут на форуме написали уже макрос для групповой правки свойств

Отлично. Где бы его посмотреть/скачать? Без ссылки/архива макроса то ведь какбы и нет. 

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

Количество вхождений только в этой сборке?

Да, только в текущей открытой сборке

21 час назад, Maik812 сказал:

То есть открытую только прописывает?

Этот макрос не прописывает кол-во вхождений, только показывает. Да, только в открытую. Прописывает другой макрос - Ведомость сборок в Solidworks.

21 час назад, Maik812 сказал:

выбрать например сборки из папки все и по открывать...

Нет, такой функционал я реализовывать не буду. Так как при этом пользователь (то есть я) не контролирую полностью работу макроса. Куда он там поедет и какие пути наоткрывает и что где поизменяет, никому не известно.

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

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

Отлично. Где бы его посмотреть/скачать? Без ссылки/архива макроса то ведь какбы и нет. 

От он SetPropertiesByFolderForSykes.swp

Это уже доработанный ИИ, теперь работает со сборкой любого размера. Правда работает не быстро, потому как открывает каждый файл отдельно, потом его закрывает. Но так удалось избавиться от зависания. Видел где-то более новую программу на его основе, но не помню где, писал это всё https://cccp3d.ru/profile/8881-snake-60/

Link to post
Share on other sites
11 часов назад, Sykes сказал:

Это уже доработанный ИИ, теперь работает со сборкой любого размера. Правда работает не быстро, потому как открывает каждый файл отдельно, потом его закрывает. Но так удалось избавиться от зависания.

Возможно при открытии стоит попробовать открыть в режиме только для просмотра (ТОЛЬКО ПРОСМОТР, ДЕТАЛИЗАЦИЯ, ПРОСМОТР БОЛЬШИХ ПРОЕКТОВ) с ограниченной функциональностью без загрузки моделей и можно быстренько отредактировать свойства.

Макросы и программы для Solidworks: http://kelnyproject.ucoz.ru/

Link to post
Share on other sites
6 часов назад, Kelny сказал:

Возможно при открытии стоит попробовать открыть в режиме только для просмотра (ТОЛЬКО ПРОСМОТР, ДЕТАЛИЗАЦИЯ, ПРОСМОТР БОЛЬШИХ ПРОЕКТОВ) с ограниченной функциональностью без загрузки моделей и можно быстренько отредактировать свойства.

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

Edited by Sykes
Link to post
Share on other sites
Kelny
19 минут назад, Sykes сказал:

Так что теперь писать код вручную просто нет смысла, достаточно прописать алгоритм, правильно поставить задачу машине и та сама все сделает в лучшем виде. 

Обычно поставить правильную задачу самое сложное в создании чего-то нового:

Picture background

 

21 минуту назад, Sykes сказал:

для полноценного программирования надо в голове держать кучу информации о командах и синтаксисе, с этим даже опытные программисты не всегда идеально справляются

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

 

24 минуты назад, Sykes сказал:

для ИИ это как семечки

Решение/программа могут быть не оптимальными.

Макросы и программы для Solidworks: http://kelnyproject.ucoz.ru/

Link to post
Share on other sites
5 часов назад, Kelny сказал:

Решение/программа могут быть не оптимальными.

Два макроса с нуля по заданию, один, более сложный, доработан до стабильного состояния из крайне нестабильного - всё работает при минимуме строк кода. Больше времени ушло на постановку задачи для ИИ, чем на сам код. За день. И все это с учетом того, что до этого я никогда не общался с ИИ, а только слышал о нем.

Link to post
Share on other sites
Snake 60

@Sykes Какой ИИ используете, если не секрет?

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.

  • Сообщения

    • esqado
      Есть какие-нибудь мысли, как заставить это работать или почему оно не хочет работать в версии 2024?
    • Kelny
      Просто не видно части столбцов, надо бы стрелочку потыкать в левом нижнем углу таблицы:
    • a_schelyaev
      Зная руководство НИЦ, есть большие сомнения, что деньги ЦАГИ платит на сторону за работы. Если это так, то было бы интересно с этим явлением ознакомиться.  
    • esqado
    • cser
      Так: - фразу "баллов по MSK-64 при уровне установки над нулевой отметкой до" все-таки можно найти в интернете, но не для сертификатов, а для паспортов; - фраза "при отсутствии в месте установки изделий резонансов в диапазоне 1 – 30 Гц" в принципе вне ГОСТ 30546.1 не встречается; - сертификатов таких не нашел с ходу. Получается, лучше посчитать на этаж повыше. А по поводу сертификата - может в сертификате это и недолжно уточняться - в протоколе испытаний указали и все?
    • fantom.ul
      1751877454.mp4
    • Сергей Кочев
      Если исходного проекта PLC у вас нет, а только изъятых из ПЛК то никак, а переписывать весь дата блок Data Block через DATA wiew вряд ли станете, переписал пару и желание отпало. Просто оставляйте коментарий  в NETWORKE coment сверху в самой программе ладере или stl - так быстрей и проще, я так делаю. 
    • GoLeMuS
      Судя по всему мне это не светит - у меня Спрут 10 версии, там есть только обработка 5D
    • Сергей Кочев
      Просто я наоборот прежде чем, что сделать собираю информацию, оцениваю риски, советуюсь с коллегами включая данный форум. Надеясь, что возможно кто-то уже сталкивался с данной задачей и с подводными камнями, получить предостережения,  Не принимайте близко к сердцу. 
    • Proffisher
      Выставил 11 бит параметра 4020:%010000000000 ;Совместимость с ПЛК, что переводит задание параметров 4120.x в секундах. Поэксперементировал с параметрами 4120.3:80 ;Контроль давления централизованной смазки 4120.4:60 ;Длительность смазки для централизованной смазки   При включении принудительно подачи смазки со стойки softkey клавишей Lubrication Axis сценарий следующий: Если 4120.3 меньше 4120.4, то мотор насоса отключается через заданное в 4120.4 время, если больше, то через заданное в 4120.3 время и в обоих случаях после остановки мотора выдаёт ошибку 0-Signal Lubrication Feedback.
×
×
  • Create New...