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

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

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

Раскрывающиеся и неполные меню, меню быстрого вызова команд...

171

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

1.Для обозначения разделов меню используются метки от ***POP1 до ***POP16.

Названия пунктов меню отображаются в строке меню.

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

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

4.Количество пунктов меню, которые могут быть отображены на экране, зависит от разрешения экрана используемого монитора. Если контекстное или раскрывающееся меню содержит больше пунктов, чем может поместиться на экране, “лишние” пункты меню отсекаются. Например, если система позволяет отобразить только 35 пунктов меню, пункты, которые не помещаются на экране, автоматически отбрасываются.

Пример 2

Напишите раскрывающееся меню, содержащее команды, показанные на рис. 5.7. При записи этого меню необходимо использовать возможность каскадного расположения элементов.

Рис. 5.7. Структура меню для примера 2

Шаг 1: запись файла меню

Далее приведен листинг файла меню для примера 2. Номера строк не являются час-

тью файла, а используются только в качестве ссылок.

172

Глава 5

 

***POP1

1

[DRAW]

2

[LINE]^C^CLINE

3

[PLINE]^C^CPLINE

4

[->ARC]

5

 

[ARC]^C^CARC

6

 

[ARC,3P]^C^CARC

7

 

[ARC,SCE]^C^CARC;\C

8

 

[ARC,SCA]^C^CARC;\C;\A

9

 

[ARC,CSE]^C^CARC;\C

10

 

[ARC,CSA]^C^CARC;\C;\\A

11

 

[<-ARC,CSL]^C^CARC;C;\\L

12

[->CIRCLE]

13

 

[CIRCLE C,R]^C^CCIRCLE

14

 

[CIRCLE C,D]^C^CCIRCLE;\D

15

 

[CIRCLE 2P]^C^CCIRCLE;2P

16

 

[CIRCLE 3P]^C^CCIRCLE;3P

17

[--]

18

[Exit]^C

19

***POP2

20

[BLOCKS]

21

[BLOCK]^C^CBLOCK

22

[INSERT]*^C^CINSERT

23

[WBLOCK]^C^CWBLOCK

24

[--]

25

[Exit]^C

26

***POP3

27

[UTILITY]

28

[SAVE]^C^CSAVE;

29

[QUIT]^C^CQUIT

30

[PLOT]^C^CPLOT

31

[--]

32

[Exit]^C

33

Строка 5

[->ARC]

Эта строка содержит название пункта меню (ARC), перед которым стоит специальный символ ->. Этот символ указывает на то, что в пункте меню содержится подменю. Пункты меню, следующие за этим пунктом (строки 6–12), являются элементами подменю, показанного на рис. 5.8.

Строка 12

[<-ARC,CSL]^C^CARC;C;\\L

Эта строка содержит название пункта меню ARC,CSL, перед которым стоит специальный символ <-, обозначающий конец подменю. Элемент, в названии которого имеется такой символ, должен быть последним пунктом подменю.

Рис. 5.8. Меню Draw с каскадным подменю Arc

Раскрывающиеся и неполные меню, меню быстрого вызова команд...

173

Строки 13 и 17

[->CIRCLE]

[<-CIRCLE 3P]^C^CCIRCLE;3P

Специальный символ ->, стоящий перед именем элемента меню CIRCLE, указывает на то, что пункт меню содержит вложенное подменю. В свою очередь символ <-, стоящий перед выражением CIRCLE 3P, обозначает, что этот элемент является последним пунктом подменю. При выборе пункта меню CIRCLE автоматически открывается соответствующее подменю (рис. 5.9).

Рис. 5.9. Меню Draw с каскадным подменю Circle

Шаг 2: сохранение и загрузка файла меню

Сохраните файл меню под именем exm2.mnu. Для загрузки файлов меню используется команда MENU (МЕНЮ). При выполнении этой команды предыдущее меню будет заменено выбранным и в строке меню появятся названия меню DRAW, BLOCKS и UTILITY.

Пример 3

Напишите файл меню, которое содержит ряд каскадных подменю, показанных на рис. 5.10.

Рис. 5.10. Структура меню для примера 3

Запись файла меню

Ниже приведен листинг файла меню для примера 3. Номера строк не являются час-

