Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > SCAD+AutoHotkey и Autoit

SCAD+AutoHotkey и Autoit

Ответ
Поиск в этой теме
Непрочитано 02.06.2012, 08:10 1 |
SCAD+AutoHotkey и Autoit
John_Galt
 
Регистрация: 31.03.2012
Сообщений: 899

По мотивам темы SCAD рекомендации авторам.....
В общем решил показать как можно облегчить свои нервы при работе со СКАДом.
Привожу не большой пример как сделать скрипт(создание АЖТ) на выполнение рутинных действий в СКАДе.
1. Устанавливаем AutoHotkey
2. Запускаем СКАД и утилиту AutoIt3 Window Spy которая идет в составе AutoHotkey
3. Запускаем блокнот, для записи скрипта.
4. Записываем последовательность кликов левой клавишей мыши (см рисунок)
5. Сохраняем записанный скрипт с расширением .ahk
6. Запускаем скрипт(выделяем скрипт, нажимаем ПКМ, Run script)

В приложенном файле скрипт, который срабатывает на нажатие ф+ctrl, можно сделать любую другую комбинацию клавиш.
Скрипт надо будет переделать под свой комп, т.к. разрешения у экранов разные и т.д.
Как создавать скрипты не зависящие от разрешения экрана еще не разобрался....
PS. Просьба к тем кто тоже будет писать скрипты, выкладывать их в данной теме, и делится своими познаниями в AutoHotkey

Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 1228
Размер:	101.4 Кб
ID:	81406  

Вложения
Тип файла: rar Пример.rar (2.23 Мб, 389 просмотров)


Последний раз редактировалось John_Galt, 24.06.2012 в 11:59.
Просмотров: 58171
 
Непрочитано 27.06.2012, 15:28
#121
Клименко Ярослав

инженер-проектировщик
 
Регистрация: 17.10.2007
Тула
Сообщений: 4,261


Чегой-то у меня работает только зумм, кнопки F и Ctrl+... Alt+... не хотят. Полноэкранный режим, значения в файле ini поставил свои.
Точно помимо скада и этой проги не надо ничего запускать? От сервис-пака винды зависит? От размеров и разрешения экрана?
__________________
Дураки учатся на своих ошибках, умные на чужих, а мудрые смотрят на них и неспеша пьют пиво.
Клименко Ярослав вне форума  
 
Автор темы   Непрочитано 27.06.2012, 16:25
#122
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


Клименко Ярослав
Странно ты первый у кого не работает...
Попробуй сперва запустить СКАД а потом приложение....
Оно должно висеть внизу в треее...
John_Galt вне форума  
 
Непрочитано 28.06.2012, 13:37
#123
Клименко Ярослав

инженер-проектировщик
 
Регистрация: 17.10.2007
Тула
Сообщений: 4,261


Стало получаться
Выполнил "Восстановить исходное положение окна фильтров". Я ж так и думал, что от положения окон на экране зависит.
Горячие кнопки с ctrl и alt работают, осталось только F2-F8 победить. При нажатии на них видно моргание курсора, но чуть ниже, чем кнопки вкладок, миллиметров на 10.
Спасибо за техподдержку!
__________________
Дураки учатся на своих ошибках, умные на чужих, а мудрые смотрят на них и неспеша пьют пиво.
Клименко Ярослав вне форума  
 
Автор темы   Непрочитано 28.06.2012, 13:43
#124
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


Клименко Ярослав
Странно, но фактически от места расположения панелей это зависеть не будет(размер панелей должен быть с кнопками в 2 столбца я об этом писал)....
Их можно будет тягать по экрану, самое главное чтобы был включен полноэкранный режим и панели были включены(у меня фактически командный режим работы API SCADa у меня нету)....
Кнопки F2-F8 ты не сможешь использовать раз они у тебя не нажимаются, там относительные координаты для моего разрешения экрана....
Если у тебя она ниже на 10 мм то могу перекомпилировать файл для твоих значений....
John_Galt вне форума  
 
Непрочитано 28.06.2012, 13:58
#125
Клименко Ярослав

инженер-проектировщик
 
Регистрация: 17.10.2007
Тула
Сообщений: 4,261


