Как загрузить свое меню и ленту в nanoCAD
Несколько способов загрузки
Способы загрузки
1. Через настройки пользовательского интерфейса.
Самый очевидный и простой способ загрузки меню в nanoCAD
Настройки пользовательского интерфейса
В nanoCAD есть древняя бага, при подключении частичного файла меню
nanoCAD скопирует файл *.cfg в каталог%AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ.х\config\
а файл *.cuix ленты нет, соответственно лента не будет подгружена.
2. Ручная правка nanoCAD.cfg
Дописать в файл настроек %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\nanoCAD.cfg путь к файлу конфигурации:
1
#include "d:\@Developers\Programmers\!NET\!bundle\BlockFix.bundle\Resources\BlockFix.cfg"
3. Автозагрузка из *.cfg nanoCAD
nanoCAD не умеет напрямую из автозагрузки грузить файлы *.cfg, поэтому нужен промежуточный файл .package (в кодировке UTF8). в в секции:
ConfigEntry
прописываем пути к файлам меню (*.cfg )ComponentEntry
пути к загружаемым приложениям:
1 2 3 4 5 6 7 8 9 10 11 12 <?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>
Для загрузки способами 1-3 достаточно прав обычного пользователя, повышение прав не требуется.
4. Через nApp.cfg или userdata.cfg
Создать файл nApp.cfg или userdata.cfg (в кодировке UTF8 BOM) и прописать в него пути к файлам конфигураций:
1
#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\
Для записи и изменения в каталоге:
%AppData%
повышение прав не требуется%ProgramData%\Nanosoft\nanoCAD x64 ХХ.х
у пользователя есть права только на запись, на изменение нет, это значит, что скопировать файл в этот каталог пользователь сможет, но ни удалить не изменить без повышения прав нет. (хз отчего так сделано)%ProgramFiles%\Nanosoft\nanoCAD x64 ХХ.х
нужно повышение прав.
5. Автозагрузка из реестра
В разделе HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD x64\ХХ.х добавляем подраздел Applications
в этом подразделе еще один подраздел с названием нашего приложения BlockFixNC
в этом подразделе создаем строковый параметр имя Package
, значение полный путь до нашего пакета d:\@Developers\Programmers\!NET\!bundle\BlockFixNC.package
в автозагрузке это будет выглядеть так:
для записи в секцию 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\ (из реестра)
- nApp.cfg всегда загружаются перед userdata.cfg
- Если файлы
nApp
илиuserdata
скопированы в несколько каталогов, то загрузится только первый одноименный найденный файл, в порядке приведенном выше, остальные файлы грузиться не будут!nApp
иuserdata
загружаются независимо друг от друга
все вышенаписанное про порядок загрузки *.cfg относится и к файлам *.ini
подробнее про загрузку приложений можно почитать у Алексея Кулика Автозагрузка приложений nanoCAD и ее последовательность
Особенности загрузки меню
При загрузке меню через:
1. nApp, userdata или nanoCAD.cfg.
меню будет загружено во все профили (платформа, СПДС, Механика) и возможности отключить загрузку в профиле нет, но nanoCAD умеет загружать меню по условию, т.е. если в конфиге загрузки прописать:
1
2
#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
возможно какие то еще…:
1
2
#include condition="ComponentEnabled_MODELER3D or ComponentEnabled_MODELER3D_C3D" "nmenu3D.cfg"
#include condition="not ComponentEnabled_RasterTools" "RasterTools.cfg"
2. HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD x64\ХХ.х\Applications(из реестра)
Меню будет загружаться во все профили, но в автозагрузке (из под профиля) меню можно отключить
3. Штатная автозагрузка
(%AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\cfg.cfg) загрузит меню только в свой профиль
Пути к файлам меню (*.cfg) могут быть как абсолютными, так и относительными. Относительный путь отсчитывается от файла в котором прописан путь к конфигурации. Регистр символов не важен.