Тема: Создание Интерактивной Клавиши в AutoCAD ?

Как создать интерактивную клавишу для переключения AutoCAD Systrm Variable, например FILEDIA = 1 или = 0. При этом клавиша должна отображать текущее состояние переменной, как при загрузке AutoCAD, так и во время работы.
Хороший пример реализации этой идеи в AutoCAD2000. Клавиша изменения метода СЕЛЕКТ объектов в "Проперти" диалоговом окне. Клавиша переключает метод селекта объектов и изменяет картинку в зависимости от текущего состояния.
К сожалению, эта клавиша не поддаётся кастомизации, и не выдаёт исходный код.
Спасибо за люую идею или подсказку.

Re: Создание Интерактивной Клавиши в AutoCAD ?

Если под ?интерактивными клавишами? подразумеваются кнопки(button controls), а не клавиши на клавиатуре(keyboard keys),  то это можно сделать следующим образом:

i)    Создать  ARX приложение с немодальным диалоговым окном(Modeless dialog), где разместить необходимые ?интерактивные клавиши?;
ii)    написать для button controls  соответствующий код изменения переменных и внешнего вида кнопок;
iii)    Создать реакторы(reactor?s), управляющие поведение диал. окна и отображения  текущего состояния выбранных переменных  ?во время работы

Re: Создание Интерактивной Клавиши в AutoCAD ?

Спасибо за ответ.
Как говориться, теоретически всё ясно. А вот с практической реализацией возникают проблемы. Не всё так "просто" для НЕ профессионального программиста, хотя и advanced user of AutoCAD.
Хотелось бы найти примеры таких кодов, или ссылку где можно это поискать.

Re: Создание Интерактивной Клавиши в AutoCAD ?

Если речь идет об "интерактивной" кнопке меню Акада, попробуйте сделать проще.
Нужны две новые кнопки меню. Одна из них должна быть групповой - с черным треугольником. Далее на каждую кнопку вешаете небольшой lisp и пишете макросы.
ЗЫ. Информация о параметре Filedia хранится в реестре, вот оттуда считывайте и пишите 1 или 0.
ЗЫЗЫ Кнопка Quick Select из Properties является не менюшной, а программной и "меняется" при открытии окна, поэтому она и не определяется обычными менюшными средствами.

Re: Создание Интерактивной Клавиши в AutoCAD ?

Да, всё правильно, иконка Quick Select из Properties действительно является програмной и не поддаётся обычным (менюшным) методам определения.
(Собственно поэтому и возникла эта проблема, и именно поэтому я обращаюсь к специалистам в программировании).

С простым использованием двух иконок в виде выпадающего под-меню работает всё нормально, но это как говориться пройденный этап.
А ведь как красиво реализована Quick Select! Хотелось бы освоить туже технологию для своих нужд.

Re: Создание Интерактивной Клавиши в AutoCAD ?

Вот простой пример кнопки для панели, переключающей размер курсора:

ID__cursor1    [_Button("Переключение курсора между большим и маленьким", "CHCUR_16.bmp", "CHCUR_24.bmp")]^C^C^P(progn (setvar "CURSORSIZE" $m=$(if,$(=,$(getvar,CURSORSIZE),100),5,100)) (princ))

Аналогично можно многое сделать

Можно и более простые

ID__0          [_Button("Поворот курсора на угол 0", "SA_00_16.bmp", "SA_00_24.bmp")]'SNAPANG;0

ID__1          [_Button("Поворот курсора на угол   45", "SA_45_16.bmp","SA_45_24.bmp" )]'SNAPANG;45

ID__2          [_Button("Поворот курсора на любой угол ", "SA_XX_16.bmp", "SA_XX_24.bmp")]'SNAPANG


Картинки вставлять по вкусу