Цитата:
Сообщение от John_Galt Посмотреть сообщение
Странно, но фактически от места расположения панелей это зависеть не будет(размер панелей должен быть с кнопками в 2 столбца я об этом писал)....
Ну дык... двигаешь их - работать перестаёт. Восстанавливаешь заново - работает.
Экран 23,5, 1920х1080. Ну если не сложно, перекомпилируй.
__________________
Дураки учатся на своих ошибках, умные на чужих, а мудрые смотрят на них и неспеша пьют пиво.
Клименко Ярослав вне форума  
 
Автор темы   Непрочитано 28.06.2012, 14:18
#126
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


Клименко Ярослав
ХММММ
Ладно вот тебе попробуй
Надо разобраться, действительно если переместить панель, то кнопки перестают срабатывать....
Хотя алгоритм функции клика одинаковый, и для средней кнопки и для клавиатуры...
Вложения
Тип файла: rar HotKeyScad60.rar (350.8 Кб, 87 просмотров)

Последний раз редактировалось John_Galt, 28.06.2012 в 14:24.
John_Galt вне форума  
 
Автор темы   Непрочитано 03.07.2012, 09:58
2 | #127
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


Обнаружен баг, если введены идентификационные данные проекта, то программа не работает...
В ближайшее время гляну как переделать и улучшить....
НА днях доделаю программку распечатки графических результатов из СКАДа
John_Galt вне форума  
 
Автор темы   Непрочитано 05.07.2012, 11:20
#128
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


Сделал наконец программу для распечатки(снимки экрана) графических материалов из СКАДА
Пока только для стержней, чуть позже переделаю для пластин и для армирования...
Сейчас программа еще на стадии доработки, поэтому прошу выкладывать свои предложения....


PS. Те кто скачали вы хоть отпишитесь работает али нет.....
Вложения
Тип файла: rar Scad20_+нагр.rar (441.8 Кб, 149 просмотров)
Тип файла: rar capture-1.rar (4.98 Мб, 151 просмотров)

Последний раз редактировалось John_Galt, 05.07.2012 в 13:16.
John_Galt вне форума  
 
Автор темы   Непрочитано 06.07.2012, 12:45
#129
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


ХМММ
20 скачиваний и ни одного комментария, либо у всех все работает, либо не работает...
И пожеланий ни каких, пока вот добавил кнопку выбора папки куда сохранять файлы, еще какие нибудь предложения есть...
John_Galt вне форума  
 
Автор темы   Непрочитано 10.07.2012, 18:01
2 | #130
John_Galt


 
Регистрация: 31.03.2012
Сообщений: 899


Ну вот сделал пакетную распечатку результатов пластин, предложений и вопросов по предыдущей программе так и не было....
Ну да ладно кому интересно тот обратится с вопросами....
В приложенном файле, видео работы программы и сама программа, добавил диалог выбора папки, и убрал выбор задержки нажатия на кнопки и иконки, теперь программа сама отслеживает что происходит со СКАДом...
Миниатюры
Нажмите на изображение для увеличения
Название: Безымянный.png
Просмотров: 301
Размер:	96.8 Кб
ID:	83583  
Вложения
Тип файла: rar Распечатка_пластины.rar (4.28 Мб, 93 просмотров)
John_Galt вне форума  
 
Непрочитано 21.08.2012, 15:54
#131
ConstructorB


 
Регистрация: 21.08.2012
Сообщений: 76


Всем привет.
Спасибо Вам за поднятую тему, я считаю ее очень актуальной. Согласен, что стоит переходить на альтернативные расчетные комплексы. Но есть одно но, часто бывает, что заказчик просит расчет именно в скаде или лире, и тут уже робот не поможет. Поэтому полностью соскочить с них не получится. Как Вы считаете?
Прошу вас помочь мне. Хочется создать для себя hotkeys(HK) на основе поиска изображений иконок, подскажите как это делается или скиньте пример, постараюсь сам разобраться.
Заранее спасибо.
ConstructorB вне форума  
 
Непрочитано 21.08.2012, 15:57
#132
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


ConstructorB
Всё уже сделано, ищи мою прогу в DNL
Могу выложить исходники............
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 21.08.2012, 16:07
#133
ConstructorB


 
Регистрация: 21.08.2012
Сообщений: 76


