Jump to content

Язык управления диалогом

Язык управления диалогами (DCL) — это язык описания и интерпретатор высокого уровня в AutoCAD для создания простых графических диалогов. Расширения AutoLISP используют его для взаимодействия с пользователем в среде AutoCAD.

Особенности и использование

[ редактировать ]

В отличие от других основных API-интерфейсов с графическим интерфейсом, DCL не является полным набором инструментов графического интерфейса для программирования приложений. Он предназначен только для создания простых диалогов в AutoCAD. Он включает в себя базовые виджеты форм, такие как текстовые поля, кнопки, флажки и списки. DCL является объектно-ориентированным ; он позволяет повторное использование посредством наследования и композиции.

Синтаксис DCL основан на определении и использовании «плиток». «Плитка» представляет собой виджет графического интерфейса, например текстовое поле или текстовую метку. Плитки также представляют виджеты, которые содержат другие виджеты, такие как столбцы, группы переключателей и сами диалоги. DCL предоставляет встроенные плитки для всех основных виджетов, а новые плитки можно определять посредством наследования и композиции других плиток.

DCL позволяет взаимодействовать с диалогом во время выполнения с помощью кода Lisp. С некоторыми виджетами могут быть связаны действия, именуемые запускаемой функции AutoLISP и передаваемые ей значения. В отличие от других типов графических интерфейсов, диалоги DCL не могут быть существенно изменены во время выполнения. Содержимое некоторых виджетов, таких как текстовые поля и списки, можно изменить, но виджеты нельзя удалить из диалогового окна или добавить в него.

Вот пример файла DCL (и сопутствующего файла AutoLISP ), демонстрирующий основные функции DCL.

name_button : button {
 label = "Submit name";
 action = "(change-name)"; 
}

hello : dialog {
 label = "DCL Example";
 
 : edit_box {
 label = "Name: ";
 key = "name";
 }

 : name_button {
 key = "submit-name";
 }

 : text {
 key = "greeting";
 }

 ok_only;
}

Диалог создается путем наследования встроенной плитки «диалог». Свойства устанавливаются в диалоговом окне и других виджетах в парах имя/значение. Плитки можно разместить внутри диалогового окна, просто назвав их или назвав их и указав дополнительные свойства. Новая плитка («name_button») определяется для использования путем присвоения ей имени и указания свойств.

; DCL is saved as "hello.dcl"
(defun change-name ()
  (set_tile "greeting" (strcat "Hello, " (get_tile "name") "!")))

(setq hello-dcl (load_dialog "hello.dcl"))
(new_dialog "hello" hello-dcl)
(start_dialog)
(unload_dialog hello-dcl)

Диалоговое окно DCL создается путем вызова ряда функций в файле AutoLisp. Плитки могут выполнять обратный вызов кода AutoLISP при определенных событиях, а Lisp может манипулировать содержимым плиток во время работы диалогового окна.

Альтернативные технологии

[ редактировать ]

Для создания более общих графических интерфейсов и других расширений в САПР AutoDesk предлагает несколько других вариантов. API ObjectARX для C++ позволяет создавать расширения, как в Microsoft Visual Studio. VBA позволяет программировать с помощью перетаскивания для AutoCAD , Microsoft Office и других приложений.

Начиная с AutoCAD 2007 и более поздних версий, программы AutoLISP или Visual-LISP могут вызывать подпрограммы, написанные в Visual Studio .NET (VB или C#). Программисты теперь могут создавать диалоги на VB или C#, которые имеют полный набор элементов управления, имеющихся в API .NET Forms, и могут вызываться и получать к ним доступ из Visual-LISP.

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 8fd91a0c420a9d34d0efc3e7ddc8b6c1__1689460080
URL1:https://arc.ask3.ru/arc/aa/8f/c1/8fd91a0c420a9d34d0efc3e7ddc8b6c1.html
Заголовок, (Title) документа по адресу, URL1:
Dialog Control Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)