logo
Компьютерная графика / МАШ_ГРАФИКА

7.2. Модификация всплывающего и падающего меню AutoCad2000

Всплывающее и каждое падающее меню отмечены имена-ми POP. POPO содержит всплываю­щее меню, РОР1 – пада-ющее меню File (Файл), РОР2 - падающее меню Edit (Прав-ка), РОРЗ - падающее меню View (Вид) и т.д.

Всплываю­щее меню необходимо для оперативных действий при по-строении чертежей. Оно появляется при щелчке средней кнопкой мыши с тремя кнопками или при одно-временном нажатии <Shift> и щелчке правой кноп­кой мыши с двумя кнопками (Рис.8.4).

Ниже приведен фрагмент файла асаd.mns, содержащий описание разделов POPO и РОР1, соответ-ствующих этому меню и падающему меню File:

Рис.8.4

168

***POP0

**SNAP

[&Object Snap Cursor Menu]

ID_Tracking [Temporary trac&k point]_tt

ID_From [&From]_from

ID_MnPointFi [->Poin&t Filters]

ID_PointFilx [.X].X

ID_PointFily [.Y].Y

ID_PointFilz [.Z].Z

[--]

ID_PointFixy [.XY].XY

ID_PointFixz [.XZ].XZ

ID_PointFiyz [<-.YZ].YZ

[--]

ID_OsnapEndp [&Endpoint]_endp

ID_OsnapMidp [&Midpoint]_mid

ID_OsnapInte [&Intersection]_int

ID_OsnapAppa [&Apparent Intersect]_appint

ID_OsnapExte [E&xtension]_ext

[--]

ID_OsnapCent [&Center]_cen

ID_OsnapQuad [&Quadrant]_qua

ID_OsnapTang [Tan&gent]_tan

[--]

ID_OsnapPerp [&Perpendicular]_per

ID_OsnapPara [Para&llel]_par

ID_OsnapNode [No&de]_nod

ID_OsnapInse [In&sert]_ins

ID_OsnapNear [Nea&rest]_nea

ID_OsnapNone [&None]_non

[--]

ID_Osnap [&Osnap Settings...]'_+dsettings 2

169

***POP1

**FILE

ID_MnFile [&File]

ID_New [&New... Ctrl+N]^C^C_new

ID_Open [&Open... Ctrl+O]^C^C_open

ID_FILE_CLOSE [&Close]

ID_PartialOp [$(if,$(eq,$(getvar,fullopen),0),,~)Pa&rtial Load]^C^C_partiaload

[--]

ID_Save [&Save Ctrl+S]^C^C_qsave

ID_Saveas [Save &As...]^C^C_saveas

ID_Export [&Export...]^C^C_export

[--]

ID_PlotSetup [Pa&ge Setup...]^C^C_pagesetup

ID_PlotMgr [Plotter &Manager...]^C^C_plottermanager

ID_PlotStyMgr [Plot St&yle Manager...]^C^C_stylesmanager

ID_Preview [Plot Pre&view]^C^C_preview

ID_Print [&Plot... Ctrl+P]^C^C_plot

[--]

ID_MnDrawing [->Drawing &Utilities]

ID_Audit [&Audit]^C^C_audit

ID_Recover [&Recover...]^C^C_recover

[--]

ID_MnPurge [->&Purge]

ID_PurgeAll [&All]^C^C_purge _a

[--]

ID_PurgeLay [&Layers]^C^C_purge _la

ID_PurgeLin [Li&netypes]^C^C_purge _lt

ID_PurgeTxt [&Text Styles]^C^C_purge _st

ID_PurgeDim [&Dimension Styles]^C^C_purge _d

ID_PurgeMln [&Multiline Styles]^C^C_purge _m

ID_PurgeBlk [&Blocks]^C^C_purge _b

ID_PurgePlt [&Plot Styles]^C^C_purge _p

ID_PurgeShp [<-<-&Shapes]^C^C_purge _sh

ID_SendMail [Sen&d...]

170

ID_Props [Drawing Propert&ies...]^C^C_dwgprops

[--]

ID_MRU [Drawing History]

[--]

ID_APP_EXIT [E&xit]

