
Книги_AutoCad_2 / Настройка AutoCAD_Sham_Tickoo-Customizing_2006г
.pdf
Раскрывающиеся и неполные меню, меню быстрого вызова команд... |
181 |
где
•$1=IMAGE1 — загрузка подменю IMAGE1;
•$1=* — отображение диалогового окна.
В этом пункте меню содержится две команды загрузки. При выполнении первой команды ($1=IMAGE1) происходит загрузка графического подменю IMAGE1, определенного в файле меню, в разделе графического меню. При выполнении второй команды ($1=*) на экране появляется новое диалоговое окно.
Пример 5
Напишите раскрывающееся меню, содержащее следующие команды AutoCAD. Для выполнения команд ARC и CIRCLE используйте подменю.
LINE |
|
BLOCK |
QUIT |
PLINE |
|
INSERT |
SAVE |
ARC |
3P |
WBLOCK |
PLOT |
ARC |
|
|
|
ARC |
SCE |
|
|
ARC |
SCA |
|
|
ARC |
CSE |
|
|
ARC |
CSA |
|
|
ARC |
CSL |
|
|
CIRCLE |
|
|
|
CIRCLE |
C,R |
|
|
CIRCLE |
C,D |
|
|
CIRCLE |
2P |
|
Шаг 1: проектирование меню
Макет, показанный на рис. 5.15, является одним из возможных вариантов создаваемого меню. Команды ARC и CIRCLE образуют группы, которые будут определены в файле меню как отдельные подменю.
Рис. 5.15. Проект меню для примера 5

182 |
Глава 5 |
Шаг 2: Запись файла меню
Ниже приведен листинг файла меню для примера 5. Номера строк не являются час-
тью файла, а используются только в качестве ссылок.
***POP1 |
1 |
**P1A |
2 |
[DRAW] |
3 |
[LINE]^C^CLINE |
4 |
[PLINE]^C^CPLINE |
5 |
[--] |
6 |
[ARC]^C^C$P1=P1B $P1=* |
7 |
[CIRCLE]^C^C$P1=P1C $P1=* |
8 |
[--] |
9 |
[Exit]^C |
10 |
**P1B |
11 |
12 |
|
[ARC] |
13 |
[ARC,3P]^C^CARC |
14 |
[ARC,SCE]^C^CARC \C |
15 |
[ARC,SCA]^C^CARC \C \A |
16 |
[ARC,CSE]^C^CARC C |
17 |
[ARC,CSA]^C^CARC C \\A |
18 |
[ARC,CSL]^C^CARC \\L |
19 |
[--] |
20 |
[PREVIOUS]$P1=P1A $P1=* |
21 |
**P1C |
22 |
23 |
|
[CIRCLE] |
24 |
[CIRCLE C,R]^C^CCIRCLE |
25 |
[CIRCLE C,D]^C^CCIRCLE \D |
26 |
[CIRCLE 2P]^C^CCIRCLE 2P |
27 |
[--] |
28 |
[PREVIOUS]$P1=P1A $P1=* |
29 |
***POP2 |
30 |
31 |
|
[BLOCKS] |
32 |
[BLOCK]^C^CBLOCK |
33 |
[INSERT]^C^CINSERT |
34 |
[WBLOCK]^C^CWBLOCK |
35 |
[--] |
36 |
[EXIT]$P1=P1A $P1=* |
37 |
***POP3 |
38 |
39 |
|
[UTILITY] |
40 |
[SAVE]^C^CSAVE |
41 |
[QUIT]^C^CQUIT |
42 |
[----] |
43 |
[PLOT]^C^CPLOT |
44 |
[----] |
45 |
[Exit]^C |
46 |
|
47 |

