Книги_AutoCad_2 / Настройка AutoCAD_Sham_Tickoo-Customizing_2006г
.pdf
562 |
Глава 15 |
Строки 29–31
(action_tile "aperture_slider"
"(draw_size (setq aprt_size (atoi $value)))") (action_tile "accept" "(do_setvars)(done_dialog)")
Функция действия $value извлекает строковое значение, присвоенное активному элементу slider, а функция atoi преобразует полученное значение в целое число. Затем это значение используется функцией draw_size для построения векторного изображения перекрестья курсора. Элемент “ползунок”, определенный в файле DCL, имеет имя aperture_slider. Третья строка выполняет функцию do_setvars и закрывает диалоговое окно при выборе кнопки ОК. Функции draw_size и do_setvars определены в программе AutoLISP.
Строки 36 и 37
(defun do_setvars ()
(setvar "aperture" aprt_size)
Функция defun определяет функцию do_setvars. Функция setvar присваивает системной переменной aperture значение, равное значению переменной aprt_size.
Строки 42 и 43
(defun draw_size (aprt_size)
(setq x1 (- (/ x_aperture 2) aprt_size))
В первой строке определяется функция draw_size с аргументом aprt_size, а во второй — вычисляется координата Х первого вектора.
Повторение пройденного материала
Ответьте на следующие вопросы.
1.В каждом файле, написанном на языке управления диалогом (DCL), может содержаться описание одного или нескольких диалоговых окон. (Да/Нет)
2.Файлы DCL позволяют отказаться от определения размеров и компоновки диалоговых окон или их составляющих. (Да/Нет)
3.Диалоговые окна не зависят от платформы, поэтому они подходят для любой системы, которая поддерживает программу AutoCAD. (Да/Нет)
4.Диалоговые окна могут содержать несколько кнопок ОК. (Да/Нет)
5.Атрибутам, используемым в файлах DCL, могут назначаться как целочисленные, так и вещественные значения. (Да/Нет)
6.Зарезервированные имена, используемые в языке DCL, должны вводиться с учетом регистра клавиатуры. (Да/Нет)
7.Атрибут метки, используемый при определении кнопки, не имеет значения, присваиваемого по умолчанию. (Да/Нет)
8.В диалоговом окне может быть только одна кнопка с атрибутом is_default, имеющим значение true. (Да/Нет)
9.Функция load_dialog обеспечивает отображение диалогового окна на экране. (Да/Нет)
Программирование диалоговых окон с помощью языка Dialog Control Language 563
10.Нельзя выбрать элемент управления, используя ускоряющую клавишу, назначенную этому элементу. (Да/Нет)
11.Мнемонические символы, используемые при определении ускоряющих клавиш, чувствительны к регистру клавиатуры. (Да/Нет)
12.Битовые флаги не могут суммироваться для определения нескольких режимов объектной привязки. (Да/Нет)
13.Переключатель (селективная кнопка) является предопределенным атрибутом. (Да/Нет)
14.Группы переключателей должны быть организованы в столбцы. (Да/Нет)
15.Активное текстовое окно может быть использовано для ввода или редактирования многострочного текста. (Да/Нет)
16.Атрибут width обеспечивает автоматическое растягивание элемента на всю ширину диалогового окна. (Да/Нет)
17.Элемент slider возвращает строковое значение. (Да/Нет)
18.Форматное соотношение представляет собой отношение ширины окна изображения к его высоте. (Да/Нет)
19.Атрибут color может использоваться с окном изображения для определения цвета фона. (Да/Нет)
20.Функция vector_image может быть использована для построения векторов в окне графического редактора. (Да/Нет)
21.Функция $value используется для получения вещественных значений, присвоенных элементам диалогового окна. (Да/Нет)
22.Основные элементы управления, к которым относятся кнопки, текстовые окна и изображения, определены функцией ________, имеющейся в программе AutoCAD.
23.Метка кнопки располагается ________ окна, образующего этот элемент.
24.Атрибут ________ используется для присваивания имен элементам диалоговых окон.
25.Атрибут метки, используемый в блочном столбце, представляет собой строковое выражение, взятое в ________.
26.Атрибут ________ позволяет регулировать ширину элементов диалогового окна.
27.Команда, используемая для загрузки диалогового окна, имеет формат ________.
28.Функция AutoLISP ________ используется для инициализации диалогового окна и последующего отображения этого окна на экране.
29.Функция AutoLISP ________ используется для приема информации, введенной пользователем.
30.Функция AutoLISP ________ используется для создания ассоциативной связи между выражением действия и элементом управления диалогового окна.
31.Функция AutoLISP ________ может быть использована для получения результата выполнения логической операции AND (И).
32.Атрибут edit_width определяет размер текстового окна, выраженный в количестве ________.
564Глава 15
33.Элемент image (“изображение”) используется для отображения ________ информации.
34.Значение, присваиваемое по умолчанию атрибуту max_value, равно ________.
35.Значение, присваиваемое по умолчанию атрибуту big_increment, равняется ___
_____ шкалы ползунка.
36.Функция AutoLISP ________ используется для заливки окна изображения определенным цветом.
Упражнения
Упражнение 1 (Общее)
Используя язык управления диалогом (DCL), напишите программу для диалогового окна, показанного на рис. 15.19. Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех функций, описанных в этом окне.
Рис. 15.19. Диалоговое окно, используемое для выбора режима работы
Упражнение 2 (Общее)
Напишите программу DCL для диалогового окна Isometric Snap/Grid, показанного на рис. 15.20. Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех функций, показанных в этом окне.
Рис. 15.20. Диалоговое окно Isometric Snap/Grid |
Программирование диалоговых окон с помощью языка Dialog Control Language 565
Упражнение 3 (Общее)
Напишите программу DCL для диалогового окна, с помощью которого вы сможете вставлять ранее определенные блоки (рис. 15.21). Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех указанных функций. Значения, содержащиеся в текстовых окнах и определяющие координаты точки вставки, масштабный коэффициент и угол поворота, заданы по умолчанию.
Рис. 15.21. Диалоговое окно, используемое для вставки блоков |
Упражнение 4 (Общее)
Напишите программу DCL для диалогового окна, с помощью которого вы сможете выбирать формат отображения и точность измерения угловых величин (рис. 15.22). Также напишите программу AutoLISP, которая загрузит это диалоговое окно, выведет его на экран и обеспечит выполнение всех функций, описанных в этом окне.
Рис. 15.22. Диалоговое окно, используемое для выбора форма- |
та и точности отображения угловых величин |
Глава 16
DIESEL: язык строковых выражений
Цель занятия
Познакомившись с материалом этой главы, вы научитесь:
•использовать возможности DIESEL для настройки строки состояния;
•использовать системную переменную MODEMACRO;
•писать макровыражения на языке DIESEL;
•применять язык AutoLISP с системной переменной MODEMACRO.
568 |
Глава 16 |
DIESEL: язык строковых выражений
DIESEL (Direct Interactively Evaluated String Expression Language) — язык строковых выражений. Используя этот язык, можно отобразить определяемую пользователем текстовую строку (макровыражение) в строке состояния, изменив значение системной переменной MODEMACRO. Этой переменной присваиваются только строковые значения, что обеспечивает генерирование данных строкового типа. Писать макровыражения на языке DIESEL довольно просто, поэтому этот язык является мощным средством настройки AutoCAD. Однако следует заметить, что DIESEL работает медленно и поэтому не может использоваться так, как AutoLISP или DCL. Например, с помощью AutoLISP можно записать и присвоить требуемое значение системной переменной MODEMACRO или определить выражения MODEMACRO в файле меню. В этой главе вы найдете подробное описание функций DIESEL, а также познакомитесь со способами их использования при записи макровыражений.
Строка состояния
Строка состояния находится в нижней части графического окна программы AutoCAD (рис. 16.1). В этой строке отображается необходимая информация и содержатся инструменты, позволяющие изменять состояние некоторых функций AutoCAD. Чтобы изменить текущее состояние, достаточно щелкнуть мышью на соответствующей кнопке. Например, для того чтобы отобразить линии сетки на экране, щелкните на кнопке GRID (СЕТКА). Если же требуется перейти в пространство листа, щелкните на кнопке MODEL/PAPER (МОДЕЛЬ/ЛИСТ). Строка состояния содержит следующую информацию:
Полярное |
отслеживание |
Объектная привязка |
|
Режим ортогональности |
Объектное отслеживание |
|
|
Отображение сетки |
Отображение линий в соответствии |
с толщиной |
|
Шаговая привязка |
Пространство модели или листа |
|
|
Рис. 16.1. Строка состояния с настройками, заданными по умолчанию
Счетчик координат. Координаты, отображаемые в строке состояния, могут быть статическими или динамическими. В статической системе координат значения, выводимые в строке состояния, изменяются только при определении точки. В свою очередь, при использовании динамических координат (стандартная настройка) программа AutoCAD постоянно отображает абсолютные координаты, определяющие текущее положение курсора относительно начала координат пользовательской системы координат (ПСК). При выполнении определенных команд программа AutoCAD может также определять положение курсора в полярных координатах (длина — угол). Ниже описываются другие кнопки, имеющиеся в строке состояния.
SNAP. Кнопка SNAP (ШАГ) позволяет включать или выключать режим привязки к точкам сетки с определенным настраиваемым шагом (в этом случае перемещения осуществляются по прямолинейным сегментам с заданным шагом) или к углам (вблизи определенных углов перемещения осуществляются только по сегментам с заданным шагом).
DIESEL: язык строковых выражений |
569 |
GRID. Кнопка GRID (СЕТКА) позволяет включать или выключать сетку из точек с настраиваемым шагом, отображаемую в зоне лимитов.
ORTHO. Кнопка ORTHO (ОРТО) включает или выключает режим ортогональности. Если этот режим включен, линии могут быть проведены только в вертикальном или горизонтальном направлении.
POLAR. Кнопка POLAR (ОТС-ПОЛЯР) включает или выключает режим полярного отслеживания, параметры которого определяются на вкладке Polar Tracking (Полярное отслеживание) диалогового окна Drafting Settings (Настройки рисования).
OSNAP. Кнопка OSNAP (ПРИВЯЗКА) позволяет включать или выключать режим постоянного действия заданных функций объектной привязки. При выключении этой кнопки текущие объектные привязки временно отключаются. Состояние режима OSNAP (Off (Откл.) или On (Вкл.)) не влияет на использование обычных объектных привязок.
OTRACK. Кнопка OTRACK (ОТС-ОБЪЕКТ) позволяет включать или выключать режим объектного отслеживания, благодаря которому программа AutoCAD может использовать полярное отслеживание от промежуточной точки, указываемой с применением объектной привязки.
LWT. Кнопка LWT (ТОЛЩИНА) включает или выключает режим отображения толщины элементов чертежа. Толщина линии — это ширина, с которой линия будет выводиться на внешнее устройство.
MODEL/PAPER. Кнопка MODEL/PAPER (МОДЕЛЬ/ЛИСТ) позволяет переключаться между пространствами модели и листа. Когда вы работаете в пространстве модели, в строке состояния отображается кнопка MODEL. При переходе в пространство листа вместо нее появляется кнопка PAPER.
Системная переменная MODEMACRO
Системная переменная MODEMACRO может быть использована для отображения новой текстовой строки в строке состояния. С помощью этой переменной можно также вывести значение, возвращаемое макровыражением, написанным на языке DIESEL. (С этим языком вы познакомитесь в следующих разделах этой главы.) MODEMACRO — системная переменная AutoCAD, поэтому для того чтобы присвоить этой переменной какое-либо значение, можно ввести выражение MODEMACRO в командную строку или воспользоваться командой SETVAR. Представьте, например, что вам необходимо ввести в строку состояния выражение “Customization AutoCAD”. Для этого введите выражение SETVAR в командную строку и нажмите клавишу <Enter>. Когда появится приглашение на ввод имени системной переменной, введите MODEMACRO и нажмите клавишу <Enter> еще раз. Теперь можно ввести текст, который вы хотите отобразить в строке состояния. Как только вы введете “Customization AutoCAD” и нажмете клавишу <Enter>, в строке состояния появится новое выражение.
Command: MODEMACRO
◊◊◊
Команда: MODEMACRO
или
Command: SETVAR
Variable name or ?: MODEMACRO
570 |
Глава 16 |
Enter new value for MODEMACRO, or . for none <"">:
Customization AutoCAD
◊◊◊
Команда: SETVAR
Имя переменной или?: MODEMACRO
Новое значение MODEMACRO или точка (.), если его нет <"">:
Customization AutoCAD
Можно также ввести выражение MODEMACRO в командную строку, а затем ввести текст, который вы хотите отобразить в строке состояния.
Command: MODEMACRO
Enter new value for MODEMACRO, or . for none <"">:
Customization AutoCAD
◊◊◊
Команда: MODEMACRO
Новое значение MODEMACRO или точка (.), если его нет <"">:
Customization AutoCAD
Измененное значение системной переменной MODEMACRO сохранится до тех пор, пока вы не введете новое значение, не начнете новый или не откроете уже существующий чертеж. Если вы хотите отобразить в строке состояния стандартный текст, при появлении приглашения Enter new value for MODEMACRO, or . for none <"">: введите точку (.). Значение, присвоенное системной переменной MODEMACRO, не сохраняется ни в чертеже, ни в конфигурационных или системных файлах.
Command: MODEMACRO
Enter new value for MODEMACRO, or . for none <"">: .
Настройки строки состояния
Инструментальные средства, содержащиеся в строке состояния, можно разделить на две части: область переключения режимов и счетчик координат. Область переключения режимов содержит следующие кнопки: Snap (Шаг), Grid (Сетка), Ortho (Орто), Polar Tracking (Полярное отслеживание), Object Snap (Объектная привязка), Object Tracking (Объектное отслеживание), Lineweight (Толщина линий) и Model Space (Модельное пространство) (см. рис. 16.1). Счетчик координат отображает координаты X, Y и Z, которые определяют положение курсора на графическом экране. Чтобы привести строку состояния в соответствие с вашими потребностями, присвойте системной переменной MODEMACRO требуемое значение. Значение, назначенное этой переменной, выравнивается по левому краю строки состояния, которая располагается в нижней части окна программы AutoCAD. Количество символов, которые могут отобразиться в строке состояния, определяется характеристиками вашего монитора и размерами окна AutoCAD. Поле счетчика координат не изменяется и не редактируется.
Информация, отображаемая в строке состояния, может принести немало пользы. Поэтому выбирая данные, которые вы собираетесь вывести в этой строке, необходимо соблюдать определенную осмотрительность. Например, работая над каким-либо проектом, можете ввести в строку состояния название этого проекта. Если во время работы используется несколько размерных стилей, в строке состояния можно отобразить имя текущего стиля (DIMSTYLE). Точно так же, если у вас имеется несколько текстовых файлов,