тью файла, а используются только в качестве ссылок.

***POP1

1

[CIR-DIM-DISP]

2

[->CIRCLE]

3

[CIRCLE C,R]^C^CCIRCLE

4

174

Глава 5

 

 

[CIRCLE C,D]^C^CCIRCLE;\D

5

 

[CIRCLE 2P]^C^CCIRCLE;2P

6

 

[CIRCLE 3P]^C^CCIRCLE;3P

7

[->Dimension]

8

 

[->Linear]

9

 

[Horizontal]^C^C_dimlinear

10

 

[Vertical]^C^C_dimlinear

11

 

[Aligned]^C^C_dimaligned

12

 

[Rotated]^C^C_dimrotated

13

 

[Baseline]^C^C_dimbaseline

14

 

[<-Continue]^C^C_dimcontinue

15

 

[->Radial]

16

 

[Diameter]^C^C_dimdiameter

17

 

[Radius]^C^C_dimradius

18

 

[<-<-Center Mark]^C^C_dimcenter

19

[->DISPLAY]

20

 

[REDRAW]^C^CREDRAW

21

 

[->ZOOM]

22

 

[...Win]^C^C_ZOOM;_W

23

 

[...Cros]^C^C_ZOOM;_C

24

 

[...Pre]^C^C_ZOOM;_P

25

 

[...All]^C^C_ZOOM;_A

26

 

[<-...Exit]^C^C_ZOOM;_E

27

[<-PAN]^C^C_Pan

28

Строки 8 и 9

[->Dimensions] [->Linear]

Специальный символ ->, стоящий перед названием пункта Dimensions, указывает на то, что в этом пункте имеется вложенное подменю. Символ ->, который стоит перед названием пункта Linear, указывает на наличие второго подменю. Как показано на рис. 5.11, подменю Linear вложено в подменю Dimensions. Пункты меню, названия которых приведены в строках 10–15, входят в подменю Linear. В свою очередь, подменю Linear и Radial являются пунктами подменю Dimensions.

Строка 16

[->Radial]

Рис. 5.11. Меню CIR-DIM-DISP с каскадным подменю Dimensions

Эта строка определяет еще одно вложенное подменю, в которое вошли элементы, описанные в строках 17, 18 и 19.

Строка 19

[<-<-Center Mark]^C^C_dimcenter

Специальные символы <-<-, используемые в этой строке, обозначают конец вложенного подменю Radial и родительского подменю Dimensions.

Раскрывающиеся и неполные меню, меню быстрого вызова команд...

175

Строки 27 и 28

[<-...Exit]^C^C_ZOOM;_E [<-PAN]^C^C_Pan

Специальный символ <-, стоящий перед названием элемента меню ...Exit, указывает на завершение подменю ZOOM (рис. 5.12). Специальный символ <-, стоящий перед названием элемента PAN, обозначает завершение подменю DISPLAY.

Рис. 5.12. Меню CIR-DIM-DISP с каскадным подменю Display

Контекстные меню и меню быстрого вызова команд

Меню быстрого вызова команд похожи на раскрывающиеся меню и отличаются только тем, что могут содержать не более 499 пунктов меню (как вы помните, количество пунктов в раскрывающемся меню может достигать 999). При записи меню быстрого вызова команд используются метки разделов ***POP0 и ***POP500–***POP999. Меню этого типа вызываются щелчком правой кнопкой мыши и отображаются рядом с курсором. Поэтому меню быстрого вызова команд могут использоваться для обеспечения быстрого и удобного доступа к наиболее часто используемым командам. Меню быстрого вызова команд, находящиеся на более высоком уровне, иногда называют контекстными меню. Ниже приведены основные свойства этого меню.

1.При записи меню быстрого вызова команд используются метки разделов ***POP0

и ***POP500–***POP999. Заголовок строки меню, определенный в этом разделе, в строке меню не отображается.

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

