В nanoCAD имеется штатная Настройка пользовательского интерфейса для добавления своих команд и редактирования классического меню.
- С простым редактированием меню типа: (Добавить пару тройку команд, перетащить их в новый пункт меню) вполне справляется, проблем нет.
- собрать свою ленту не может, только руками в блокноте
- API для программного (на лету) создания меню и ленты в nanoCAD'e то же пока нет.
- Добавить пару десятков команд в меню штатными средствами или редактировать ленту XML в блокноте, очень долго и неудобно.
Значительно проще все данные внести в таблицу *.xls и в один клик зарегистрировать команды, получить меню и привязанную к нему ленту.
Собственно чем я и озаботился, немного доработав оригинальный MenuFilesGen под себя
Последняя версия утилиты
Расширенная справка
Быстрый старт
Tip
Утилита умеет генерировать конфигурации из *.xls напрямую, без промежуточного текстового файла.
Наличие Excel на машине не требуется.
Important
Сохранена возможность генерации конфигов из текстовых файлов *.tsv (файл в кодировке юникод разделитель табуляция)
Добавлена возможность создания конфигов из *.csv (файл в кодировке ANSI, разделитель, точка с запятой.
Тип файла определяется по расширению:
- *.xls, *.xlsm - Excel;
- *.csv - ANSI, разделитель, точка с запятой;
- остальные расширения программа будет пытаться читать как: юникод, разделитель табуляция
- В шаблоне заполняем обязательные поля В всплывающих подсказках написано, какой столбец, для чего предназначен

Warning
InterName
- допускаются только символы латиницы, без пробелов!!!.
nanoCAD не понимает команды на кириллице
Команда в которой есть символы кириллицы не зарегистрируется!!!
если требуется локализованное имя команды, то оно задается в столбце LocalName
см . дополнительные поля
- Сохраняем *.xls файл
- Запускаем генератор меню
- Указываем имя файла *.xls
- В ком строке вводим номер листа
- Рядом с файлом *.xls появятся:
- файл конфигурации *.cfg (классическое меню, панельки, команды)
- файл ленты Ribbon *.cuix
Имена файлов конфигурации формируются:
- для текстовых файлов: имя файлов конфигураций
*.cfg
,*.cuix
= имя файла шаблона- для *.xls название листа = имя файлов конфигураций
Заполненные обязательные поля достаточны для формирования корректного меню, панелей и ленты.
Important
Описание обязательных полей шаблона
Параметр | Пример | Описание | Комментарий |
---|---|---|---|
InterName | -drz-block-Linetype-ByBlock | Имя выполняемой команды Может быть внутренним именем команды, как оно определено в dll, nrx, lsp | |
DispName | Тип линий по блоку | Имя команды, как оно будет показываться в меню | |
PanelName | Свойства примитивов | Имя панели подменю группы ленты | ![]() |
RibbonSize | LargeWithText Варианты: None SmallWithText LargeWithText SmallWithoutText LargeWithoutText | Размер кнопки на ленте. None - кнопки не будет | ![]() |
Tip
Описание необязательных полей шаблона
Параметр | Пример | Описание | Комментарий |
---|---|---|---|
RibbonSplitButtonName | Порядок | Название сплитера ленты, если пусто иконки не будут прятаться под сплитер | ![]() |
ResourceDllName | newbtns.dll constr-50.ico test.bmp | Если установлен IconName то имя ресурсной dll иначе - название иконки | если ResourceDllName и IconName пусто, то по умолчанию пропишется иконка icons\cmd_intername.ico |
IconName | BEDIT | Название иконки, из ресурсной dll, только если в ResourceDllName имя библиотеки, иначе ничего | |
AppName | App | Приложение, может быть пустым, иначе верхний уровень меню называется по имени -*.xls вкладки Excel - *.csv, *.tsv, *.txt по имени файла | ![]() |
AddonName | Addon | Аддон, может быть пустым, иначе подменю под главным меню | ![]() |
LocalName | блок_почистить | Локализованное имя команды | |
RealCommandName | shell_exec | Реальное имя команды | |
Keyword | open,https://doctorraz.blogspot.com | Ключевое слово | |
weight | число | Вес команды, по умолчанию 10 | |
cmdtype | 1 0 | Контекст выполнения команды, по умолчанию (1) 1-контекст документа 0-контекст приложения | |
StatusText | Тип линий примитивов по слою | Описание команды, показываемое в качестве всплывающей подсказки | |
ToolTipText | текст | Всплывающая подсказка | |
Accelerators | Alt+Q | Горячие клавиши | ![]() |
DontTake | ИСКЛЮЧИТЬ ДОБАВИТЬ | Не регистрировать команду, эта строка будет пропущена если значение ИСКЛЮЧИТЬ | |
HideCommand | ИСКЛЮЧИТЬ ДОБАВИТЬ | Команду зарегистрировать, но не показывать в интерфейсе, если ИСКЛЮЧИТЬ | |
IsVirtualPanel | ИСКЛЮЧИТЬ | Виртуальная панель Флаг указывает, что команда должна быть в меню на одном уровне со своей панелью | ![]() |
Подробнее про параметры конфигурации меню можно почитать тут
Комментариев нет :
Отправить комментарий