Пост

Как загрузить свое меню и ленту в nanoCAD

Несколько способов загрузки

Как загрузить свое меню и ленту в 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. Автозагрузка из реестра

regedit

В разделе HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD x64\ХХ.х добавляем подраздел Applications в этом подразделе еще один подраздел с названием нашего приложения BlockFixNC в этом подразделе создаем строковый параметр имя Package, значение полный путь до нашего пакета d:\@Developers\Programmers\!NET\!bundle\BlockFixNC.package

в автозагрузке это будет выглядеть так:

autolaod-regedit

для записи в секцию HKEY_LOCAL_MACHINE требуется повышение прав

Очередность загрузки

  1. %ProgramFiles%\Nanosoft\nanoCAD x64 ХХ\nApp.cfg
  2. %AppData%\Roaming\Nanosoft\nanoCAD x64 23.1\Config\nApp.cfg
  3. %ProgramData%\Nanosoft\nanoCAD x64 ХХ\Config\nApp.cfg
  4. %ProgramFiles%\Nanosoft\nanoCAD x64 ХХ\userdata.cfg
  5. %AppData%\Roaming\Nanosoft\nanoCAD x64 23.1\Config\userdata.cfg
  6. %ProgramData%\Nanosoft\nanoCAD x64 ХХ\Config\userdata.cfg
  7. %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\nanoCAD.cfg
  8. %AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\cfg.cfg (штатная автозагрузка)
  9. 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(из реестра)

Меню будет загружаться во все профили, но в автозагрузке (из под профиля) меню можно отключить

autolaod-regedit

3. Штатная автозагрузка

(%AppData%\Roaming\Nanosoft\nanoCAD x64 ХХ\config\cfg.cfg) загрузит меню только в свой профиль

Пути к файлам меню (*.cfg) могут быть как абсолютными, так и относительными. Относительный путь отсчитывается от файла в котором прописан путь к конфигурации. Регистр символов не важен.

Авторский пост защищен лицензией CC BY 4.0 .

Популярные теги