Раскрывающиеся и неполные меню, меню быстрого вызова команд... |
183 |
Строка 2
**P1A
В этой строке выражение **P1A определяет подменю P1A. Две звездочки (**), стоящие в начале строки, указывают на то, что это выражение является именем подменю. Подменю может иметь любое действительное имя. В этом примере выбрано имя P1A, с помощью которого можно легко определить местоположение создаваемого подменю. Буква “P” указывает на то, что это подменю. “1” обозначает, что это первое меню (POP1), а буква “A” указывает на первое подменю в этом разделе.
Рис. 5.16. Раскрывающееся меню Arc, заменившее меню Draw
Строка 6
[--]
Два дефиса, заключенных в квадратные скобки, будут автоматически развернуты на полную ширину меню. Пункт меню, содержащий эти символы, не может использоваться для определения команды. Если в строке находится определение команды, данная команда игнорируется. Например, если строка содержит выражение [--]^C^CLINE, команда ^C^CLINE будет проигнорирована.
Строка 7
[ARC]^C^C$P1=P1B $P1=*
Команда $P1=P1B, содержащаяся в этой строке, загружает подменю P1B и назначает его первому разделу меню (РОР1), но при этом элементы нового меню на экране не отображаются. Чтобы исправить это положение, в строку введена команда $P1=*, которая обеспечивает отображение нового меню.
Например, при выборе пункта CIRCLE из первого меню (POP1) название DRAW, содержащееся в строке меню, заменяется заголовком CIRCLE, но элементы введенного меню не отображаются на экране. Теперь если вы выберете название CIRCLE из строки меню, в меню появится команда, определенная в подменю CIRCLE. Чтобы обеспечить отображение меню, назначенного POP1, используется специальная команда $P1=*, имеющаяся в программе AutoCAD. При выборе элемента CIRCLE из первого меню (POP1), загружается подменю CIRCLE и его элементы автоматически выводятся на экран.
Строка 21
[EXIT]^C
При выборе этого элемента текущее меню закрывается. Тем не менее, выполнение этой команды не дает вам возможности вернуться в предыдущее подменю (DRAW). Если вы обратите внимание на строку меню, то заметите, что вместо названия ARC появился заголовок DRAW. Таким образом, выход из подменю себя не оправдывает. В этом случае лучше вернуться к первому меню или определить команду, которая автоматически загружает предыдущее меню, после чего отменяет текущее.
[EXIT]$P1=P1A $P1=* ^C^C

184 |
Глава 5 |
Строка 29
[PREVIOUS]$P1=P1A $P1=*
Команда $P1=P1A, находящаяся в этой строке, загружает подменю P1A, которое в данном случае является предыдущим. Для загрузки предыдущего меню также можно использовать команду $P1=. Команда $P=*, в свою очередь, обеспечивает отображение элементов, содержащихся в подменю P1A.
Примечание
При перестановке раскрывающихся меню количество имеющихся меню увеличивается. Например, файл меню загружает восемь меню (с POP1 по POP8). Затем с помощью неполного меню или стандартной программы LISP в раздел РОР5 вставляется новое меню. В результате этого количество существующих меню увеличивается на единицу. Таким образом, при выполнении команды $P7=P7A $P=* загружается новое меню P7A, которым заменяется меню POP6. При этом меню POP6 переносится в раздел POP7.
Шаг 3: загрузка файла меню
Сохраните созданный вами файл меню, а затем загрузите его с помощью команды MENU (МЕНЮ). О том, как это сделать, рассказывается в предыдущем примере.
Неполные меню
В AutoCAD используется концепция основных (базовых) и неполных меню. Под основным меню понимается последнее меню, загруженное с помощью команды MENU. Неполное или частичное меню — меню, загруженное с помощью команды MENULOAD
(в AutoCAD 2006 она была заменена командой CUILOAD). В программе AutoCAD имеется возможность, позволяющая пользователям записывать собственные меню и вводить их в строку меню. Например, в операционной системе Windows можно записывать неполные меню и определения ускоряющих клавиш, а также создавать панели инструментов. Программа AutoCAD дает возможность загружать созданное меню и использовать его вместе со стандартными меню. Например, загрузив неполное меню, вы получаете возможность работать с ним так, как с обычным меню. Можно также выгрузить те меню, которые вам больше не нужны. Эти возможности значительно упрощают использование меню, которые создаются разработчиками и пользователями AutoCAD.
Метки разделов меню
Ниже приводится описание дополнительных меток разделов меню.
Метка раздела |
Описание |
***MENUGROUP |
Имя группы файла меню |
***TOOLBARS |
Определение панели инструментов |
***HELPSTRING |
Оперативно-доступная помощь |
***ACCELERATORS |
Определения ускоряющих клавиш |
Запись неполного меню
Процедура записи неполного меню может быть проиллюстрирована следующим примером.