Да-да, я ее уже скачал, собственно с нее все и началось для меня.
Я бы хотел сделать дополнительные HK не только для панелей навигации и фильтров, но и для закладок "управление", "схема" и т.д.
Наверное мне понадобятся Ваши исходники.
ConstructorB вне форума  
 
Непрочитано 21.08.2012, 16:14
#134
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


ConstructorB
Я не Использую НК
Код:
[Выделить все]
#Include <HotKey.au3>
#include <ImageSearch.au3>
#include <Misc.au3>
#include <WinAPI.au3>
$dll = DllOpen("user32.dll")
Global $hImage, $hGraphic, $iSend, $Button_1, $slider1, $hImage1, $hImage2, $x[4],$y[4], $X
Global Const $VK_ESCAPE = 0x1B
Global Const $VK_F2 = 0x71
Global Const $VK_F3 = 0x72
Global Const $VK_F4 = 0x73
Global Const $VK_F5 = 0x74
Global Const $VK_F6 = 0x75
Global Const $VK_F7 = 0x76
Global Const $VK_0 = 0x30
Global Const $VK_1 = 0x31
Global Const $VK_2 = 0x32
Global Const $VK_3 = 0x33
Global Const $VK_4 = 0x34
Global Const $VK_5 = 0x35
Global Const $VK_6 = 0x36
Global Const $VK_7 = 0x37
Global Const $VK_8 = 0x38
Global Const $VK_9 = 0x39
; Назначаем горячие клавиши
_HotKeyAssign($VK_F2, 'Get1', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign($VK_F3, 'Get2', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign($VK_F4, 'Get3', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign($VK_F5, 'Get4', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign($VK_F6, 'Get5', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign($VK_F7, 'Get6', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_1), 'Get7', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_2), 'Get8', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_3), 'Get9', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_4), 'Get10', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_5), 'Get11', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_6), 'Get12', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_7), 'Get13', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_8), 'Get14', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_9), 'Get15', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
_HotKeyAssign(BitOR($CK_CONTROL, $VK_0), 'Get16', BitOR($HK_FLAG_DEFAULT, $HK_FLAG_EXTENDEDCALL))
$Width = _WinAPI_GetWindowWidth(_WinAPI_GetDesktopWindow()) ;Ширина
$Height = _WinAPI_GetWindowHeight(_WinAPI_GetDesktopWindow()) ;Высота
Dim $sDirPath = @ScriptDir & "\Кнопки\"

While 1
    Sleep ( 10 )
    Select
    Case _IsPressed("04", $dll);средняя кнопка
    $MousePos = MouseGetPos();координаты мыши
           $CoordX = $MousePos[0];координаты мыши Х
		   $CoordY = $MousePos[1];координаты мыши Y
		    $x1=0
			$y1=0
	        $result = _ImageSearch($sDirPath & "Lupa.png", 1, $x1, $y1, 100);поиск кнопки
            if $result=1 Then
            MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
		    EndIf
		    if $result=0 Then
			MsgBox(4096, "Выход",  "Кнопка не найдена, включите панель визуализации")
			EndIf
		 $CoordX1=$CoordX-200
		 $CoordX2=$CoordX+200
		 $CoordY1= $CoordY-200
		 $CoordY2= $CoordY+200
		 if $CoordX1<120 Then $CoordX1=200
		 If $CoordX2>$Width Then $CoordX2=$Width-200
		 if $CoordY1<120 Then $CoordY1=200
		 if $CoordY2>$Height Then $CoordY2=$Height-200
		    MouseClick("left", $CoordX1, $CoordY1, 1, 0)
	        MouseClick("left", $CoordX2, $CoordY2, 1, 0)
	        MouseMove($CoordX, $CoordY, 0)
    EndSelect
WEnd
Func Get1($iKey)
   $X=$Width/12
   $a = MouseGetPos()
   MouseClick("left", $X, 90, 1, 0)
   MouseMove($a[0], $a[1], 0)
EndFunc
Func Get2($iKey)
   $X=$Width*3/12
   $a = MouseGetPos()
   MouseClick("left", $X, 90, 1, 0)
   MouseMove($a[0], $a[1], 0)
