Jump to content

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


Recommended Posts

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

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

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

 

image.png

Edited by PSW
Link to post
Share on other sites


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

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

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

 

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

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

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

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

Link to post
Share on other sites
Snake 60

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

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

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

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

Edited by Snake 60
Link to post
Share on other sites
brigval
10 часов назад, PSW сказал:

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

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

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

 

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

Link to post
Share on other sites
Kelny
23 часа назад, PSW сказал:

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

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

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

Edited by Kelny
Link to post
Share on other sites
Snake 60
3 часа назад, brigval сказал:

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

Оператор SendKeys

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

Link to post
Share on other sites
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 сказал:

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

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

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

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

в:sad:

 

 

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

 

 

Цитата

 

Синтаксис

SendKeys string, [ wait ]

 

 

 

 

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

 

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

 

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

Link to post
Share on other sites
  • 2 weeks later...
streamdown

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • persona1980_1
      Здравствуйте! Как поменять стиль системной вспомогательной линии? Например на штриховую.
    • ValeryMoscow
      подскажите пожалуйста, как запустить оболочку 3dexperience ?   никогда этим не пользовался
    • AlexKaz
      Хороший фильм, сильно недооценённый всюду в мире.    
    • Snake 60
      Проверяйте в работе. to dxf(mod_by_Snake-60_v01).swp Два нуля - это Имя вашей текущей конфигурации. Макрос сохраняет все существующие конфигурации и если убрать ее имя из названия, то он будет перезаписывать все файлы и останется только один, с непонятно-какой конфигурацией. Можно сделать чтобы он убирал только нулевую и По умолчанию, а остальные сохранял. Сделать так?
    • mikityuk2402@gmail.com
      Я не хочу нарушать конструкцию программы! Я наладчик. Программы для меня пишет программист который не особо горит желанием корректировать постпроцессор! В день по 3-4 программы отрабатываю по 10-15 инструментов в программе и вручную редактировать каждую нет времени. Если знать переменную которая отвечает за преднабор инструмента то можно было б не нарушать структуру программы! Куда еще больше вводной информации! Мне нужна переменная которая бы записала номер инструмента который будет следующий по программе допустим в переменную #100=#"номер инструмента который стоит в преднаборе"! Все!!! Если Вы ее не знаете, то так и скажите!  
    • Snake 60
      @vovanheisvladimir Солид не сертифицирован на работу с игровыми видеокартами - это раз (Это не значит, что он не будет на них работать, у самого дома старенькая GTX 660) . И новые драйвера - это не значит лучшие - это два. Попробуйте хотя бы другие драйвера поставить...
    • vovanheisvladimir
      Так видеокарта GTX 1660 super, драйвера новые, тянет все новые игры а тут с какими то буквами позиции сдаёт. У меня была такая проблема на работе, с таким же солидом. Но видеокарта там была 1650. 
    • Snake 60
      Очень похоже на проблему с видеокартой или ее драйверами...
    • Arkhipkin_Pavel
      Всем привет! возникла проблема с траекторией сверления. проблема заключается в том что необходим определенный порядок обработки, из того что предлагает арткам в авто режиме ничего не подходит, а функция вручную постоянно выдает ошибку. в стратегии обработки по профилю таких проблем не было с ручным определением через вектор который является путем порядка обработки, а со сверление определить вручную не выходит, кто сталкивался? есть ли какие решения или это баг програмы? всем спасибо!  В качестве примера на изображении указан путь по которому необходимо произвести сверление, но вопреки указанному пути арткам все дела
    • Кварк
      По мне, так их везде хватает. Однако, свой станок я собрал благодаря подсказкам оттуда. Правда, были товарищи, которые говорили, что у меня ничо не получится, это напрягало. Но таких везде хватает. Там объективно больше информации. Хотя, может и тут подскажут. Что я знаю, поделюсь. 
×
×
  • Create New...