Раскрывающиеся и неполные меню, меню быстрого вызова команд... |
185 |
Пример 6
В этом примере вы напишете неполное меню для Windows. Как показано на рис. 5.17, файл меню содержит два раздела: POP1 (MyDraw) и POP2 (MyEdit).
Рис. 5.17. Раскрывающиеся меню для примера 6
Шаг 1: запись файла меню
Для записи файла меню обычно используется какой-нибудь текстовый редактор. Введите в окно редактора следующий текст и сохраните файл под именем mymenu1.mnu. Ниже приведен листинг файла меню, описываемого в этом примере.
***MENUGROUP=Menu1 |
1 |
***POP1 |
2 |
[/MMyDraw] |
3 |
[/LLine]^C^Cline |
4 |
[/Ccircle]^C^Ccircle |
5 |
[/AArc]^C^Carc |
6 |
[/EEllipse]^C^Cellipse |
7 |
***POP2 |
8 |
[/EMyEdit] |
9 |
[/EErase]^C^Cerase |
10 |
[/CCopy]^C^Ccopy |
11 |
[/MMove]^C^Cmove |
12 |
[/OOffset]^C^Coffset |
13 |
Строка 1
***MENUGROUP=Menu1
В этой строке содержится метка раздела MENUGROUP и именная метка Menu1, присвоенная группе меню. Определения разделов меню всегда должны начинаться с метки MENUGROUP. Имя группы меню (в данном случае Menu1) представляет собой буквенноцифровое выражение, длина которого может достигать 32 символов, исключая пробелы и знаки пунктуации. В файле меню может быть только одна группа MENUGROUP. Метки разделов должны начинаться тремя звездочками *** (***MENUGROUP).
Строка 2
***POP1
Здесь POP1 — метка раздела меню. К этому разделу принадлежат элементы, содержащиеся в строках 3–7. В свою очередь, пункты меню, занимающие строки с 9 по 13, принадлежат к разделу РОР2.

186 |
Глава 5 |
Строка 3
[/MMyDraw]
Выражение /M определяет ускоряющую клавишу, которую вы сможете использовать для активизации пункта меню. В данном случае ускоряющая клавиша соответствует подчеркнутой букве М, находящейся в текстовой строке, указанной после этого выражения. При вводе буквы М в командную строку AutoCAD выполнит команду, определенную в соответствующем пункте меню. Выражение MyDraw является меткой пункта меню. Текстовая строка, заключенная в квадратные скобки, не содержит никаких функций (за исключением выражения /M). Эта строка используется для отображения имени функции, с помощью которого пользователь сможет узнать, какая команда будет выполнена при выборе данного пункта меню.
Строка 4
[/LLine]^C^CLine
В этой строке выражение /L используется для определения ускоряющей клавиши. Текстовое выражение Line, находящееся в квадратных скобках, является меткой пункта меню. Выражение ^C^C дважды отменяет выполнение команды, а выражение Line является именем команды LINE (ОТРЕЗОК), принадлежащей программе AutoCAD. При выборе этого пункта выполняется часть оператора, находящаяся за пределами квадратных скобок. При выборе строки 4 выполняется команда LINE.
Шаг 2: загрузка файла меню
Сохраните созданный файл под именем mymenu1.mnu. Выберите опцию Customize Menu (Настройка меню) из меню Tools (Сервис) или введите выражение MENULOAD в командную строку. При выполнении этой команды на экране появится диалоговое окно Menu Customization (Настройка меню), показанное на рис. 5.18.
Рис. 5.18. Диалоговое окно Menu Customization (вкладка Menu Group)

Раскрывающиеся и неполные меню, меню быстрого вызова команд... |
187 |
Для загрузки файла меню введите его имя (mymenu1.mnu) в текстовое окно File Name (Имя файла). Можно также открыть диалоговое окно Select Menu File (Выбор файла меню), щелкнув на кнопке Browse (Обзор). Выделите имя нужного файла, а затем щелкните на кнопке OK. При этом вы вернетесь в диалоговое окно Menu Customization. Чтобы загрузить выделенный файл меню, щелкните на кнопке Load (Загрузить). При появлении предупреждения щелкните на кнопке Yes (Да). Имя группы меню (Menu1) будет отображено в списковом окне Menu Group (Группа меню).
Можно также загрузить файл меню из командной строки, выполнив следующие действия:
Command: FILEDIA
Enter new value for FILEDIA <1>: 0 (Блокировка вывода диалоговых окон.)
Command: MENULOAD
Enter name of menu file to load: MYMENU1.MNU
Чтобы присвоить системной переменной FILEDIA значение 0, а затем загрузить неполное меню, можно воспользоваться следующими функциями AutoLISP:
Command: (SETVAR "FILEDIA" 0)
Command: (Command "MENULOAD" "MYMENU1")
Шаг 3: вставка созданного меню в строку меню
Откройте диалоговое окно Menu Customization (Настройка меню) и перейдите на вкладку Menu Bar (Строка меню), на которой находятся опции строки меню (рис. 5.19). В списковом окне Menu Groups (Группы меню) выберите Menu1; названия меню, содержащихся в этой группе (Menu1), будут отображены в списковом окне Menus (Меню).
Выберите в списковом окне меню (MyDraw), которое вы хотите вставить в строку меню. Например, если вы хотите вставить новое меню перед элементом Format, выберите меню Format (Формат) в списковом окне Menu Bar (Строка меню). Чтобы вставить выделенное меню (MyDraw) в строку меню, щелкните на кнопке Insert (Вставить). Меню MyDraw появится в строке меню, расположенной в верхней части окна.
Рис. 5.19. Диалоговое окно Menu Customization (вкладка Menu Bar)

