Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Книги_AutoCad_2 / Настройка AutoCAD_Sham_Tickoo-Customizing_2006г

.pdf
Скачиваний:
182
Добавлен:
09.04.2015
Размер:
9.06 Mб
Скачать

Экранные меню

301

Для записи файлов меню обычно используется какой-нибудь текстовый редактор или команда EDIT. Перед вами листинг файла экранного меню, обеспечивающего переключение описанных функций.

[-TOGGLE- ]

[]

[]

[]

[ORTHO

]^O

включает/выключает режим ORTHO

[SNAP

]^B

включает/выключает режим SNAP

[GRID

]^G

включает/выключает режим GRID

[CO-ORDS

]^D

включает/выключает режим COORDINATE DIAL

[TABLET

]^T

включает/выключает режим TABLET

[]

[ISOPLANE

]^E

включает/выключает режим ISOPLANE

[CURRENT

VIEWPORT]^V

изменяет текущее окно просмотра

Определение команды без пробелов и точки с запятой

Все определения команд, о которых мы уже говорили, содержали точку с запятой (;) или пробел, выполняющие функцию команды ENTER. Тем не менее, иногда может возникнуть необходимость определить элемент меню, не используя для этого пробелы или команду ENTER. Эту задачу можно выполнить с помощью одного из управляющих символов ASCII, который будет использоваться в качестве пробела (^H). Это особенно удобно в том случае, когда необходимо написать экранное меню для цифровой клавишной панели. Управляющий символ ^H может использоваться с любым другим символом или группой символов. Определение элемента меню, записанное без пробела или команды ENTER, имеет следующий формат:

[9]9X^H

где

9 — метка элемента меню;

9 — символ, возвращаемый при выборе этого элемента;

X — буква Х стирается пробелом ^H (вместо буквы Х можно использовать любой другой символ);

^H — управляющий символ, выполняющий функцию пробела.

Здесь ^H — управляющий символ ASCII, выполняющий функцию пробела. При выборе этого элемента меню, символ ^H стирает предыдущий символ (в данном случае Х) и возвращает только 9. Перед управляющим символом ^H должен всегда стоять символ Х (в этом качестве может использоваться любой символ). В строку элемента меню можно ввести несколько символов. После того как вы это сделаете, нажмите клавишу <Enter>, используя для этого клавиатуру или кодирующий преобразователь.

302

Глава 9

Пример 9

Напишите файл экранного меню, содержащего следующие символы (сохраните файл под именем sm9.mnu).

0

5

.

1

6

,

2

7

X

3

8

Y

4

9

Z

Ниже приведен листинг файла экранного меню, описанного в примере 9. С помощью этого меню вы сможете вводить различные символы, не используя команду ENTER.

[-KEYPAD- ]

[]

[]

[]

[0]0Y^H

возвращает 0

[1]1Y^H

возвращает 1

[2]2Y^H

возвращает 2

[3]3Y^H

возвращает 3

[4]4Y^H

возвращает 4

[5]5Y^H

возвращает 5

[6]6Y^H

возвращает 6

[7]7Y^H

возвращает 7

[8]8Y^H

возвращает 8

[9]9Y^H

возвращает 9

[.].Y^H

возвращает точку (.)

[,],Y^H

возвращает запятую (,)

[]

используется для отображения пробела в экранном меню

[X]XX^H

возвращает X

[Y]YY^H

возвращает Y

[Z]ZZ^H

возвращает Z

Примечание

Чтобы обеспечить ввод дополнительных данных, можете после возвращаемого символа поставить обратную косую черту. Например, строка [2]2\ вначале возвратит 2, а затем создаст паузу, которая позволит пользователю ввести какие-либо данные. Ниже приведен листинг файла, в котором используется обратная косая черта, позволяющая вводить другие символы.

[-KEYPAD-

]

[6]6\

[

]

[7]7\

[

]

[8]8\

[

]

[9]9\

[0]0\

 

[.].\

[1]1\

 

[,],\

[2]2\

 

[]

[3]3\

 

[X]X\

[4]4\

 

[Y]Y

[5]5\

 

[Z]Z\

Экранные меню

303

Элементы меню, работающие в режиме выбора одного объекта

