Тема: Как ответить на запрос (getreal) используя TextButton (OpenDCL)?

Добрый день!
Вопрос следующий:
На Modeless Form установлен TextButton.
Для этого TextButton определено выполнение функции при Clicked.
Упрощённо так:

(defun c:Project1_Form1_TextButton_OnClicked ()
  200 ;; передаётся в ACAD...
)

Для ответа на запросы стандартных команд ACAD такой записи достаточно. А как ответить на запросы функций lisp? Имеются ввиду (getreal), (getstring) и т.д.?

Re: Как ответить на запрос (getreal) используя TextButton (OpenDCL)?

> Kosarev
Если правильно понял, что мешает использовать переменные для передачи в команды AutoCAD и в функции AutoLISP

(defun (c:Project1_Form1_TextButton_OnClicked ()
  (setq SomeThing 200)
)

А уж SomeThing использовать по своему усмотрению.

Re: Как ответить на запрос (getreal) используя TextButton (OpenDCL)?

Спасибо, Юрий, за отклик.
Использование переменных не годится в моём случае. В ответ на запрос (getreal), (getstring) и т.п. нельзя использовать переменные и дополнительные lisp-выражения, необходим прямой ввод конкретного числа, текста и т.д. в командной строке ACAD. Может я коряво обрисовал ситуацию, попробую по-другому: я пытаюсь смоделировать процесс ввода информации а-ля SCREENMENU. Ну может сейчас с появлением инструментальных палитр и других прибомбасов это самое SCREENMENU уже никто и не использует, хотя это полезная, с моей точки зрения, штука. Я к нему привык. Это что-то вроде диалогового окна в формате Modeless Form. Только заполнять его долго и нудно. Да ещё безбожно глючит в последних версиях ACAD. Так вот там каким-то образом записанный в определённом поле макрос автоматически передаётся в командную строку ACAD. Т.е. если записано для определённого поля, к примеру: 200, то если на запроc (getreal) в это поле "кликнуть" - цифра 200 автоматически передаётся в командную строку ACAD, как буд-то пользователь там её руками прописал. Ну а дальше - дело техники...
Так вот вопрос состоит в том, можно ли как-то передавать из TextButton информацию в командную строку на запрос (getreal) без
(defun c:Project_..._OnClicked () ....)
или нельзя. Может TextButton вообще для этого не годится? Тогда что использовать?
Прошу знатоков поделиться мыслями.
С уважением.

Re: Как ответить на запрос (getreal) используя TextButton (OpenDCL)?

> Kosarev
А почему нельзя "иммитировать" команды AutoCAD'а функциями AutoLISP'а? Зачем усложнять себе задачу?
Опять же, если правильно понял, пытаешься последовательно сделать что-то:
1. ввод команды.
2. ввод первого значения (команда ожидает)
3. ввод второго значения (команда ожидает)
.......
n. выполнение команды по введенным данным.
А если сначала ввести все данные, а потом запустить команду на выполнение.
Набор команд в списке, набор данных в списке (в двух, в трех списках). После ОК, проверка данных и выполнение команды.

Re: Как ответить на запрос (getreal) используя TextButton (OpenDCL)?

Просто есть масса готовых функций, в которых предусматривался изначально непосредственный ввод значений из SCREENMENU и др. меню. Если пойти по Вашему, Юрий, пути, учитывая что я не программист - до пенсии можно ковыряться исправляя коды. А так прицепил в характерных местах ссылки на диалоги ODCL и всё. Хотя, думаю, что всё-таки есть какой-то путь ввода непосредственно числовых значений из TextButton, пригодных для ответа на (getreal). Может как-то можно вводить макросы, а не лисп-выражения. Как в описаниях строк меню
(ну там ^C^C ...;  и т.д.).
На ODCL была большая надежда... Может не всё потеряно? Может есть ещё какие соображения?
1. ввод команды.
2. запрос команды через (getreal),
   - ввод первого значения нажатием TextButton1
2. запрос команды через (getreal),
   - ввод второго значения нажатием TextButton2
.....
3. выполнение команды.

Re: Как ответить на запрос (getreal) используя TextButton (OpenDCL)?

Нашёл способ, кому интересно выкладываю:
1. При установке характеристик TextButton
   ставим для EventInvoke позицию "0 - Keep Focus"
2. Реакцию на "клик" пишем примерно так:
(defun c:Project1_Form1_TextButton_OnClicked ()
  .........
  ..........
  (vla-sendcommand (vla-get-activedocument (vlax-get-acad-object)) "123 ")
)
Теперь при запросе (getreal) если "кликнуть" наш измученный TextButton функция вернёт число 123.