3.Для получения доступа к меню РОР0 можно использовать команду $P0=*. При обращении к меню POP500–POP999 следует использовать их альтернативные имена. К числу псевдонимов, зарезервированных для использования в программе AutoCAD, относятся GRIPS, CMDEFAULT, CMEDIT и CMCOMMAND. Например, чтобы вызывать меню POP500 по щелчку правой кнопкой мыши на выделенном объекте, необходимо ввести команду ***GRIPS в раздел POP500. (Если значение системной переменной GRIPS равно 1, то при выделении какого-либо объекта на вершинах многоугольника или на концах линий возникают небольшие квадратики синего цвета (так называемые “ручки”).) Для вызова этой команды можно использовать пункты другого меню, например, контекстного, вспомогательного или экранного. Для вызова необходимых команд также могут использоваться программы AutoLISP или ADS.

4.Меню быстрого вызова команд позволяет определить не более 499 пунктов меню; сюда включены также пункты, содержащиеся в подменю. Пункты меню, не вошедшие в это число, игнорируются.

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

176

Глава 5

ститься на экране, “лишние” строки меню автоматически отсекаются. Например, если система позволяет отобразить не более 21 пункта, пункты меню, не поместившиеся на экране, автоматически отбрасываются.

6.Меню быстрого вызова команд может работать в режимах Default, Edit или Command, доступность которых определяется значением системной переменной SHORTCUTMENU. Если это значение равно 0, программа восстанавливает традиционное поведение R14 и режимы Default, Edit и Command становятся недоступными. По умолчанию эта переменная имеет значение 11.

Пример 4

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

Osnaps

Draw

 

DISPLAY

Center

Line

 

REDRAW

Endpoint

PLINE

ZOOM

Intersection

CIR

C,R

...Win

Midpoint

CIR

2P

...Cen

Nearest

ARC

SCE

...Prev

Perpendicular

ARC

CSE

...All

Quadrant

 

 

...Ext

Tangent

 

 

PAN

None

 

 

 

Запись файла меню

Ниже приведен листинг файла меню для примера 4. Номера строк не являются час-

тью файла, а используются только в качестве ссылок.

***AUX1

1

;

2

$P0=*

3

***POP0

4

[Osnaps]

5

[Center]_Center

6

[End point]_Endp

7

[Intersection]_Int

8

[Midpoint]_Mid

9

[Nearest]_Nea

10

[Perpendicular]_Per

11

[Quadrant]_Qua

12

[Tangent]_Tan

13

[None]_Non

14

[--]

15

[->Draw]

16

[Line]^C^C_Line

17

[PLINE]^C^C_Pline

18

Раскрывающиеся и неполные меню, меню быстрого вызова команд...

177

[CIR C,R]^C^C_Circle

19

[CIR 2P]^C^C_Circle;_2P

20

[ARC SCE]^C^_ARC;\C

21

[<-ARC CSE]^C^_ARC;C

22

[--]

23

[->DISPLAY]

24

[REDRAW]^C^_CREDRAW

25

[->ZOOM]

26

[...Win]^C^C_ZOOM;_W

27

[...Cen]^C^C_ZOOM;_C

28

[...Pre]^C^C_ZOOM;_P

29

[...All]^C^C_ZOOM;_A

30

[<-...Exit]^C^C_ZOOM;_E

31

[<-PAN]^C^C_Pan

32

***POP1

33

[SHORTCUTMENU]

34

[SHORTCUTMENU=0]^C^CSHORTCUTMENU;0

35

[SHORTCUTMENU=1]^C^CSHORTCUTMENU;1

36

Строка 10

***AUX1

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

Строки 2 и 3

;

$P0=*

Точка с запятой (;) присвоена второй кнопке координатно-указательного устройства (первая кнопка этого устройства является кнопкой указания). Третьей кнопке коорди- натно-указательного устройства назначена специальная команда $P0=*.

Строки 4 и 5

***POP0

[Osnaps]

Метка POP0 является меткой раздела меню, предназначенной для меню быстрого вызова команд. Osnaps — заголовок строки меню. Заголовок не отображается в строке меню, тем не менее, он необходим. При его отсутствии первый пункт меню будет интерпретирован как заголовок и поэтому станет недоступным.

Строка 6

[Center]_Center

В этой строке выражение _Center обозначает режим привязки к центру объекта. Если перед командой или опцией команды AutoCAD стоит знак подчеркивания (_), то файл меню можно использовать с версиями AutoCAD на иностранном языке.

