Форум профессиональных мебельщиков PROMEBELclub
 
PROMEBELclub - Форум для мебельщиков: конструкторов, дизайнеров, мастеров, технологов и всех, кто имеет отношение к производству и изготовлению мебели. Программы для конструирования и дизайна мебели. Мебельная литература и обучающие пособия.
 
 

Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 02.10.2021, 17:36  
Базис + AutoHotkey
 
Аватар для Bystry
Bystry
Новичок
Регистрация: 02.11.2018
Сообщений: 16

Сказал(а) спасибо: 5
Поблагодарили 22 раз(а) в 3 сообщениях
Версия для печати Отправить по электронной почте
Bystry Bystry вне форума 02.10.2021, 17:36
Рейтинг: ()

Добрый день.
Предлагаю тут развивать тему скриптов AutoHotkey для базиса

Я ужа давно работаю в мебельщике с помощью PieMeny написанное на AutoHotkey. Ну и пару своих скриптов... Снял пару роликов на эту тему на ютьюбе. Кому интересно оставлю тут ссылочки

и

Интересно может кто-то еще использует AutoHotkey в работе? Хотелось бы посмотреть примеры использования.

Официальный сайт | Русскоязычная документация

Я попробовал выложить на гугл диск актуальную версию из второго видео, но гугл диск почему-то считает этот архив зло пакостным поэтому если кому надо пишите в телеграмме(@BNikitaG) поделюсь

Последний раз редактировалось Uncle; 05.10.2021 в 16:45.. Причина: ссылка на актуальную версию
Просмотров: 61455
Ответить с цитированием Вверх
20 пользователя(ей) сказали cпасибо:
Старый 03.06.2022, 20:47   #121
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от skromvit Посмотреть сообщение
Это как в примере с FindTree?
Да, и в MouseClick есть параметр.
Цитата:
Сообщение от skromvit Посмотреть сообщение
И потом, разве третья картинка у меня ищется? Там по ситуации, либо активная строка, либо нет.
Так там если он "ДО выделения" (то есть первая) находит и кликает, а потом все остальные тоже ищет, хотя уже сделал что надо.
sergio1982 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (03.06.2022), skromvit (03.06.2022)
Старый 03.06.2022, 21:37   #122
skromvit
Местный
 
Аватар для skromvit
 
Регистрация: 22.12.2008
Сообщений: 262
Сказал(а) спасибо: 55
Поблагодарили 236 раз(а) в 169 сообщениях
Вес репутации: 261
skromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
Да, и в MouseClick есть параметр.
Спасибо за подсказку, MouseClick действительно быстрее чем просто Click.
skromvit вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
PravCom (03.06.2022)
Старый 04.06.2022, 09:27   #123
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от skromvit Посмотреть сообщение
И потом, разве третья картинка у меня ищется? Там по ситуации, либо активная строка, либо нет.
Вот код из 101. Третью картинку я увидел в 105, это да, не ваш код, но по сути туда как я понял вставлен ещё вариант когда курсор над строкой.

Но тут происходит ненужный поиск второй картинки даже если первая найдена.

