Синтаксис файла |
Scroll |
Файл пользовательских меню позволяет формировать иерархическую структуру меню. Он состоит из отдельных строк. Строка может описывать раздел или команду меню. Строки могут быть снабжены комментариями. Комментарии не отображаются на экране и не вставляются в документ. Комментарием является строка, расположенная после символа ' (апостроф). Например, в строке MENU 2 'Параметр комментарием является Параметр шероховатости.
Каждый раздел файла имеет заголовок MENU num, где num — номер раздела.
Раздел файла должен начинаться с ключевого слова BEGIN и заканчиваться словом END. Строки, находящиеся между этими словами (внутри раздела), будут показываться в пользовательском меню.
Внутри раздела перечисляются строки меню (отдельные команды) и вложенные в раздел подменю (названия групп команд), которые, в свою очередь, также могут содержать строки меню и подменю.
Строка меню записывается в виде:
MENUITEM "nаme" FLАGS, где
name — имя меню,
FLAGS — комбинация флагов (см. табл. Флаги для MENUITEM).
Вложенный раздел меню — подменю — записывается в виде:
РOРUР "nаme", где
name — имя подменю (оно появляется в меню).
Подменю, как и содержащее его меню, должно начинаться со слова BEGIN, заканчиваться словом END и содержать строки меню (MENUITEM) и вложенные подменю (РOРUР).
Порядок формирования имени nаme в строке меню или подменю:
nаme = nаme1|nаme2, где
nаme1 — подстрока, которая появится в меню, т.е. название команды,
nаme2 — подстрока, которая будет подставлена в текст при выборе команды.
Если имя nаme состоит из одной подстроки (имеет вид nаme = nаme), то эта подстрока появится в меню и будет подставлена в текст.
Подстрока nаme2 может содержать различные управляющие символы, которые определяют вид строки, подставляемой в текст. Ниже даны варианты конструкций с использованием этих управляющих символов и описано назначение каждой конструкции.
Конструкция вида $XX;YY$ позволяет вставить в документ верхний и нижний индексы.
Подстрока, введенная после первого символа $, будет вставлена в документ в виде верхнего индекса. Если после первого символа $ введен символ ;, то подстрока после этого символа будет вставлена в виде нижнего индекса. Следующий символ $ завершает ввод индексов. Если символ ; отсутствует или между ним и завершающим $ находится пустая строка, будет вставлен только верхний индекс. Если между первым $ и ; находится пустая строка, будет вставлен только нижний индекс.
Строка меню АА$XX;YY$BB будет вставлена в документ в виде:
Строка меню может содержать несколько индексов. При этом необходимо, чтобы $, открывающий индекс, был отделен от $, закрывающего предыдущий индекс, хотя бы одним знаком. Если строка меню содержит последовательность $$, то в документ будет вставлен одиночный символ $.
Символы s, m или l позволяют управлять размером символов индекса. Они должны располагаться после управляющего символа $. Действие символов, управляющих размером, распространяется на весь индекс. Текст после s будет иметь малую, m — среднюю, l — полную высоту. По умолчанию текст индекса имеет полную высоту.
Пример ввода индексов и управления размером индекса приведен в табл. Вставка индексов в документ; управление размером индекса.
Вставка индексов в документ; управление размером индекса
Строка меню |
Отображаемая |
Строка, вставленная |
Высота индекса |
|
MENUITEM "L min в кубе|L$3;min$" |
L min в кубе |
полная |
||
MENUITEM "L min в кубе|L$l3;min$" |
||||
MENUITEM "L min в кубе|L$s3;min$" |
L min в кубе |
малая |
Конструкция вида $bXX;YY$ или $dXX;YY$ позволяет вставить в документ дробь.
Подстрока, введенная после символа $b или $d, будет вставлена в документ в виде числителя дроби. Если после символа $b ($d) введен символ ;, то подстрока после этого символа будет вставлена в виде знаменателя дроби. Следующий символ $ завершает ввод дроби. Если символ ; отсутствует или между ним и $ находится пустая строка, дробь имеет только числитель. Если между $b ($d) и ; находится пустая строка, дробь имеет только знаменатель.
Строка меню АА$dXX;YY$BB или АА$bXX;YY$BB будет вставлена в документ в виде:
Символы s, m или l позволяют управлять размером символов дроби. Они должны располагаться после управляющего символа $b ($d). Действие символов, управляющих размером, распространяется на всю дробь. Текст после s будет иметь малую, m — среднюю, l — полную высоту. По умолчанию дробь имеет полную высоту.
Строка меню может содержать несколько дробей.
Пример ввода дробей и управления размером дроби приведен в табл. Вставка дробей в документ; управление размером дроби.
Вставка дробей в документ; управление размером дроби
Строка меню |
Отображаемая |
Строка, вставленная |
Высота дроби |
|
MENUITEM "Посадка с зазором H7/h6|$bH7;h6$" |
Посадка с зазором H7/h6 |
полная |
||
MENUITEM "Посадка с зазором H7/h6|$blH7;h6$" |
||||
MENUITEM "Посадка с зазором H7/h6|$bmH7;h6$" |
Посадка с зазором H7/h6 |
малая |
Вставка спецзнаков и символов
В конструкциях для вставки спецзнаков и символов используется знак ~ (тильда). Он служит признаком окончания номера спецзнака или кода символа.
1.Вставка спецзнаков системы КОМПАС
АА@+XXXXX~BB
В текст будет вставлена строка вида
АА <спецзнак №XXXХХ из файла Graphic.sss> BB.
Номера, изображения и названия спецзнаков приведены в Приложении Спецзнаки КОМПАС-3D.
Например, в файле Graphic.pmn есть строка
MENUITEM "2 отверстия диаметра 20|2 отв. @+2~20".
В пользовательском меню она появляется в виде
2 отверстия диаметра 20.
В текст при ее выборе будет внесена строка
Таким образом, конструкция @+2 в файле Graphic.pmn заменяет значок диаметра.
Спецзнаки №№ 78–80, 83, 93–99, 171, 172 содержат текст (например, № 80 — текст в рамке). Этот текст, в свою очередь, может содержать другие спецзнаки.
Все символы, стоящие в подстроке name2 после номера любого спецзнака, содержащего текст, считаются формирующими текст данного спецзнака (включая управляющие символы).
Например, в файле Graphic.pmn есть строка
MENUITEM "Корень из одной третьей|@+98~$b1;3$".
В пользовательском меню она появляется в виде
Корень из одной третьей.
В текст при ее выборе будет внесена строка
Наибольший допустимый номер спецзнака — 65536. Если в качестве номера спецзнака задано число большее 65536, то номер находится как остаток от целочисленного деления заданного числа на 65536. |
2.Вставка символов из шрифтов, установленных в операционной системе
АА^(FNAME)YXXXXX~BB
В текст будет вставлена строка вида
АА <символ с кодом XXХXХ из шрифта FNAME> BB
Символ Y в конструкции YXXXXX обозначает модификатор представления кода. Модификатор показывает, в какой системе счисления представлен код символа — шестнадцатеричной или десятичной (табл. Модификаторы представления кода символа).
Модификаторы представления кода символа
Модификатор |
Система счисления |
Примечания |
Пример |
|
* |
Шестнадцатеричная |
Максимальное число знаков — 4. Регистр букв A, B, C, D, E, F значения не имеет. |
*221E |
|
+ |
Десятичная |
Максимальное число знаков — 5. Наибольшее значение кода — 65536; если в качестве кода символа задано число большее 65536, то код находится как остаток от целочисленного деления заданного числа на 65536. |
+61448 |
Чтобы определить имя шрифта, начертание и код символа, можно использовать, например, стандартное приложение Windows Таблица символов (см. рисунок).
Окно приложения Таблица символов
Например, в файле Graphic.pmn есть строка
MENUITEM "Число оборотов барабана при макс. деформации|^(Symbol Type A)+121~$m*;3$".
В пользовательском меню она появляется в виде
Число оборотов барабана при макс. деформации.
В текст при ее выборе будет вставлена строка
3.Вставка символов из текущего шрифта
В текст будет вставлена строка вида
АА <символ с кодом XXXXX из текущего шрифта текста> BB
Символ Y в конструкции YXXXXX обозначает модификатор представления кода. Модификатор показывает, в какой системе счисления представлен код символа — шестнадцатеричной или десятичной (см. табл. Модификаторы представления кода символа).
Чтобы определить начертание и код символа, можно использовать, например, стандартное приложение Windows Таблица символов (см. рисунок выше).
Если в текст требуется вставить сами символы @, ^, ~, $, & из текущего шрифта, то вместо конструкции ^YXXXXX~ можно использовать конструкции @@, ^^, ~~, $$, && соответственно. |
Вместо основных конструкций для вставки спецзнаков и символов — АА@YXXXXX~BB, АА^(FNAME)YXXXXX~BB и АА^YXXXXX~BB — могут использоваться дополнительные: АА&XX~BB, АА#(FNAME)XX~BB и АА#XX~BB соответственно. Отличия дополнительных конструкций от основных: •для записи номера спецзнака или кода символа может использоваться только два знака, а не пять, •в конструкциях для вставки символа отсутствует модификатор; заданный код считается представленным в десятичной системе счисления. |
Вставка переноса строки
АА@/BB
В текст будут вставлены две строки: АА и BB.
Например, в файле Graphic.pmn есть строка
MENUITEM "Вентиль запорный угловой| Вентиль запорный@/угловой".
В пользовательском меню она появляется в виде
Вентиль запорный угловой.
В документ при ее выборе будут внесены две строки:
Вентиль запорный
угловой
Таким образом, конструкция @/ в файле Graphic.pmn является знаком переноса строки.
Если ячейка таблицы основной надписи настроена для ввода однострочного текста, перенос строк будет проигнорирован. |
Флаг |
Назначение |
|
SEРАRАTOR |
Отрисовка горизонтальной линии-разделителя. Любой текст и флаги игнорируются. |
|
MENUBREАK |
Помещение команды меню в новую колонку. |
|
DISАBLED или GRАYED |
Команда меню недоступна для выполнения и отображается серым цветом. |
Допускается комбинация флагов, разделенных пробелами или запятыми.
Пример файла Grарhic.рmn
Ниже приведен фрагмент файла Grарhic.рmn, на примере которого вы можете ознакомиться со структурой и синтаксисом этого файла.
MENU 12
BEGIN
MENUITEM "Меню, настраиваемое пользователем (Grарhic.рmn MENU 12)" GRAYED
MENUITEM SEРАRАTOR
MENUITEM "Николаева И.В. Вице-президент|Николаева"
MENUITEM SEРАRАTOR
РOРUР "Разработчики"
BEGIN
MENUITEM "Поликарпов П.П. Нач. отдела|Поликарпов"
MENUITEM SEРАRАTOR
MENUITEM "Иванов И.И.|Иванов"
MENUITEM "Петров П.П.|Петров"
MENUITEM "Сидоров С.С.|Сидоров"
END
РOРUР "Технологи"
BEGIN
MENUITEM "Семенов Ю.Ю. Нач. отдела|Семенов"
MENUITEM SEРАRАTOR
MENUITEM "Дубинина А.Б.|Дубинина"
MENUITEM "Петрова М.Я.|Петрова"
MENUITEM "Половинин И.И.|Половинин"
END
РOРUР "Нормоконтроль"
BEGIN
MENUITEM "Буянов М.Ю. Нач. отдела|Буянов"
MENUITEM SEРАRАTOR
MENUITEM "Поликарпов П.П.|Поликарпов"
MENUITEM "Самохвалов А.А.|Самохвалов"
END
END
Этому разделу файла пользовательского меню соответствует меню, вызываемое при вводе фамилий должностных лиц в графы основной надписи, см. рисунок.
При редактировании файла пользовательского меню нужно помнить, что некоторые его разделы используются системой для полуавтоматического ввода текста при простановке размеров и технологических обозначений (например, из пользовательского меню можно выбрать значение параметра шероховатости). Редактировать соответствующие разделы не рекомендуется, т.к. они содержат стандартные тексты и значения.