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

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

Меню

Маркет


Ответ
 
Опции темы Опции просмотра
Старый 17.01.2022, 11:12   #1
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Запуск меню по F1.
Проверено в 8н.
Пути конечно нужно прописать свои.



Ускорил работу, если 90 папок, находит за 1 секунду (на видео папка "ящик" 93я по счёту).
Добавил меню, пример с хоткеями оставил в комментарии.
Для работы в других папках "Скрипты" надо заменить на "Фрагменты", "Фурнитура" (см. массив Compliance).
Кнопка "Назад" не работает, если была смена дерева, например с "Фрагменты" на "Фурнитура".


Файл.

Последний раз редактировалось sergio1982; 17.01.2022 в 12:05.
sergio1982 вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
abbaco (18.01.2022), AlexBolton (17.01.2022), skromvit (17.01.2022)
Старый 17.01.2022, 12:36   #2
Enigmaman
Новичок
 
Регистрация: 07.01.2020
Сообщений: 9
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
Вес репутации: 0
Enigmaman пока не определено
По умолчанию

Я вообще чайник в скриптах! Так что разведкой не пользуюсь!
Enigmaman вне форума   Ответить с цитированием Вверх
Старый 17.01.2022, 13:22   #3
skromvit
Местный
 
Аватар для skromvit
 
Регистрация: 22.12.2008
Сообщений: 266
Сказал(а) спасибо: 55
Поблагодарили 238 раз(а) в 171 сообщениях
Вес репутации: 261
skromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личность
По умолчанию

Для тех, кто пользуется видами и слоями в чертежах.

Скрипт быстрого перехода по хоткеям по видам.
Пример на 3 вида (Вид1, Вид2, Вид3).
Зажимаем тильду ~ и 1, 2 или 3.

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


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

;<!--Переключение Видов--
sc29 1:: ; Зажимаем ~ + 1
Control
Choose1TSpTBXComboBox7
return

sc29 2:: ; Зажимаем ~ + 2
Control
Choose2TSpTBXComboBox7
return

sc29 3:: ; Зажимаем ~ + 3
Control
Choose3TSpTBXComboBox7
return
;--
Переключение Видов--!> 
[свернуть]


Скрипт быстрого перехода по хоткеям по слоям.
Пример на 3 слоя (Слой1, Слой2, Слой3).
Зажимаем Tab и 1, 2 или 3.

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


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

;<!--Переключение Слоев--
scF 1:: ; Зажимаем Tab 1
Control
Choose1TSpTBXComboBox6
return

scF 2:: ; Зажимаем Tab 2
Control
Choose2TSpTBXComboBox6
return

scF 3:: ; Зажимаем Tab 3
Control
Choose3TSpTBXComboBox6
return
;--
Переключение Слоев--!> 
[свернуть]
skromvit на форуме   Ответить с цитированием Вверх
Старый 17.01.2022, 22:16   #4
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Цитата:
Сообщение от skromvit Посмотреть сообщение
TSpTBXComboBox6
А вы давно это используете?
Просто порядковый номер контрола (у вас это 6 или 7) у меня другой, и от запуска к запуску могут меняться.
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 17.01.2022, 23:22   #5
skromvit
Местный
 
Аватар для skromvit
 
Регистрация: 22.12.2008
Сообщений: 266
Сказал(а) спасибо: 55
Поблагодарили 238 раз(а) в 171 сообщениях
Вес репутации: 261
skromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личностьskromvit - весьма и весьма положительная личность
По умолчанию

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
А вы давно это используете?
Просто порядковый номер контрола (у вас это 6 или 7) у меня другой, и от запуска к запуску могут меняться.
Как-то раньше не замечал.
Сейчас протестировал и вот какая штука вырисовывается.
Если запустить БМ (у меня 2021.9.2, на работе 11) и сначала открыть модель, а потом чертеж - то адреса 6 и 7. А если открыть БМ и сначала запустить чертеж - то адреса меняются на 4 и 5. НО, если потом открыть модель, ТО в чертежах все становится на свои места!
Похоже есть какие-то приоритеты раздачи номеров при запуске. Что первым открылось, тому и номерки поменьше.

UPD^
А вот какая штука вырисовывается, при дальнейших исследованиях:
Код HTML:
<!--Слои в чертежах, если открыть до модели:-->
ClassNN:  TSpTBXComboBox4  HWND:  0x80312

<!--Виды в чертежах, если открыть до модели:-->
ClassNN:  TSpTBXComboBox5  HWND:  0x902d6

<!--Слои в чертежах, если открыть после модели:-->
ClassNN:  TSpTBXComboBox6  HWND:  0x80312

<!--Виды в чертежах, если открыть после модели:-->
ClassNN:  TSpTBXComboBox7  HWND:  0x902d6
То есть, номера Control'ов меняются, а HWND - остаются прежними.

HWND из Wiki


Чтобы указать контрол через его HWND (window handle, идентификатор окна), оставьте параметр Control пустым и задайте ahk_id %ControlHwnd% как значение параметра WinTitle - это работает также и для скрытых контролов, даже если обнаружение скрытых окон (команда DetectHiddenWindows) не включено. HWND, как правило, узнаётся через команды ControlGet Hwnd, MouseGetPos или DllCall.
[свернуть]

Осталось только разобраться и протестить.

UPD2^
Использование HWND ни к чему не привело, так как с каждым запуском оно другое. Остаются лишь постоянными 6 и 7, или 4 и 5 - в зависимости от того что вперед было запущено.

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