Если после загрузки файла меню будет нажата третья кнопка координатно-указа- тельного устройства, на экране рядом с указателем (или перекрестьем курсора) появится меню быстрого вызова команд, показанное на рис. 5.13. Если во время нажатия кнопки

178

Глава 5

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

Строки 33 и 34

***POP1

[Draw]

Выражение ***POP1 определяет первое раскрывающееся меню. Если разделы POP1, POP2, POP3 и т.д. не определены или строка состояния выключена, меню быстрого вызова команд автоматически блокируется.

Упражнение 2

Рис. 5.13. Меню быстрого вызова команд для примера 4

Напишите меню, содержащее следующие команды

AutoCAD. Создайте каскадное меню для опций команды LINE (ОТРЕЗОК), содержащейся в этом меню. (Структура меню показана на рис. 5.14.)

LINE

ZOOM

All

TIME

 

Continue

ZOOM

Win

LIST

 

Close

ZOOM

Pre

DISTANCE

 

Undo

PAN

 

AREA

 

CIRCLE

DBLIST

 

 

 

 

ELLIPSE

STATUS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 5.14. Структура меню для упражнения 2

Подменю

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

Раскрывающиеся и неполные меню, меню быстрого вызова команд...

179

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

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

Определение подменю

Определение подменю состоит из имени создаваемого подменю и двух звездочек (**), стоящих перед этим именем. Меню может содержать произвольное количество подменю, каждое из которых должно иметь уникальное имя. К подменю принадлежат все элементы, начиная с метки подменю и заканчивая меткой следующего раздела или следующего подменю. Метка подменю имеет следующий формат:

**Имя

где

** — две звездочки (**), обозначающие подменю;

Имя — имя подменю.

Примечание

Длина имени подменю не должна превышать 31 символа.

Имя подменю может состоять из букв, цифр и специальных символов, таких как знак доллара ($), дефис (-) и знак подчеркивания (_).

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

В файле меню необходимо использовать уникальные имена подменю.

Ссылка на подменю

Ссылка на подменю используется для вызова или загрузки подменю. Она состоит из буквы, определяющей раздел меню, и знака доллара ($), стоящего перед ней. В качестве буквы, определяющей соответствующий раздел меню, используется Pn, где n — номер раздела. После имени раздела ставится знак “равно” (=), а затем указывается имя подменю, которое вы хотите активизировать. Имя подменю указывается без звездочек (**). Ссылка на подменю имеет следующий формат:

$Раздел=Подменю

где

$ — знак доллара;

Раздел — описатель (спецификатор) раздела меню;

= — знак “равно”;

Подменю — имя подменю.

180

Глава 5

Пример

$P1=P1A

где

$P1 — описатель первого раздела раскрывающегося меню;

P1A — имя подменю.

Отображение подменю

Загрузка подменю не обеспечивает автоматический вывод элементов подменю на экран вашего компьютера. Например, при загрузке подменю P1A, в первой строке которого находится элемент DRAW-ARC, вместо текущего заголовка меню РОР1 появится название DRAW-ARC. Но при этом пункты подменю, определенные под заголовком DRAW-ARC, не будут отображаться на экране. Для вывода новых элементов меню на экран в программе AutoCAD используется специальная команда $Pn=*.

$Pn=*

где

P — буква, определяющая раздел меню;

n — номер раздела меню (от 1 до 10);

* — знак звездочки.

Загрузка экранных и мозаичных меню

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

Загрузка экранного меню

Для загрузки меню, определенного в разделе экранного меню, обычно используется следующая команда:

$S=X $S=LINE

где

S — буква, определяющая экранное меню;

X — имя подменю, определенного в разделе экранного меню;

LINE — имя подменю, определенного в разделе экранного меню.

При выполнении первой команды ($S=X) происходит загрузка подменю X, определенного в одном из разделов файла меню, в частности, в разделе экранного меню. Количество пустых строк, содержащихся в подменю X, может достигать 21, поэтому при загрузке этого подменю выполняется очистка экранного меню. Выполнение второй команды ($S=LINE) приводит к загрузке подменю LINE, определенного в том же разделе файла меню.

Загрузка мозаичного меню

Для загрузки мозаичного меню с помощью одного из пунктов меню используется команда

$1=IMAGE1 $1=*

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