Первая строка в описании падающего меню РОРn указы-вает его позицию, например, ***РОР1 - для меню File (Файл). Строка ID_MnFile [&File] ука­зывает имя меню. Причем идентификатор ID_MnFile является уникальным в файле acad.mns и повторяться не должен. Запись в квад-ратных скобках [&File] определяет заголовок меню.

Каждая строка описания меню POP содержит часть пунк-тов из следую­щего списка:

[ТЕКСТ] - заголовок, который не работает как команда, а служит в дан­ном меню названием, появляющимся в статусной строке;

...[многоточие] - по принятому в AutoCAD соглашению это поле указы­вает, что выбор пункта меню вызывает появ-ление другого меню или диало­гового окна;

[--] - разделитель частей меню. Заголовок пункта раздви-гается, становясь разделительной линией, если используется без других символов. При выда­че падающего меню эта строка увеличивается на всю его ширину;

[->] - указывает на начало каскадного меню. Текст, заклю-ченный в квадратные скобки, появляется в меню вместе со стрелкой «вправо». Вы­бор этого пункта приводит к выдаче

171

следующего (подчиненного) меню справа от выбранного пункта исходного меню;

[<-] - указывает, что пункт меню является последним пунктом каскад­ного меню;

\ - указывает на необходимость ввести в данном месте некоторое значе­ние. В команды меню, содержащие этот знак, могут быть включены после­довательности ответов на команду;

$1 - приводит к выводу поименованного графического меню;

+ - продолжает макрос на следующую строку, если является последним символом в строке;

$ - ( - вычисляет в заголовке строковый макрос языка DIESEL;

~ - отключает (показывает серым) данный пункт меню;

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

- помечает пункт меню специальным символом с;

!. - помечает пункт меню специальным маркером (галочкой).

Любая строка в файле acad.mns, начинающаяся с сим-волов \\, явля­ется комментарием и игнорируется AutoCAD.

Если заголовок пункта меню начинается с символа ~, он будет отобра­жаться более бледно. Обесцвеченный заго-ловок часто используется для то­го, чтобы указать: в текущий момент выбор этого пункта неверен. Действия,

172

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

Заголовки пунктов меню внутри разделов меню ***РОРn могут иметь произвольную длину. Ширина каждого падаю-щего меню определяется по самому длинному заголовку.

При создании нового падающего меню и добавлении его к существу­ющему меню AutoCAD рекомендуется сначала сделать копию файла acad.mns с произвольным именем (например, acad_temp.mns) и только затем модифицировать оригинал. Как уже говорилось выше, для этого подойдет любой текстовый редактор, например, WordPad.

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

Вставка нового меню производится следующим образом. Файл меню acad.mns, загруженный в текстовый редактор, необходимо прокрутить до начала раздела, озаглавленного ***Toolbars (Панели), который следует после окончания раздела POP 10, описывающего падающее меню Help (Помощь). Раздел, формирующий разрабатываемое меню разработчик может вставить сразу после РОР10 или до него. Например, для встраиваемой базы данных заголовок назо-вём Tetragons (Четырёхугольники). Это же имя присвоим метке раздела. Для того, чтобы производить выбор типа че-тырёхугольника (прямоугольник или трапеция) из графического меню под названием IMAGE_TETR ,

173

введём в меню только один пункт под название FIGURES (фигуры). Заголовок этого пункта (который является не командой, а названием, появляющимся в статусной строке) зададим “Фигуры”. В итоге добавляемое меню примет сле-дующий вид :

***POP11

**TETRAGONS

ID_MnTETRAGONS [&Tetragons]

ID_FIGURES [&_Фигуры...]^C^C$I=

ACAD.IMAGE_TETR $i=ACAD.*

[--]

Изменения, внесенные в файл acad.mns, следует сохра-нить. Далее следует перекомпилировать новый файл меню acad.mns. Для этого в ко­мандной строке AutoCAD нужно ввести команду MENU (МЕНЮ), а затем в появившемся диалоговом окне Select Menu File (Выбор файла меню) выбрать новый, модифицированный файл acad.mns .

По завершении компиляции файла acad.mns после меню Help (По­мощь) появится новое падающее меню с названием Tetragons .