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

Как запустить иконку с панели инструментов при помощи макроса?


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

Задача: после выполнения макрос должен сохранить модель в PDM систему(Нажать кнопку "сохранить в PLM"

При записи макроса делает вид что ничего не произошло а в API help не смог найти подходящей команды.

Вопрос: Какой командой или макросом это можно сделать?(SW2020, VB, Windows10)

 

image.png

Изменено пользователем PSW
Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts
1 час назад, PSW сказал:

Нажать кнопку "сохранить в PLM"

У кнопки есть горячая клавиша? Можно попробовать нажать кнопку через них.

 

1 час назад, PSW сказал:

в API help не смог найти подходящей команды

Тут вероятно надо смотреть API для PLM.

Или API в самой программе посмотреть возможность нажать кнопки клавиатуры через API, а может API windows, что бы нажать кнопку или комбинацию горячей клавиш клавиатуры.

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

@PSW Нажмите запись нового макроса, затем нажмите Вашу кнопку, и остановите запись. Посмотрите код записанного макроса, возможно рекордер запишет эту команду, и вы ее узнаете. Далее по ней шерстите API-справку.

9 часов назад, PSW сказал:

При записи макроса делает вид что ничего не произошло

Сорри, не увидел сразу :) Тогда Вам в службу поддержки Союз-PLM

Изменено пользователем Snake 60
Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, PSW сказал:

Задача: после выполнения макрос должен сохранить модель в PDM систему(Нажать кнопку "сохранить в PLM"

При записи макроса делает вид что ничего не произошло а в API help не смог найти подходящей команды.

Вопрос: Какой командой или макросом это можно сделать?(SW2020, VB, Windows10)

 

Макрос должен оканчиваться сообщением: "Нажмите на кнопку "Сохранить в PLM" :biggrin:

Ссылка на сообщение
Поделиться на других сайтах
23 часа назад, PSW сказал:

после выполнения макрос должен сохранить модель в PDM

Вероятно всё же придётся глядеть в справку, например глянуть здесь:

http://help.solidworks.com/2020/english/api/SWHelp_List.html?id=ebcc3330af35468e9e31d4d9eb1b73e0#Pg0

Изменено пользователем Kelny
Ссылка на сообщение
Поделиться на других сайтах
Ссылка на сообщение
Поделиться на других сайтах
3 часа назад, brigval сказал:

Можно здесь поизучать

Оператор SendKeys

Точно, предварительно назначив сочетание горячих клавиш, для этой команды.

Ссылка на сообщение
Поделиться на других сайтах
21 час назад, Snake 60 сказал:

Точно, предварительно назначив сочетание горячих клавиш, для этой команды.

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

выполнение задержки через "Sleep (1000)" приводит к задержке открытия окна:sad:

24.03.2021 в 15:07, brigval сказал:

SendKeys

не смог привязать к конкретному окну (не смертельно но может приводить к ошибкам)

 

24.03.2021 в 11:17, Kelny сказал:

Вероятно всё же придётся глядеть в справку, например глянуть здесь:

http://help.solidworks.com/2020/english/api/SWHelp_List.html?id=ebcc3330af35468e9e31d4d9eb1b73e0#Pg0

Это команды только для родной солидовской PDM или для любой?(спасибо буду пробовать)

 

24.03.2021 в 11:43, Kelny сказал:

Возможно подойдёт это:

Прошу прощения, но я не понял эту статью. Если не сложно можете объяснить как это можно использовать?

Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, PSW сказал:

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

в:sad:

 

 

А параметром wait не пробовали варьировать?

 

 

Цитата

 

Синтаксис

SendKeys string, [ wait ]

 

 

 

 

20 минут назад, PSW сказал:

 

выполнение задержки через "Sleep (1000)" приводит к задержке открытия окна:sad:

 

Не знаю, правильно это или нет, но как-то пробовал запускать в цикле DoEvents

Если получится, почему бы и нет...

Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, brigval сказал:

А параметром wait не пробовали варьировать?

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

 

16 часов назад, brigval сказал:

Не знаю, правильно это или нет, но как-то пробовал запускать в цикле DoEvents

Если получится, почему бы и нет...

Попробовал. Происходит тоже самое что и с "Sleep (1000)"  открытие окна начинается после выполнения цикла

Ссылка на сообщение
Поделиться на других сайтах
47 минут назад, PSW сказал:

Попробовал. Происходит тоже самое что и с "Sleep (1000)"  открытие окна начинается после выполнения цикла

Задача из первого топика решена. Макрос нажимает на кнопку.

Может надо Sleep запустить после посылки команды нажатия на кнопку?

Окно открывается, а макрос спит одну секунду. Потом продолжает работу уже при открытом окне. :g:

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

Solidworks - однопоточное приложение. Как бы вы не старались нельзя сделать одновременно 2 действия. Как пример: открыть большую сборку, нажать Rebuild Ctrl+Q и одновременно попытаться нарисовать эскиз. Ничего не получится, пока не завершится цепочка вызовов.

 

Макрос, и любой другой аддон, запускается в потоке самого SW. Т.е. он является дочерним, если можно так выразиться. А значит, что если сделать Sleep - то фактически заснёт поток самого SW.

DoEvents - это "фишка" WinForms. Т.е. это! как бы отпускает форму и при этом внутренние действия, не связанные с окном, продолжают выполняться. В основном употребляется когда есть окно с ProgressBar. В других случаях применения получите непредсказуемые неконтролируемые результаты.

Это я к чему: а что вообще должен делать макрос, кроме "нажатия" на кнопку?

 

25.03.2021 в 14:41, PSW сказал:

не смог привязать к конкретному окну

Это надо копать в поисках Handle окна. Это может помочь с мыслями https://help.solidworks.com/2021/english/api/sldworksapi/SolidWorks.Interop.sldworks~SolidWorks.Interop.sldworks.IFrame~GetHWnd.html

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...