-
Notifications
You must be signed in to change notification settings - Fork 0
2. User Guide
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 | ИСКЛЮЧИТЬ | Виртуальная панель Флаг указывает, что команда должна быть в меню на одном уровне со своей панелью |
![]() |
Подробнее про параметры конфигурации меню можно почитать тут
Самый очевидный и простой способ загрузки меню в нанокад
Warning
В nanoCAD есть древняя бага, при подключении частичного файла меню
nanoCAD скопирует файл *.cfg в каталог %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ.х\config\
а файл *.cuix ленты нет, соответственно лента не будет подгружена.
Все же разбрасывать по всему диску фалы конфигов, настройки ленты и сами аддоны не есть хорошо (
Дописать в файл настроек %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\nanoCAD.cfg путь к файлу конфигурации:
#include "d:\@Developers\Programmers\!NET\!bundle\BlockFix.bundle\Resources\BlockFix.cfg"
Important
nanoCAD не умеет напрямую из автозагрузки грузить файлы *.cfg, поэтому нужен промежуточный файл .package (в кодировке UTF8), в котором в секции ConfigEntry прописываем пути к файлам меню (*.cfg ), в секции ComponentEntry пути к загружаемым приложениям:
<?xml version="1.0" encoding="utf-8" ?>
<ApplicationPackage xmlns="hostApplicationPackage/v01"
Name="drzTools">
<Components>
<ComponentEntry AppName="BlockFix"
ModuleName="/BlockFix.bundle/BlockFix.NCad.dll"
ModuleType="MGD"/>
<ConfigEntry FileName="/BlockFix.bundle/Resources/BlockFix.cfg"
FileType="CFG"/>
</Components>
</ApplicationPackage>Tip
Для загрузки способами 1-3 достаточно прав обычного пользователя, повышение прав не требуется.
Создать файл nApp.cfg или userdata.cfg (в кодировке UTF8 BOM) и прописать в него пути к файлам конфигураций:
#include "d:\@Developers\Programmers\!NET\!bundle\BlockFix.bundle\Resources\BlockFix.cfg"
nApp.cfg или userdata.cfg можно скопировать в любой из каталогов:
- %ProgramFiles%\Nanosoft\nanoCAD x64 ХХ.х\
- %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ.х\Config\
- %ProgramData%\Nanosoft\nanoCAD x64 ХХ.х\Config\
Warning
Для записи и изменения в каталоге:
-
%AppData%повышение прав не требуется -
%ProgramData%\Nanosoft\nanoCAD x64 ХХ.ху пользователя есть права только на запись, на изменение нет, это значит, что скопировать файл в этот каталог пользователь сможет, но ни удалить не изменить без повышения прав нет. (хз отчего так сделано) -
%ProgramFiles%\Nanosoft\nanoCAD x64 ХХ.хнужно повышение прав.
В разделе HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD x64\ХХ.х
добавляем подраздел Applications
в этом подразделе еще один подраздел с названием нашего приложения BlockFixNC
в этом подразделе создаем строковый параметр
имя Package, значение полный путь до нашего пакета d:\@Developers\Programmers\!NET\!bundle\BlockFixNC.package
в автозагрузке это будет выглядеть так:
Warning
для записи в секцию HKEY_LOCAL_MACHINE требуется повышение прав
- %ProgramFiles%\Nanosoft\nanoCAD x64 ХХ\nApp.cfg
- %AppData%\Roaming\Nanosoft\nanoCAD x64 23.1\Config\nApp.cfg
- %ProgramData%\Nanosoft\nanoCAD x64 ХХ\Config\nApp.cfg
- %ProgramFiles%\Nanosoft\nanoCAD x64 ХХ\userdata.cfg
- %AppData%\Roaming\Nanosoft\nanoCAD x64 23.1\Config\userdata.cfg
- %ProgramData%\Nanosoft\nanoCAD x64 ХХ\Config\userdata.cfg
- %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\nanoCAD.cfg
- %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\cfg.cfg (штатная автозагрузка)
- HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD x64\ХХ.х\Applications\ (из реестра)
Warning
- nApp.cfg всегда загружаются перед userdata.cfg
- Если файлы
nAppилиuserdataскопированы в несколько каталогов, то загрузится только первый одноименный найденный файл, в порядке приведенном выше, остальные файлы грузиться не будут! -
nAppиuserdataзагружаются независимо друг от друга
Tip
все вышенаписанное про порядок загрузки *.cfg относится и к файлам *.ini
подробнее про загрузку приложений можно почитать у Алексея Кулика Автозагрузка приложений nanoCAD и ее последовательность
При загрузке меню через:
-
nApp,userdataилиnanoCAD.cfg, меню будет загружено во все профили (платформа, СПДС, Механика) и возможности отключить загрузку в профиле нет, но nanoCAD умеет загружать меню по условию, т.е. если в конфиге загрузки прописать:
#include condition="ComponentEnabled_nMechComp" "d:\@Developers\В работе\!Текущее\Programmers\!NET\!bundle\PlotSPDS.bundle\Resources\Mech_menu.cfg"
#include condition="ComponentEnabled_nSPDSComp" "d:\@Developers\В работе\!Текущее\Programmers\!NET\!bundle\PlotSPDS.bundle\Resources\SPDS_menu.cfg"то первое меню будет загружаться только в профиль Механика, второе в профиль СПДС.
допустимы ключевые слова, or not возможно какие то еще...:
#include condition="ComponentEnabled_MODELER3D or ComponentEnabled_MODELER3D_C3D" "nmenu3D.cfg"
#include condition="not ComponentEnabled_RasterTools" "RasterTools.cfg"- HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD x64\ХХ.х\Applications\ (из реестра) меню будет загружаться во все профили, но в автозагрузке (из под профиля) меню можно отключить
- Штатная автозагрузка (%AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\cfg.cfg) загрузит меню только в свой профиль
Tip
Пути к файлам меню (*.cfg) могут быть как абсолютными, так и относительными. Относительный путь отсчитывается от файла в котором прописан путь к конфигу. Регистр символов не важен.