Функция выбора объекта, выполняемая с помощью опции Single команды ERASE, в сочетании с функцией повторения элементов меню является мощным инструментом редактирования.

[ERASE]*^C^CERASE Single

Здесь

* — повторение элемента меню;

Single — опция команды ERASE (СТЕРЕТЬ), используемая для выбора одного объекта.

Вэтой строке содержится метка элемента меню, заключенная в квадратные скобки,

изнак “звездочка”, который обеспечивает повторное выполнение элемента меню. ^C^C дважды отменяет существующую команду. ERASE —команда AutoCAD, используемая для удаления выбранного объекта. Опция Single позволяет пользователю выбрать один объект, после чего AutoCAD автоматически завершает процесс выделения объектов. Затем выполняется команда ERASE, которая “стирает” выделенный объект.

При выборе точки, находящейся в пустой области (при отсутствии какого-либо объекта), AutoCAD автоматически переходит к одной из стандартных опций выбора — Crossing (Секущая рамка) или Window (Рамка). При растягивании окна в левую сторону создается так называемая секущая рамка (в этом случае выбирается объект, пересекшийся с контуром рамки). Если окно растягивается в правую сторону, выбирается опция Window (Рамка). В этом случае выделяется объект, который полностью попал в созданную область. Звездочка, введенная в строку определения, обеспечивает повторное выполнение элемента меню.

Использование функций AutoLISP в определении меню

При записи определений команд можно успешно сочетать элементы меню с переменными и выражениями языка AutoLISP. В этом случае при выборе элемента меню вначале вычисляются все содержащиеся в нем выражения, а затем генерируются результаты вычислений. Использование переменных и выражений AutoLISP иллюстрируется следующим примером. (Для получения дополнительной информации по языку AutoLISP обратитесь к главам 12 и 13.)

Пример 10

Напишите программу AutoLISP, с помощью которой вы сможете начертить квадрат. Затем напишите определение экранного меню, использующее для построения этой фигуры различные выражения и переменные AutoLISP.

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

304 Глава 9