188 |
Глава 5 |
Можно также загрузить меню из командной стро- |
|
ки. Когда меню будет загружено, воспользуйтесь ко- |
|
мандой MENUCMD (функция AutoLISP), которая по- |
зволит вам вывести неполные меню на экран.
Command: (MENUCMD "P5=+Menu1.POP1") |
Рис. 5.20. Заголовки меню, введенные в |
Command: (MENUCMD "P6=+Menu1.POP2") |
строку меню командой MENUCMD |
После того как вы введете эти команды, AutoCAD
отобразит названия соответствующих меню в строке меню (рис. 5.20). При выборе опции MyDraw на экране появятся пункты меню, определенные в соответствующем файле. В свою очередь, при выборе опции MyEdit на экране отобразится меню, содержащее команды редактирования.
Врассматриваемом примере команда MENUCMD является одной из функций AutoLISP,
авыражение P5 представляет собой параметр, определяющий местоположение меню POP1. В данном случае меню POP1 (MyDraw) будет отображено в пятом меню. В соответствии с определением файла меню, Menu1 — имя группы меню (MENUGROUP),
аРОР1 — метка раздела меню. Имя MENUGROUP и метка раздела меню должны быть разделены точкой (.).
Шаг 4: выгрузка меню
Для того чтобы выгрузить меню (например, MyDraw), откройте диалоговое окно Menu Customization (Настройка меню) и перейдите на вкладку Menu Bar (Строка меню). В списковом окне Menu Bar (Строка меню) выделите элемент, который вы хотите удалить, а затем щелкните на кнопке Remove (Удалить).
Шаг 5: выгрузка группы меню
С помощью диалогового окна Menu Customization (Настройка меню) можно также удалять целые группы меню. Откройте это диалоговое окно, выбрав опцию Customize Menu (Настройка меню) из меню Tools (Сервис) или введя выражение MENULOAD или MENUUNLOAD в командную строку. Имена имеющихся файлов меню отображены в списковом окне Menu Group (Группы меню). Выделите меню Menu1, а затем щелкните на кнопке Unload (Выгрузить). Программа AutoCAD выгрузит указанную группу меню. Закройте диалоговое окно, щелкнув на кнопке Close (Закрыть).
Можно также выгрузить группу меню из командной строки, выполнив следующие действия:
Command: FILEDIA
Enter new value for FILEDIA <1>: 0
Command: MENUUNLOAD
Enter name of MENUGROUP to unload: MENU1.MNU
С помощью команды MENUUNLOAD можно выгрузить целую группу меню. Можно также выгрузить какое-нибудь отдельное меню, не удаляя при этом всю группу. Для этого используется следующая команда:
Command: (MENUCMD "P5=")
При выполнении этой команды будет удалено меню, находящееся на пятой позиции (P5, меню MyDraw). В этом случае группа меню останется на прежнем месте, а меню P5 будет удалено. Для повторной инициализации меню может использоваться команда MENU, обеспечивающая загрузку исходного меню acad.mnu.

Раскрывающиеся и неполные меню, меню быстрого вызова команд... |
189 |
Ускоряющие клавиши
AutoCAD для Windows также поддерживает возможность самостоятельного определения ускоряющих клавиш. Например, когда вы введете С в командную строку, AutoCAD отобразит приглашение на ввод данных, требуемых для построения окружности. Это связано с тем, что буква “С” является псевдонимом команды CIRCLE (КРУГ), что определено в файле программных параметров acad.pgp. Поэтому вы не сможете, нажав клавишу <C>, вызвать команду COPY (КОПИРОВАТЬ). Чтобы использовать данную клавишу для ввода команды COPY, необходимо определить соответствующую ускоряющую клавишу. Для этого можно объединить буквенную клавишу <C> с клавишей <Shift>, введя соответствующее выражение в файл меню. В этом случае, когда вы нажмете клавишу <Shift>, а затем, удерживая ее нажатой, нажмете клавишу <C>, программа AutoCAD выполнит команду COPY. Использование ускоряющих клавиш иллюстрируется следующим примером.
Пример 7
В этом примере вы введете ускоряющие клавиши в неполное меню, описанное в предыдущем примере.
<Ctrl+E> ([CONTROL+"E"]) |
построение эллипса (команда ELLIPSE) |
<Shift+C> ([SHIFT+"C"]) |
копирование (команда COPY) |
<Ctrl+Q> ([CONTROL"Q"]) |
выход (команда QUIT) |
Шаг 1: запись определения ускоряющих клавиш в файл меню
Ниже показан листинг файла неполного меню, в котором используются ускоряющие клавиши, описанные в примере 7.
***MENUGROUP=Menu1
***POP1
**Alias
[/MMyDraw]
[/LLine]^C^CLine
[/CCircle]^C^CCircle
[/AArc]^C^CArc
ID_Ellipse [/EEllipse]^C^CEllipse
***POP2
[/EMyEdit]
[/EErase]^C^CErase ID_Copy [/CCopy]^C^CCopy [/OOffset]^C^COffset [/MMove]^C^CMove
***ACCELERATORS
ID_Ellipse [CONTROL+"E"] ID_Copy [SHIFT+"C"] [CONTROL"Q"]^C^CQuit

