Тема: Исправление контекстного меню

Проблема: установил вчера лицензионный Acad2000i (Rus) и сразу обнаружил глюк- при выборе опций команды PEDIT с помощью контекстного меню (нажатием правой кнопки мыши) в командную строку подставляются не те буквочки, а при выборе "Ширина"- вообще ничего. И я думаю- это только начало.
Вопрос: можно ли изменить готовые контекстные меню и где они прописаны?

Re: Исправление контекстного меню

Мой ответ дан в другой конференции

http://book.by.ru/cgi-bin/book.cgi?book … ma&p=1

Re: Исправление контекстного меню

Перепечатка со ссылки  http://book.by.ru/cgi-bin/book.cgi?book … ma&p=1

Текст контекстного меню находится в разделе ***POP0 соответствующего меню. Стандартное меню ACAD.MNU, ACAD.MNS.
.
Autodesk рекомендует редактировать файл .ьты, в котором сохраняются пользовательские изменения. Я советую, особенно для радикальных изменений на будущее, редактировать файл .MNU, и затем перегружать именно его.
.
При работе с полностью русифицированным Автокадом (до русификации имен команд) проблемы могут быть в случае, если где-то в именах команд и опций опущен префикс "_". Имя команды всегда должно начинаться с "_." опция с "_"
.
Например "_.PEDIT" а не "PEDIT" "_W" а не "W" и не "Ширина".
.
Русские названия команд и опций надо только отображать, то есть писать в скобках, а передаваться в командную строку должна только родная команда или опция.
.
[Ширина]_w

Re: Исправление контекстного меню

Дополнение:

Как выяснилось, интересовал вопрос об изменении опций контекстного меню, которые НИГДЕ НЕ ПРОПИСАНЫ в файлах меню.

Обнаружилось, что Автодеск здесь перемудрил. Хотели как лучше, а получилось... В результате в локализированных Автокадах действительно создаются неверные меню.

Но решение есть.

см. http://book.by.ru/cgi-bin/book.cgi?book … 1007285269

Re: Исправление контекстного меню

Перепечатка со ссылки  http://book.by.ru/cgi-bin/book.cgi?book … 1007438933

С контекстными меню Автодеск перемудрил. Когда, во время работы команды вызывается контекстное меню, то Автокад делает так:
1. Заглядывает в раздел
.
***POP503
**CMCOMMAND
[Context menu for command mode]
ID_Enter [&Enter];
ID_Cancel [&Cancel]^C
[--]
ID_Pan [$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),ZOOM),~,)&Pan]'_pan
ID_ZoomRealt [$(if,$(eq,$(substr,$(getvar,cmdnames),1,4),ZOOM),~,)&Zoom]'_zoom ;
.
К этому постоянному содержанию АВТОМАТИЧЕСКИ добавляет прошитые в команду опции командной строки, то есть то, что в квадратных скобках и разделено слэшами.
.
Именно это и появляется в контекстном меню ниже постоянных пунктов. Опции передаются в виде первых букв, нигде в меню не прописаны.
.
Чтобы как-то управлять этим надо
1. Найти подраздел
**CMCOMMAND
(в нем постоянная часть меню)
.
2. Подправить, если надо
.
3. Для нужных команд написать свои подразделы (можно скопировать из экранных боковых меню). При этом имя раздела должно иметь вид
**COMMAND_ИМЯ_КОМАНДЫ
Например,
.
**COMMAND_PLINE
[Дуга ]_a
[Замкни ]_c
[Полуширина ]_h
[Длина ]_l
[Отмени ]_u
[Ширина ]_w
[Угол ]_a
[Центр ]_ce
[Замкни ]_cl
[Отрезок ]_l
и т.д.
.
Вот теперь это содержание будет появляться в контекстном меню и в командную строку будут передаваться определенные в нем опции.
.
Однако родное кривое меню также будет входить в содержание, и как с этим бороться я пока не понял. Может кто подскажет??

Re: Исправление контекстного меню

Перепечатка со ссылки  http://book.by.ru/cgi-bin/book.cgi?book … ma&p=1

Текст контекстного меню находится в разделе ***POP0 соответствующего меню. Стандартное меню ACAD.MNU, ACAD.MNS.
.
Autodesk рекомендует редактировать файл .ьты, в котором сохраняются пользовательские изменения. Я советую, особенно для радикальных изменений на будущее, редактировать файл .MNU, и затем перегружать именно его.
.
При работе с полностью русифицированным Автокадом (до русификации имен команд) проблемы могут быть в случае, если где-то в именах команд и опций опущен префикс "_". Имя команды всегда должно начинаться с "_." опция с "_"
.
Например "_.PEDIT" а не "PEDIT" "_W" а не "W" и не "Ширина".
.
Русские названия команд и опций надо только отображать, то есть писать в скобках, а передаваться в командную строку должна только родная команда или опция.
.
[Ширина]_w