PHP код:
ImgFound := false ;ищем картинку
While(ImgFound false)
{
ImageSearchxy0019201080, *0 text_off.png ;картинку ДО выделения вырезать через принтскринт.кнастройки темы могут быть другие
If(<> "")
{
Click, %x%, %y% ;кликаем если нашли невыделенную строку в свойствах
ImgFound 
:= true
}
ImageSearchxy0019201080, *0 text_on.png ;картинку ПОСЛЕ выделения вырезать через принтскринт.кнастройки темы могут быть другие
If(<> "")
{
Click, %x%, %y% ;кликаем если нашли выделенную строку в свойствах
ImgFound 
:= true
}

Причём если картинки не найдутся, скрипт зависнет.
Я бы сделал 3 попытки на поиск.
PHP код:
Loop 3
{
    
ImageSearchxy0019201080, *0 text_off.png ;картинку ДО выделения вырезать через принтскринт.кнастройки темы могут быть другие
    
If(<> "")
    {
        
Click, %x%, %y% ;кликаем если нашли невыделенную строку в свойствах
        
Break
    }
    
ImageSearchxy0019201080, *0 text_on.png ;картинку ПОСЛЕ выделения вырезать через принтскринт.кнастройки темы могут быть другие
    
If(<> "")
    {
        
Click, %x%, %y% ;кликаем если нашли выделенную строку в свойствах 
        
Break
    }
    
Sleep 150

sergio1982 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
skromvit (04.06.2022)
Старый 04.06.2022, 09:35   #124
PravCom
Местный
 
Регистрация: 15.10.2019
Адрес: Кишинёв
Сообщений: 198
Сказал(а) спасибо: 492
Поблагодарили 72 раз(а) в 31 сообщениях
Вес репутации: 89
PravCom скоро придёт к известности
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
Вот код из 101. Третью картинку я увидел в 105, это да, не ваш код, но по сути туда как я понял вставлен ещё вариант когда курсор над строкой.
да, третью, это я поставил - на пожарный случай, у меня не с первой попытки получилось запустить скрипт по картинке.


Цитата:
Сообщение от sergio1982 Посмотреть сообщение
Я бы сделал 3 попытки на поиск.
я где-то наталкивался на команду, но не успел её изучить, что означает индекс 3 после самой команды, количество циклов?
PravCom вне форума   Ответить с цитированием Вверх
Старый 04.06.2022, 09:42   #125
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от PravCom Посмотреть сообщение
количество циклов?
Да.
Или точнее количество итераций цикла.
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 04.06.2022, 09:50   #126
PravCom
Местный
 
Регистрация: 15.10.2019
Адрес: Кишинёв
Сообщений: 198
Сказал(а) спасибо: 492
Поблагодарили 72 раз(а) в 31 сообщениях
Вес репутации: 89
PravCom скоро придёт к известности
По умолчанию

от sergio1982 (Сергея) удалось прийти к следующему результату по двум вариантам работы скрипта по стилизации размеров и текста.
Первый по поиску картинки, второй без него + предустановленный выбор цвета текста.

с поиском по картинке (картинки выкладывал ранее)
PHP код:
#singleInstance Force
#IfWinActive, БАЗИС-Мебельщик ;Название окна программы


SetWorkingDir %A_ScriptDir

F11:: ;Вызываем параметры размеров F11
Send 
^+!= ; Ctrl-Shift-Alt-= хоткеи Параметры размеровПодставить свои!
winwaitahk_class TFormParRazm
qS 
;Задаем размер стрелок
Sleep 200
Control
Uncheck,, TCheckBox2 ;Снимаем чек с курсива
Sleep 20 
;Подобрать паузу
Control
Check,, TCheckBox3 ;Ставим чек для замены всем размерам
Sleep 20 
;Подобрать паузу
Control
Check,, Edit1
Sleep 20 
;Подобрать паузу
Control
EditPaste, %qS%, Edit1 ;Меняем размер стрелок
Send 
{Enter}
Sleep 10 ;Подобрать паузу
Control
Check,, Edit2
Sleep 20 
;Подобрать паузу
    WinExist
("A")
    
SetKeyDelay2010  
    InputBox
size1какую высоту размерной надписи задать?
 if 
ErrorLevel
        
Return  
        
WinActivate 
    Control
EditPaste, %size1%, Edit2 ;Меняем высоту надписи
Sleep 10 
;Подобрать паузу
Send 
{Tab 3}{Enter}
Sleep 100 ;Подобрать паузу
Send
,^+{F10}  ;клавиши для выделения всего текста
    Sleep 250
    WinExist
("A")
 
WinMaximize 
    
SetKeyDelay2010  
    InputBox
size2какую высоту текста задать?
      if 
ErrorLevel
        
Return         
    
WinActivate 
    Send
,^+{F10}  ;клавиши для выделения всего текстаПодставить свои!
Sleep 200

ctrl 
:= FindTree(hwnd 0)
ControlGetPosCtrlXCtrlYCtrlWCtrlH, , ahk_id %ctrl%  
Loop 3
{
    for 
kpic in ["text_off.png""text_on.png"]
    { 
        
ImageSearchxyCtrlXCtrlYCtrlWCtrlH, *%pic%
        If(
!= "") {
            
Click, %x%, %y%
            
            Break 
2
        
}
    }
    
Sleep 150

 
Send, %size2%{Enter}{Escape 2}  
    Return
    

FindTree(hwnd 0) {
    
Win := hwnd "ahk_id" hwnd "A"
    
WinExist(Win
    
ControlGetctrlHWND, , TFrameProperty1
    ControlGet
ctrlHWND, , TVirtualStringTree1, % "ahk_id" ctrl
    
Return ctrl

и
без поиска картинок, напрямую работа с менюшкой:
PHP код:
#singleInstance Force
#IfWinActive, БАЗИС-Мебельщик ;Название окна программы

F11:: ;Вызываем параметры размеров F11
Send 
^+!= ; Ctrl-Shift-Alt-= хоткеи Параметры размеровПодставить свои.
winwaitahk_class TFormParRazm
qS 
;Задаем размер стрелок
Sleep 200
Control
Uncheck,, TCheckBox2 ;Снимаем чек с курсива
Sleep 20 
;Подобрать паузу
Control
Check,, TCheckBox3 ;Ставим чек для замены всем размерам
Sleep 20 
;Подобрать паузу
Control
Check,, Edit1
Sleep 20 
;Подобрать паузу
Control
EditPaste, %qS%, Edit1 ;Меняем размер стрелок
Send 
{Enter}
Sleep 10 ;Подобрать паузу
Control
Check,, Edit2
Sleep 20 
;Подобрать паузу
    WinExist
("A")
    
SetKeyDelay2010  
    InputBox
size1какую высоту размерной надписи задать?
 if 
ErrorLevel
        
Return  
        
WinActivate 
    Control
EditPaste, %size1%, Edit2 ;Меняем высоту надписи
Sleep 10 
;Подобрать паузу
Send 
{Tab 3}{Enter}
Sleep 100 ;Подобрать паузу

Send
,^+{F10}  ;клавиши для выделения всего текстаПодставить свои горклавиши.
    
Sleep 250
    
   win 
:= WinExist("A")  
    
ctrl := FindTree(win)
    
InputBoxsizeкакую высоту текста задатьввод цифры нужной высоты текста
    
if ErrorLevel
        
Return 
    
    
SetProp(size7winctrl) ; седьмая строка
    
    SetBox
(13winctrl6"TVTColorBox1") ;  выбрать цвет
    
Return 


f3::
   
win := WinExist("A")  
    
ctrl := FindTree(win
    
    
SetProp(337winctrl) ; седьмая строка
    
    SetBox
(13winctrl6"TVTColorBox1") ;  выбрать цвет
    
Return 
    
#If

SetProp(strrowwinctrl) {
    Static 
EditName := "TSpTBXEdit1"  ;     
    
SelProp(rowwinctrl)  
    
Sleep 50
    ControlGetText
Text, %EditName
    If (
str != Text) {
        
ControlSetText, %EditName%, %str%
        
ControlSend, %EditName%, {Enter
        
Sleep 320 настроить значение
    
}
    
ControlSend, %EditName%, {Esc
}

SetBox(rowwinctrlitemboxname) {
    
SelProp(rowwinctrl)
    
SetKeyDelay500
    ControlSend
, %boxname%, {Home}, % "ahk_id" ctrl
    Loop 
item 1
        ControlSend
, %boxname%, {LShift Down}{Down}{LShift Up}, % "ahk_id" ctrl
}

SelProp(rowwinctrl) {
    Static 
RowSize := 33
    ControlGetPos
CtrlXCtrlY, , , , ahk_id %ctrl%
    
ToolTip % (row RowSize) + 6
    ControlClick
, % "x" " y" (row RowSize) + 6ahk_id %ctrl%, , , , Pos 


FindTree(hwnd 0) {
    
Win := hwnd "ahk_id" hwnd "A"
    
WinExist(Win
    
ControlGetctrlHWND, , TFrameProperty1
    ControlGet
ctrlHWND, , TVirtualStringTree1, % "ahk_id" ctrl
    
Return ctrl

за что Сергею большое спасибо!

Последний раз редактировалось PravCom; 04.06.2022 в 11:37.
PravCom вне форума   Ответить с цитированием Вверх
Старый 04.06.2022, 11:33   #127
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

skromvit
Вот вариант с необходимой зоной поиска.
PHP код:
ControlGetPosCtrlXCtrlYCtrlWCtrlH, , % "ahk_id" FindTree()

Loop 3
{
    for 
kpic in ["text_off.png""text_on.png"]
    { 
        
ImageSearchxyCtrlXCtrlYCtrlWCtrlH, *%pic%
        If !
ErrorLevel 
            
MouseClick, , xy, , 0
            
Break 2
        
}
    }
    
Sleep 150


FindTree(hwnd 0) {
    
Win := hwnd "ahk_id" hwnd "A"
    
WinExist(Win
    
ControlGetctrlHWND, , TFrameProperty1
    ControlGet
ctrlHWND, , TVirtualStringTree1, % "ahk_id" ctrl
    
Return ctrl

sergio1982 вне форума   Ответить с цитированием Вверх
Пользователь сказал cпасибо:
PravCom (04.06.2022)
Старый 13.06.2022, 22:45   #128
skromvit
Местный
 
Аватар для skromvit
 
Регистрация: 22.12.2008
Сообщений: 262
Сказал(а) спасибо: 55
Поблагодарили 236 раз(а) в 169 сообщениях
Вес репутации: 261
skromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личность
По умолчанию

Скрипт "Свернуть всё" в структуре модели, помнится кто-то на JS хотел такое провернуть. На всякий случай, ещё добавил "Развернуть всё", может кому-то понадобится

Хоткеи PageUp и PageDown соответственно.

Область поиска на весь экран, но лучше её сократить под себя, для ускорения поиска. Картинку для поиска лучше сделать со своим оформлением БМ.

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


PHP код:
#singleInstance force
#IfWinActive БАЗИС-Мебельщик

;Свернуть всё
sc149
:: ; PageUp
CoordMode
MouseScreen
MouseGetPos
xposypos
ImgFound 
:= false
ImageSearch
xy0019201080, *0 Roll.png 0,координаты левый верхний угол1920,1080 координаты правый нижний угол
If(<> "")
{
MouseClickleft, %x%, %y%,,0
ImgFound 
:= true
}
Sleep 50
Send 
{Down 4}{Enter}
CoordModeMouseScreen
MouseMove
xposypos0
Return


;
Развернуть всё
sc151
:: ; PageDown
CoordMode
MouseScreen
MouseGetPos
xposypos
ImgFound 
:= false
ImageSearch
xy0019201080, *0 Roll.png 0,координаты левый верхний угол1920,1080 координаты правый нижний угол
If(<> "")
{
MouseClickleft, %x%, %y%,,0
ImgFound 
:= true
}
Sleep 50
Send 
{Down 2}{Enter}
CoordModeMouseScreen
MouseMove
xposypos0
Return 
[свернуть]


P.S. можно конечно обойтись кликом по координатам, но по моим наблюдениям метод не надежный, по картинке лучше.

P.P.S. В архиве ahk-скрипт и картинка.
Вложения
Тип файла: zip AHK_ROLL.zip (828 байт, 11 просмотров)
skromvit вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (13.06.2022), Slav (14.12.2022)
Старый 13.06.2022, 23:47   #129
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от skromvit Посмотреть сообщение
{Down 4}
Цитата:
Сообщение от skromvit Посмотреть сообщение
{Down 2}
У меня если выделено что то в блоке, то надо 1 и 2, а не 2 и 4.
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 14.06.2022, 01:36   #130
skromvit
Местный
 
Аватар для skromvit
 
Регистрация: 22.12.2008
Сообщений: 262
Сказал(а) спасибо: 55
Поблагодарили 236 раз(а) в 169 сообщениях
Вес репутации: 261
skromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
У меня если выделено что то в блоке, то надо 1 и 2, а не 2 и 4.

Похоже недоработка, тренировался на котятах)
Как вариант перед запуском отменять выделение или посылать эскейп 2-3 раза.
skromvit вне форума   Ответить с цитированием Вверх
Ответ

Нижняя навигация
Вернуться   Форум профессиональных мебельщиков PROMEBELclub > Программы для мебельщиков > Программы для конструирования и дизайна мебели > Система БАЗИС > Базис-мебельщик. Скрипты


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Базис-7,"Народный Базис"и Windows-8 sergeyzak18 "НАРОДНЫЙ" базис 23 16.01.2014 00:37


Текущее время: 15:03. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
© 2007-2023 PROMEBEL

џндекс.Њетрика