1

Тема: AHK: команды в автокаде

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

MyVar1=1
+^!o::
    if MyVar1=1
     {
       MyVar1 = 2
    MsgBox MyVar2 имеет значение "2".
     } 
    else
     {
       MyVar1 = 1
           MsgBox MyVar2 имеет значение "1".
     } 
return
NumpadHome::
      if MyVar1=1
    {
    Send, _rectangle{Enter}
    }
return

при написании программы я считал что когда значение MyVar1 = 1при нажатии NumpadHome будет рисоватся прямоугольник при MyVar1 = 2 будет обычная клавиша NumpadHome но почему то этого непроисходит.

вопрос 2  как сделать так что бы вначале выполнялась проверка условия а уже потом проверялась клавиша тоесть

      if MyVar1=1
    {
                  NumpadHome:: Send, _rectangle{Enter}
    }
return

почему неработает?

2

Re: AHK: команды в автокаде

MyVar1=1
+^!o::
    if MyVar1=1
     {
       MyVar1 = 2
    MsgBox MyVar2 имеет значение "2".
     } 
    else
     {
       MyVar1 = 1
           MsgBox MyVar2 имеет значение "1".
     } 
return

$NumpadHome::
   if MyVar1=1
      Send, _rectangle{Enter}
   Else
      Send, {NumpadHome}
return
NumpadUp:: Var := !Var   ; чередуются значения false и true
NumpadHome::
   if Var
      MsgBox, Первое действие
   else
      MsgBox, Второе действие
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Graf, 2010-12-01 11:15:51)

Re: AHK: команды в автокаде

teadrinker  спасибо.
первую часть кода понял.

А вот по второй части кода похоже я неправельно задал вопрос.

NumpadUp:: Var := !Var   ; чередуются значения false и true

NumpadHome::
   if Var
      MsgBox, Первое действие
   else
      MsgBox, Второе действие
   Return

Numpadend::
   if Var
      MsgBox, Первое действие
   else
      MsgBox, Второе действие
   Return

И так далее для всех необходимых клавиш.
Мне хотелось бы, что бы проверка  условия if выполнялась до проверки нажатия клавиши. Тоесть если условие выполняется то программа просматривает остальную часть скрипта, а если условие не выполняется то на оставшийся скрипт машинное время нетратится.

4

Re: AHK: команды в автокаде

Graf, начните пользовать знаки препинания и заглавные буквы.

5

Re: AHK: команды в автокаде

alexii,  я постараюсь.
Признаюсь честно это мой злой рок. С которым мне так тяжело боротся, плюс врожденная безграмотность. Но я буду старатся.

6

Re: AHK: команды в автокаде

Можно ещё так:

Var = 1   ; или  Var = 2

if Var = 1
   Hotkey, NumpadHome, NumpadHome1, On
else if Var = 2
   Hotkey, NumpadHome, NumpadHome2, On
   Return

NumpadHome1:
   MsgBox, Первое действие
   Return
   
NumpadHome2:
   MsgBox, Второе действие
   Return
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: команды в автокаде

Так код ещё длинее, хотя можно использовать. Спасибо

8 (изменено: Graf, 2010-12-01 18:13:43)

Re: AHK: команды в автокаде

Углубившись в чтение мануала обноружил что есть другой способ решить вторую проблему

+^!o::Suspend
NumpadHome::Send, _rectangle{Enter}
NumpadUp::Send, _circle{Enter}

И даже третью  - в треи видно когда какой режим включен ))