EndFunc
Func Get3($iKey)
   $X=$Width*5/12
   $a = MouseGetPos()
   MouseClick("left", $X, 90, 1, 0)
   MouseMove($a[0], $a[1], 0)
EndFunc
Func Get4($iKey)
   $X=$Width*7/12
   $a = MouseGetPos()
   MouseClick("left", $X, 90, 1, 0)
   MouseMove($a[0], $a[1], 0)
EndFunc
Func Get5($iKey)
   $X=$Width*9/12
   $a = MouseGetPos()
   MouseClick("left", $X, 90, 1, 0)
   MouseMove($a[0], $a[1], 0)
EndFunc
Func Get6($iKey)
   $X=$Width*11/12
   $a = MouseGetPos()
   MouseClick("left", $X, 90, 1, 0)
   MouseMove($a[0], $a[1], 0)
EndFunc
Func Get7($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "01.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get8($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "02.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get9($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "03.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get10($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "04.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get11($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "05.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get12($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "06.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get13($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "07.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get14($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "08.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get15($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "09.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
Func Get16($iKey)
   $a = MouseGetPos()
   $x1=0
   $y1=0
   $result = _ImageSearch($sDirPath & "10.png", 1, $x1, $y1, 100);поиск кнопки
   if $result=1 Then
   MouseClick("left", $x1, $y1, 1, 0);клик на кнопку если кнопка найдена
   MouseMove($a[0], $a[1], 0)
   EndIf
EndFunc
DllClose($dll)
Вложения
Тип файла: rar Горячие_клавиши.rar (44.4 Кб, 118 просмотров)
Тип файла: rar HotKeyScad.rar (351.9 Кб, 112 просмотров)
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 21.08.2012, 17:11
#135
ConstructorB


 
Регистрация: 21.08.2012
Сообщений: 76


Спасибо
Буду осваивать, пока ничего не понятно=)
ConstructorB вне форума  
 
Непрочитано 21.08.2012, 17:18
#136
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


НУ размышляй, у меня еще до фига чего есть......
Этот урок сдашь, еще пару исходников подкину....
PS. Дерзай студент....
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 16.10.2012, 18:46
#137
Anahit

ПГС
 
Регистрация: 23.02.2012
Санкт-Петербург
Сообщений: 1


Могу поделиться своим быстрым способом по созданию модели, в частности АЖТ. Модель собираю в программке AllPlan Nemetchek, есть плагин для переброски в СКАД, намного проще и лучше, чем через Revit Structure/Scad, при переброске он всегда спрашивает сгущать сетку под колоннами(то есть создает Master Slave паучки), модель в Форуме получается чистенькая без ГИ, все узлы и сетка чистые +АЖТ в узлах колонн.
Anahit вне форума  
 
Непрочитано 16.10.2012, 19:08
#138
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


Тат тут про другую автоматизацию тема...
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
 
Непрочитано 25.11.2012, 03:46
#139
SLADE

проектировщик-новобранец
 
Регистрация: 14.09.2005
Minsk
Сообщений: 324


Добрый день. Вопрос
Код:
[Выделить все]
 $result = _ImageSearch($sDirPath & "10.png", 1, $x1, $y1, 100);поиск кнопки
Я так понимаю 10.png - это скриншот кнопки ?
SLADE вне форума  
 
Непрочитано 25.11.2012, 09:03
#140
DEM

YngIngKllr
 
Регистрация: 29.03.2005
СПб
Сообщений: 12,968


ага она должна быть в папке
__________________
Работаю за еду.
Working for food.
Für Essen arbeiten.
العمل من أجل الغذاء
Працую за їжу.
DEM вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Прочее. Программное обеспечение > SCAD+AutoHotkey и Autoit

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SCAD рекомендации авторам для переработки ... в программу Tyhig SCAD 169 17.09.2021 21:30
Последовательность экспорта из Revit Structure в SCAD Арсентьев Евгений SCAD 80 16.10.2020 11:32
Как в SCAD создать группу нагружений из загружений? МишаИнженер SCAD 1 21.08.2011 05:30
Объясните почему SCAD так по разному заармировал стойки соседних опор МишаИнженер SCAD 1 27.02.2010 17:22
SCAD не сетрифицирован в Украине EUDGEN SCAD 3 25.11.2005 14:31