(DEFUN C:SQR() (SETVAR "CMDECHO" 0)

(SETQ P1 (GETPOINT "\n ENTER STARTING POINT: ")) (SETQ S (GETDIST "\n ENTER LENGTH OF SIDE: ")) (SETQ P2 (LIST (+ (CAR P1) (CADR P1)))

(SETQ P3 (POLAR P2 (/ PI 2) S))

(SETQ P4 (POLAR P1 (/ PI 2) S)) (COMMAND "PLINE" P1 P2 P3 P4 "C") (SETVAR "CMDECHO" 1)

(PRINC)

)

Ниже представлен листинг файла экранного меню, использующего переменные и выражения AutoLISP для построения квадрата с заданными размерами:

[-SQUARE-]

 

 

[

]

 

 

 

[

]

 

 

 

[SQUARE:](SETQ P1(GETPOINT "ENTER STARTING POINT:+"));\+

(SETQ S (GETDIST "ENTER LENGTH OF SIDE: "));+

(SETQ P2 (LIST (+ (CAR P1) (CADR P1)))+

(SETQ P3

(POLAR P2

(/ pi 2)

S))+

(SETQ P4

(POLAR P1

(/ pi 2)

S));+

PLINE !P1 !P2 !P3 !P4 C

Если вы сравните программу AutoLISP с файлом определения экранного меню, то заметите, что операторы, обеспечивающие ввод требуемых данных, и операторы, выполняющие необходимые вычисления, совершенно одинаковы. Таким образом, переменные и выражения AutoLISP могут использоваться в файле меню для настройки программы AutoCAD.

Использование выражений DIESEL

В определениях элементов экранного, планшетного, раскрывающегося и кнопочного меню могут также использоваться выражения, написанные на языке DIESEL. В этом случае при выборе элемента меню системной переменной MODEMACRO автоматически присваивается определенное значение, отображаемое затем в строке состояния. Использование выражений DIESEL в экранном меню иллюстрируется следующим примером.

Пример 11

Напишите файл экранного меню, с помощью которого вы сможете загрузить макрос DIESEL, обеспечивающий отображение следующей информации в строке состояния:

Макрос 1

Макрос 2

Макрос 3

Название проекта

Ширина полилинии

Dimtad

Имя чертежа

Радиус сопряжения

Dimtix

Текущий слой

Величина смещения

Dimscale

 

 

 

Перед вами листинг файла экранного меню, содержащего определения трех макросов DIESEL. Для загрузки меню можно использовать команду MENU, указав имя нужного файла. При выборе первого элемента меню (DIESEL1) на экране автоматически отобразится новая строка состояния, содержащая соответствующие данные (рис. 9.12).

Экранные меню

305

***screen

[*DIESEL*] [DIESEL1:]^C^MODEMACRO;$M=Cust-Acad,N:$(GETVAR,DWGNAME),+ L:$(GETVAR,CLAYER); [DIESEL2:]^C^CMODEMACRO;$M=PLWID:$(GETVAR,PLINEWID),+ FRAD:$(GETVAR,FILLETRAD),OFFSET:$(GETVAR,OFFSETDIST),+ LTSCALE:$(GETVAR,LTSCALE); [DIESEL3:]^C^CMODEMACRO;$M=DTAD:$(GETVAR,DIMTAD),+ DTIX:$(GETVAR,DIMTIX),DSCALE:$(GETVAR,DIMSCALE);

Рис. 9.12. Экранное меню и строка состояния для примера 11

Для загрузки макросов DIESEL можно также использовать команду $M=. AutoCAD вычислит строковое выражение DIESEL, стоящее после знака “равно” (=); при этом значение, возвращенное выражением DIESEL, станет частью элемента меню.

Пример

[SCR-MODE]SCREENMODE $M=$(-,1,$(GETVAR,SCRENMODE))

В этом примере программа AutoCAD вычисляет строковое выражение $(-,1,$(GETVAR, SCRENMODE)). Команда GETVAR извлекает значение системной переменной SCREENMODE, а затем вычитает его из 1. Если значение системной переменной SCREENMODE равно 1, выражение DIESEL возвращает 0, а если значение этой переменной равно 0, строковое выражение возвращает значение 1. Значение, возвращенное выражением DIESEL, присваивается системной переменной SCREENMODE.

306

Глава 9

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

Задания для самопроверки

Ответьте на следующие вопросы и сравните свои ответы с правильными ответами, приведенными в конце этой главы.

1.Определение команды, содержащее несколько команд, записанных в одной строке, называется также ________.

2.Команда может быть повторена, если определение элемента меню начинается символом ________.

3.Автоматический свопинг экранного меню обеспечивается системной переменной

________.

4.Для загрузки подменю используется команда _________.

5.Для отображения новой строки состояния используется системная переменная

________.

6.Выражение ________, введенное в элемент меню, позволяет включать и выключать эхо команды.

7.Если оператор не помещается на одной строке, его можно перенести на вторую строку, поставив знак ________ в конце первой строки.

8.Для загрузки или создания ссылки на подменю в элемент меню вводится ______.

9.Определение команды, не содержащее пробелов или точки с запятой, может быть записано с помощью ________.

Повторение пройденного материала

Ответьте на следующие вопросы.

1.В программе AutoCAD файлы меню могут содержать не более ________ основных разделов.

2.Подменю обозначается символом ________.

3.Часть элемента меню, заключенная в квадратные скобки, используется только для

_________.

4.В экранном меню могут быть отображены только первые ________ символов.

5.Если в квадратных скобках содержится более восьми символов, экранное меню

_________ работает.

6.Чтобы отменить существующую команду, введите в файл меню выражение ____.

7.Чтобы создать паузу, которая может быть использована для ввода пользовательских данных, введите в определение экранного меню символ ________.

8.В метке элемента меню ________ использоваться как прописные, так и строчные символы.

9.В имени подменю может содержаться не более _________ символов.

10.Максимальное количество доступных элементов экранного меню определяется

_________.

Экранные меню

307

Упражнения

Упражнение 5 (Общее)

Напишите экранное меню, содержащее следующие команды AutoCAD (сохраните файл меню под именем sme5.mnu).

POLYGON (Center)

POLYGON (Edge)

ELLIPSE (Center)

ELLIPSE (Axis End point)

CHAMFER

EXPLODE

COPY

Упражнение 6 (Общее)

Напишите экранное меню, содержащее следующие команды AutoCAD. Если необходимо, можете создать несколько подменю. Сохраните файл экранного меню под именем

sme6.mnu.

ARC

ROTATE

-3P

ARRAY

-SCE

DIVIDE

-CSE

MESURE

BLOCK

LAYER

INSERT

WBLOCK

SET

MINSERT

LIST

Упражнение 7 (Общее)

Напишите определение элемента экранного меню, при выборе которого будет создан чертеж, содержащий определенные слои и типы линий. Сохраните файл экранного меню под именем sme6.mnu.

Имя слоя

Цвет

Тип линий

0

WHITE

CONTINUOS

OBJECT

RED

CONTINUOS

HIDDEN

YELLOW

HIDDEN

CENTER

BLUE

CENTER

DIM

GREEN

CONTINUOS

Упражнение 8 (Общее)

Напишите экранное меню для команд, показанных на рис. 9.13. Для загрузки меню OSNAP используйте элемент “********”, а для возвращения в корневое меню используйте элемент “MENU-8”. Сохраните созданный файл под именем sme6.mnu.

308 Глава 9

Рис. 9.13. Схема экранного меню

Упражнение 9 (Общее)

Напишите комбинированное раскрывающееся и экранное меню, содержащее следующие команды AutoCAD. Для выбора различных опций команды LINE может быть использовано каскадное меню. Выбор того или другого элемента должен обеспечивать автоматическую загрузку соответствующего экранного меню и его последующее отображение.

LINE

ZOOM All

TIME

Continue

ZOOM Win

LIST

Close

ZOOM Pre

DISTANCE

Undo

PAN

AREA

.X

DBLIST

 

.Y

STATUS

 

.Z

 

 

CIRCLE

 

 

ELLIPSE

 

 

Макеты экранного и раскрывающегося меню показаны на рис. 9.14 и 9.15.

Упражнение 10 (Общее)

Напишите раскрывающееся, экранное и планшетное меню, содержащее следующие команды AutoCAD. Выбор какой-либо команды из накладного шаблона или меню должен обеспечивать загрузку соответствующего экранного меню и его отображение на экране. Макет экранного меню показан на рис. 9.16.

LINE

BLOCK

PLINE

WBLOCK

CIRCLE C,R

INSERT

CIRCLE C,D

BLOCK LIST

ELLIPSE AXIS ENDPOINT

ATTDEF

ELLIPSE CENTER

ATTEDIT

Экранные меню

309

Рис. 9.14. Макет экранного меню для упражнения 9

 

Рис. 9.15. Макет раскрывающегося меню для упражнения 9

Рис. 9.16. Макет экранного меню для упражнения 10

310

Глава 9

Упражнение 11 (Общее)

Напишите раскрывающееся, экранное и мозаичное меню, содержащее команды, показанные на рис. 9.17. Выбор какой-либо команды из меню должен обеспечивать загрузку соответствующего экранного меню и его отображение на экране.

Рис. 9.17. Макет экранного, раскрывающегося и мозаичного меню для упражнения 11

Упражнение 12 (Общее)

Напишите экранное, планшетное, раскрывающееся и мозаичное меню для вставки следующих команд. B1–B15 имена блоков.

BLOCK

 

 

WBLOCK

 

 

ATTDEF

 

 

LIST

 

 

INSERT

BL6

BL11

BL1

BL2

BL7

BL12

BL3

BL8

BL13

BL4

BL9

BL14

BL5

BL10

BL15

Упражнение 13 (Общее)

Напишите раскрывающееся и экранное меню, содержащее следующие команды AutoCAD. Для команд ARC и CIRCLE можете использовать подменю. При выборе какойлибо команды из меню должно загружаться соответствующее экранное меню.

Макет, показанный на рис. 9.18, является одним из возможных вариантов раскрывающегося меню. Команды ARC и CIRCLE располагаются в отдельных группах, которые будут определены в файле в виде подменю. Макет экранного меню показан на рис. 9.19.

Соседние файлы в папке Книги_AutoCad_2