190 |
Глава 5 |
Пояснения
В этом файле меню определены три ускоряющих клавиши. Определение ускоряющей клавиши ID_Copy [SHIFT+"C"] состоит из двух частей. Первая часть (ID_Copy) — именной признак, который должен совпадать с именным признаком, использованным в определении пункта меню. Второй частью определения (SHIFT+"C") является метка, содержащая модификатор (SHIFT) и имя клавиши (C). Имя буквенной клавиши или название функциональной клавиши (например, “ESCAPE”) должно быть заключено в квадратные скобки.
Существуют два способа, которые могут быть использованы для определения ускоряющих клавиш. В первом случае вы указываете именной признак, а затем вводите метку, содержащую модификатор и имя или название клавиши, заключенные в квадратные скобки. В качестве примера можно привести [CONTROL+"E"] или ["ESCAPE"]. Для связывания модификаторов обычно используется знак “плюс”, например, [SHIFT+CONTROL+"L"]. Во втором случае для определения ускоряющей клавиши указывается модификатор и название клавиши, а затем цепочка соответствующих команд, например, [CONTROL"Q"]^C^CQuit.
Шаг 2: загрузка определения ускоряющих клавиш
Сохраните отредактированный текст в виде файла с расширением .mnu. Загрузите файл меню, используя команду MENU. После того как вы это сделаете, при одновременном нажатии клавиш <Shift+C> будет введена команда COPY, а при нажатии клавиш <Ctrl+E> отобразится приглашение на ввод параметров, требуемых для построения эллипса. Нажатие клавиш <Ctrl+Q> приведет к отмене предыдущей команды и вводу команды QUIT. Если эти клавиши не работают, попробуйте выгрузить неполное меню из примера 6, так как в нем используется точно такое же имя группы меню.
Виртуальные клавиши
Виртуальными клавишами называются независимые от устройства значения, идентифицирующие клавиши клавиатуры. При использовании в файле меню значения виртуальных клавиш указываются в кавычках.
Строка |
Описание |
Строка |
Описание |
“F1” |
Клавиша F1 |
“NUMBERPAD0” |
Клавиша 0 |
“F2” |
Клавиша F2 |
“NUMBERPAD1” |
Клавиша 1 |
“F3” |
Клавиша F3 |
“NUMBERPAD2” |
Клавиша 2 |
“F4” |
Клавиша F4 |
“NUMBERPAD3” |
Клавиша 3 |
“F5” |
Клавиша F5 |
“NUMBERPAD4” |
Клавиша 4 |
“F6” |
Клавиша F6 |
“NUMBERPAD5” |
Клавиша 5 |
“F7” |
Клавиша F7 |
“NUMBERPAD6” |
Клавиша 6 |
“F8” |
Клавиша F8 |
“NUMBERPAD7” |
Клавиша 7 |
“F9” |
Клавиша F9 |
“NUMBERPAD8” |
Клавиша 8 |
“F10” |
Клавиша F10 |
“NUMBERPAD9” |
Клавиша 9 |
“F11” |
Клавиша F11 |
“UP” |
Клавиша UP-ARROW |
“F12” |
Клавиша F12 |
“DOWN” |
Клавиша DOWN-ARROW |
“HOME” |
Клавиша HOME |
“LEFT” |
Клавиша LEFT-ARROW |
“END” |
Клавиша END |
“RIGHT” |
Клавиша RIGHR-ARROW |
“INSERT” |
Клавиша INS |
“ESCAPE” |
Клавиша ESC |
“DELETE” |
Клавиша DEL |
|
|
|
|
|
|