Цитата:
Сообщение от skromvit Посмотреть сообщение
То есть, номера Control'ов меняются, а HWND - остаются прежними.
Просто меняется родительская иерархия.
Цитата:
Сообщение от skromvit Посмотреть сообщение
Остаются лишь постоянными 6 и 7, или 4 и 5
Это плохое решение, и вы будете периодически сталкиваться с неработоспособностью, например при изменении рабочего стола.
Например, если надо найти нужный TSpTBXComboBox, то можно в начале найти его родителя - TSpTBXToolbar с текстом "Слои", и в нём искать TSpTBXComboBox. Причём если его искать относительно TSpTBXToolbar, а не всего окна, то в нём индекс будет всегда одинаков.
sergio1982 вне форума   Ответить с цитированием Вверх
Старый 17.01.2022, 19:44   #7
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию Навигация по файлам

Добавил пример для нескольких типов папок.
Кнопка "Назад" везде работает.
Открывать должно что угодно менее чем за секунду.

Запуск меню по F1.
Проверено в 8н.
Пути конечно нужно прописать свои.





Файл.
sergio1982 вне форума   Ответить с цитированием Вверх
3 пользователя(ей) сказали cпасибо:
rostder (19.01.2022), skromvit (17.01.2022), toucaner (17.01.2022)
Старый 18.01.2022, 02:06   #8
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Вот рабочий пример. Переключает слои циклично.
Тут указан неизменный TSpTBXComboBox2.

На время теста лучше закомментировать это
Код:
	If Childs[Saveid] && WinExist("ahk_id " Childs[Saveid]) && DllCall("IsWindowVisible", "Ptr", Childs[Saveid])
		Return Childs[Saveid]
так как оно возвращает ранее найденный хэндл.
Станет работать медленнее, но при каждом нажатии будет искать именно TSpTBXComboBox2.

Но в режиме чертения, этот родительский контрол перестраивается, и ComboBox становится 3.


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

PHP код:
#SingleInstance Force
#Persistent
#NoEnv
#UseHook
SetBatchLines -1
ListLines Off 
#KeyHistory 0

#If WinActive("ahk_class TFormMain ahk_exe Bazis_.exe")    
^+Up:: Next_Layer(0)
^+
Down:: Next_Layer(1)
#If

Next_Layer(Next) {
    
hwnd := Control_Child("Next_Layer""TSpTBXToolbar""Слои""TSpTBXComboBox2"
    
SendMessage0x14700, , ahk_id %hwnd%   ; CB_GETCURSEL 
    SelPos 
:= ErrorLevel
    SelPos 
:= SelPos 0xffffffff || SelPos SelPos 1
    SendMessage
0x14600, , ahk_id %hwnd%   ; CB_GETCOUNT 
    COUNT 
:= ErrorLevel 
    
If Next
        NewPos 
:= SelPos COUNT || !SelPos SelPos 1
    
Else 
        
NewPos := SelPos <= COUNT SelPos 1
    Control
Choose, %NewPos%, , ahk_id %hwnd%
}

Control_Child(SaveidparentclassparenttextclassNN) {
    Static 
Childs := {} 
    If 
Childs[Saveid] && WinExist("ahk_id " Childs[Saveid]) && DllCall("IsWindowVisible""Ptr"Childs[Saveid])
        Return 
Childs[Saveid]
    If !
HWND := Control_Find(parentclassparenttext)
        Return 
0
    ControlGet
ChildHWND, , %classNN%, % "ahk_id " HWND
    
If !Child
        
Return 0
    
Return Childs[Saveid] := Child
}

Control_Find(class, textWin 0) {
    
Win := "ahk_id" (Win ?  Win WinExist("A"))
    
Loop
    
{
        
ControlGetHWNDHWND, , %class%%A_Index%, %Win%  
        If !
HWND
            
Return 
        
If !DllCall("IsWindowVisible""Ptr"HWND)
            Continue
        
ControlGetTextGetText, , % "ahk_id " HWND 
        
If (GetText != text)
            Continue
        Return 
HWND
    
}
    Return 


[свернуть]

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

Цитата:
Сообщение от sergio1982 Посмотреть сообщение
Но в режиме чертения, этот родительский контрол перестраивается, и ComboBox становится 3.
Неправильно написал, Toolbar и ComboBox в другом режиме это другие контролы, они не перестраиваются, а изначально так создаются.

В общем проверяем режим, и в зависимости от него указываем нужный индекс.

Переключение:
Ctrl+Shift+Up
Ctrl+Shift+Down

Проверено в 8н.

Файл.

Последний раз редактировалось sergio1982; 19.01.2022 в 16:24. Причина: 123
sergio1982 вне форума   Ответить с цитированием Вверх
2 пользователя(ей) сказали cпасибо:
PravCom (19.01.2022), skromvit (19.01.2022)
Старый 20.01.2022, 12:14   #10
sergio1982
Местный
 
Регистрация: 01.09.2019
Сообщений: 424
Сказал(а) спасибо: 52
Поблагодарили 480 раз(а) в 147 сообщениях
Вес репутации: 196
sergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царствеsergio1982 - луч света в тёмном царстве
По умолчанию

Скрипты Переключение слоёв и Навигация по файлам возможно заработают на новых версиях Базиса.
В начале появилась переменная 8H
Если = 1, то народный, если = 0, остальные.
sergio1982 вне форума   Ответить с цитированием Вверх
Ответ

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


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

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

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

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


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


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

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