Важным компонентом приложений в AutoCAD являются диалоговые окна. В них отображается полезная информация, пользователи в удобной форме вводят исходные данные, меняются настройки программы. Язык программирования LISP не имеет своих диалоговых окон. Поэтому приложения, написанные на языке LISP, использую для написания диалоговых окон язык DCL.

В этом уроке мы создадим диалоговое окно для программы, которую мы написали в предыдущем уроке. Напомню, что эта программа строит куб со сторонами 200. Давайте изменим эту программу так, чтобы она рисовала не куб, а параллелепипед, стороны которого (длина, ширина, высота) мы будем задавать при помощи диалогового окна см. Рис. 1.

Рис. 1.   Диалоговое окно DCL

Но вначале давайте его создадим.

В конце статьи смотрите видео к этому уроку.

Откройте AutoCAD. Далее запускаем редактор Visual LISP, набрав в командной строке VLISP.

Создаем новый файл Рис. 2.

Рис. 2.   Новый файл

Далее нажимаем «Файл» / «Сохранить как» и в открывшимся окне «Сохранения файла» находим папку «MyLisp». См. Рис. 3.

Рис. 3.   Создание файла DCL.

В поле «Тип файла» щелкаем по стрелке вниз и выбираем пункт «Исходные DCL-файлы». В поле «Имя файла» вводим «mp_paral» и нажимаем «Сохранить».

Затем в окно текстового редактора, набираем текст нашей программы или копируем его с сайта. См. Рис. 4.

Рис. 4.   Программный код DCL.

Программный код на языке DCL

mp_paral: dialog {label = "Параллелепипед"; // начало диалога

    : spacer{height=1;} // вставка пустой строки

    : text {label = "Введите размеры:"; key = "t1";}   // текстовое поле
    : edit_box {label = "Длина мм:"; key = "eb_Dl"; edit_width=10; value = "";}      // редактируемые
    : edit_box {label = "Ширина мм:"; key = "eb_Sh"; edit_width=10; value = "";}  // текстовые
    : edit_box {label = "Высота мм:"; key = "eb_Hi"; edit_width=10; value = "";}    // поля

    : spacer{height=1;}   // вставка пустой строки

    ok_cancel;   // добавление кнопок ОК и Отмена
}  // окончание диалога

Скачать диалоговое окно Mp_paral.dcl (Размер файла: 392 bytes)

Чтобы проверить действительно ли у нас получилось нужное диалоговое окно:

См. Рис. 5.

Рис. 5.    Просмотр DCL из редактора

В главном меню выбираем  «Сервис», далее переводим указатель мыши на «Инструменты интерфейса» и щелкаем на «Просмотр DCL из редактора».

Появится окно «Введите имя диалогового окна» см. Рис. 6.

Рис. 6.    Имя диалогового окна.

Нажимаем «ОК» и в рабочем окне AutoCAD появится наше диалоговое окно. Если мы не допустили ошибки, то оно будет выглядеть так же, как на Рис.1.

Рис. 1.   Диалоговое окно DCL

Для того, чтобы закрыть диалоговое окно, нажмите на любую из кнопок (ОК или Отмена).

Что делать если диалоговое окно DCL не отображается?

Директива описания диалога.

Файл, написанный на языке DCL, состоит из логических единиц – директив. Программный код диалогового окна начинается с директивы описания диалога. В общем виде она имеет следующий вид:

<Name> : dialog { <атрибуты окна> 
    <поля> 
}

<Name> —  это имя, по которому диалоговое окно из LISP программы вызывается на экран (в нашем случае это mp_paral).

Далее следует «:», ключевое слово dialog, и фигурная открывающаяся скобка «{»

Параметр <атрибуты окна> представляет собой последовательность атрибутов и их значений. В общем виде это выглядит следующим образом:

<Атрибут> = <значение>;

В нашем случае атрибут это label, а его значение «Параллелепипед». Этот атрибут задает начальный заголовок диалогового окна.

После атрибута и его значения ставиться «;»

Параметр <поля> является набором директив описание полей (текстового поля, редактируемого текстового поля, кнопок)

Директива описания диалога заканчивается закрывающей фигурной скобкой «}».

Директивы описания полей.

Давайте подробнее рассмотрим директивы описания полей:

: spacer {height=1;} – директива вставки пустой строки.
height=1; - атрибут задает высоту пустой строки
: text  {label = "Введите размеры:"; key = "t1";}  - директива описания текстового поля.
label = "Введите размеры:"; - атрибут задает начальный заголовок поля.
"key = "t1"; - атрибут задает код поля, по которому к полю можно будет
обратится из программ LISP
: edit_box {label = "Длина  мм:"; key = "eb_Dl"; edit_width=10; value = "";} 
- директива описания редактируемого текстового поля.
label = "Длина  мм:"; - атрибут задает начальный заголовок поля.
key = "eb_Dl"; - атрибут задает код поля, по которому к полю можно будет 
обратится из программ LISP
edit_width=10; - атрибут задает ширину поля ввода.
value = ""; - атрибут задает начальное значения поля ввода.
ok_cancel; - директива  которая является ссылкой на группу кнопок 
(ОК и Отмена), описанную в базовом файле AutoCAD “base.dcl”

Смотрите видео к этому уроку:


Таким образом в этой статье мы рассмотрели пример создания диалогового окна.

Чтобы лучше, понять, как работают директивы и атрибуты, поэкспериментируйте с ними, поменяйте какие либо значения, посмотрите, как это повлияет на результат.
Смотрите следующий урок, в котором мы объединим диалоговое окно DCL с LISP программой: Пример программы LISP с диалоговым окном.
Пишите в комментариях: все ли у вас получилось?; трудно ли было выполнить этот урок?;
где у вас возникли трудности? Я с удовольствием отвечу на все ваши комментарии.
Если вы хотите получать новости с моего сайта. Оформляйте подписку.
До новых встреч.
«Автор: Михаил Орлов»

Google

Также на эту тему Вы можете почитать:

Михаил Орлов

View Comments

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

    • Возможно, у Вас какая либо ошибка в тексте программы. Пришлите Вашу программу мне на почту: acadprog@gmail.com . Я посмотрю. Попробуйте скачать готовый текст программы с сайта.

  • Хм.. Консоль Visual LISP выдает сообщение: Не удается создать временный файл для DCL: "C:/Program Files/Autodesk/Acade 2012/$vld$.dcl".
    Текст сначала сам написал, потом Ваш вставил

    • Возможно у Вас кавычки “” отображаются в следующем виде «» . Должны быть только такие “”. Если проблема не в этом, пришлите Вашу программу мне на почту: acadprog@gmail.com. Я посмотрю. Попробуйте скачать готовый текст программы с сайта, щелкнув по надписи: Скачать DCL программу mp_paral.

    • У меня таже проблема: Не удается создать временный файл для DCL: "C:/Program Files/Autodesk/AutoCAD 2014/$vld$.dcl". Я думаю здесь проблема с правами доступа диска "С". Я сам изучаю уроки на рабочем компьютере, прав администратора нет. Может кто нибудь знает как изменить путь к папке для создания этого временного файла, например создать его где нибудь на другом диске?

  • Добрый день, Михаил! Спасибо за интересные уроки. Если Вас не затруднит, подскажите, пожалуйста, как изменить высоту текста в создаваемом диалоговом окне?

    • Насколько мне известно, высоту текста в диалоговом окне DCL изменить нельзя.

  • Все получилось, спасибо за проект.

Share
Published by
Михаил Орлов

Recent Posts

Программа расчета профиля

Программа "Расчет профиля" создана в помощь инженерам-проектировщикам, работающих с профилями. Автор программы, читатель моего сайта:…

8 лет ago

Как нарисовать прямоугольник в Автокаде.

Любой чертеж может быть разбит на простейшие элементы, примитивы.  В этом уроке мы познакомимся с…

9 лет ago

Как нарисовать дугу в Автокаде.

Как нарисовать дугу в Автокаде? Для этого в программе Автокад существует несколько способов. В этом…

9 лет ago

Как нарисовать круг в Автокаде.

Любой чертеж может быть разбит на простейшие элементы, примитивы.  В этом уроке мы познакомимся с…

9 лет ago

Автоматизация проектирования. Отвод.

В этой статье мы продолжим процесс автоматизации проектирования систем вентиляции. (далее…)

9 лет ago

Автоматизация проектирования.

Одним из эффективных способов автоматизации процесса проектирования в Автокад,  может послужить создание своих программ на…

9 лет ago