Автоматизація Digitals з зовнішніх програм

Здається тема автоматизації Digitals із зовнішніх програм має право на існування, оскільки така автоматизація відрізняється від написання скриптів застосуванням сервера команд:oops: . Допоможіть вирішити два питання, будь-ласка

З довідки:
“Чтобы скрыть любую панель, достаточно выбрать ее имя в этом списке. Чтобы показать скрытую панель, необходимо выбрать ее повторно.”
Виконати пункт меню можна командою @ExecuteMenu InternalName. (Выполняет любой пункт меню или команду кнопки по их внутреннему имени). Мабуть не будь-який пункт меню :frowning: . Інакше якою командою відобразити/приховати користувацьку панель інструментів, як звучить внутрішнє ім’я?

Нажаль запустити скрипт з зовнішньої програми лишилось нелегкою справою. TCP/IP, Exchange - наразі однаково працюють (запускають скрипт лише один раз за сесію роботи Digitals) :frowning: . Але якщо перед першим викликом скрипта з зовнішньої програми, та натиснути кнопку скрипта на панелі інструментів Digitals - викликай скрипт зі своєї програми скільки заманеться :stuck_out_tongue: .
Роз’ясню:

Спочатку первинний скрипт ‘Зйомка.пуск’ запускається з кнопки:
$a=%Script.Зйомка.накладка Порожньо
@Dialog.Message $a

Якщо запуск з кнопки первинного скрипта має місце - Excel далі скільки завгодно викликає вторинний скрипт ‘Зйомка.накладка’:
@If $Parameters=Порожньо then @Goto %End
$Shljah=@StringPart 2/$Parameters

%End
$Result=Виконано

Якщо перед викликом вторинного скрипта з Excel не запустити первинний скрипт з кнопки, Digitals на другому виклику вторинного скрипта з Excel дає помилку, при цьому скрипт навіть не починає виконання, а після помилки - запустити будь-який скрипт з панелі не вдається.

Дуже прошу, підкажіть “де песик заритий”, яким системним повідомленням відрізняється клік на кнопці користувацької панелі інструментів від виклику скрипта командою, посланою на сервер команд :question: - десятий день голова пухне.

Хто знається на функціях Digitals-а, допоможіть, будь-ласка, з такими питаннями:
в режимі ‘збір’ захоплюємо лінію, клавішею ‘L’ реєструємо точку. Скрипт обробки події %Events.OnPointCollect має визначити об’єкт, до якого була захоплена точка (точка належить об’єкту, що збирається в шарі відмінному від шару об’єкта, до лінії якого захоплена і реєстрована точка).

  1. Яким чином отримати номер об’єкта, до якого реєстрована точка :question:
  2. Як отримати кут лінії, до якої захоплена точка і реєстрована :question: