
В крупных организациях процесс подготовки и настройки рабочих мест проектировщиков зачастую бывает затруднительным и рутинным. Казалось бы, для решения такой тривиальной задачи, как установка САПР, не нужно тратить много ресурсов, достаточно лишь распространить дистрибутив через доменные политики или просто «расшарить» папку с готовым дистрибутивом и смело приступать к работе в САПР-системе. Возникает вопрос: «А что если в организации сущетвуют свои стандарты оформления к выпуску документации, если есть собственные наработки в виде готовых блоков или команд? Планируется ли использование общей базы данных (если применяется СПДС, Железобетон или Стройплощадка)?»
В таком случае перед нами возникает еще одна задача – настроить рабочие места пользователей, а делать это с каждым местом в отдельности крайне нерационально. Распространить уже настроенный дистрибутив – единственное правильное решение. Где же хранит свои настройки nanoCAD? Как правильно создать свой дистрибутив? Эти и некоторые другие вопросы мы рассмотрим подробнее. Инструкция предназначена для машин на ОС Windows 7 и выше.
Подготовка дистрибутива
Необходимо скачать дистрибутив продукта с сайта nanocad.ru. В нашем примере мы будем работать с дистрибутивом nanoCAD СПДС 6 NC60Px32_2434.exe.
Нужно установить программу, поскольку в дальнейшем мы будем работать с ее файлами. После установки перейдем к .exe-файлу дистрибутива.
Распаковываем скачанный .exe-файл (например, с помощью архиватора 7-zip) в произвольную папку, (в нашем случае мы назвали ее nanoInstall). После распаковки получаем следующий набор файлов, представленный на рис. 1.

Рис. 1. Распакованный дистрибутив nanoCAD СПДС 6
Программа nanoCAD хранит свои настройки в нескольких файлах, расположенных в разных директориях. Для корректного развертывания дистрибутива необходимо разложить эти настройки по разным папкам. Поэтому создадим в nanoInstall папку для хранения настроек LocalEx с подкаталогами, как показано на рис. 2.

Рис. 2 Структура папок настраиваемого дистрибутива
После создания необходимой структуры папок в nanoinstall необходимо найти и подготовить файлы конфигурации, которые отвечают за настройки нашего дистрибутива (Settings.xml; AppOptions.xml; CAD.cfg; nCAD.ini и др.).
Они располагаются в соответствующих директориях, о которых пойдет разговор ниже.
Примечание: Мы можем менять настройки на уже установленном nanoCAD, но чтобы они вступили в силу, необходимо сбрасывать настройки интерфейса (рис. 3) либо очищать реестр.

Рис. 3. Окно настроек интерфейса nanoCAD
Подробнее о файлах конфигураций
Существует несколько файлов конфигураций: одни отвечают за интерфейс программы, другие – за элементы оформления, третьи – за общие настройки платформы. Ниже будут представлены все файлы в отдельности. Для лучшего понимания введем небольшие обозначения для местоположения файлов.
| На ПК | место хранения файла на вашем компьютере с предустановленным nanoCAD. |
| На инсталляционном диске | это путь, куда следует поместить измененные файлы конфигураций после завершения настроек. |
Default.ntb
| На ПК | C:UsersUserAppDataRoamingNanosoftnanoCAD Plus 6.0ru-RU |
| На инсталляционном диске | nanoInstall LocalExAppDataUserTemplatesru-RU |
Представляет собой двоичный файл, хранящий в себе данные записной книжки (рис. 4).
Данные настраиваются через интерфейс программы.

Рис. 4. Записная книжка nanoCAD СПДС
tinfo.xml
| На ПК | C:UsersUserAppDataRoamingNanosoftnanoCAD Plus 6.0ru-RU |
| На инсталляционном диске | nanoInstall LocalExAppDataUserTemplatesru-RU |
Представляет собой текстовый файл, хранящий в себе данные списков выбора. Позволяет добавить свои поля в списки выбора. Данные настраиваются через интерфейс программы при вводе нового значения, отличного от значения, приведенного в списке.
std.mcs
| На ПК | C:ProgramDataNanosoftnanoCAD СПДС 6.0DataROru-RU |
| На инсталляционном диске | nanoInstall LocalExCommonAppDataDataROru-RU |
Представляет собой двоичный файл, хранящий в себе данные объектов. Этот фал можно расположить локально на каждой машине либо на сервере, предварительно установив SQL Server.
Данные настраиваются через интерфейс программы.

Рис. 5. База объектов nanoCAD СПДС
Settings.xml
| На ПК | C:ProgramDataNanosoftnanoCAD СПДС 6.0DataROru-RU |
| На инсталляционном диске | nanoInstall LocalExCommonAppDataDataROru-RU |
В этом файле находятся настройки конфигурации программы (добавление/ограничение списка масштабов, предопределенных полей основной надписи формата). На рис. 3 изображен список масштабов оформления, который можно настроить в данном файле.
Добавление масштаба оформления в список стандартных масштабов
Чтобы добавить nanoCAD значение нового масштаба оформления, надо найти в файле Settings.xml соответствующий код в тегах … (рис. 6.1) и отредактировать существующий список масштабов. В xml-файле указаны комментарии о назначении параметров. Так, например, можно указать масштаб, который будет использоваться по умолчанию.
Добавление своего масштаба в список:
<Scale name="400:1" val="400" />
Присваиваем значение по умолчанию масштабу 1:400:
<Scale name="400:1" val="400" default="-1" />
![]() |
![]() |
| Рис. 6.1. Код списка масштабов оформления | Рис. 6.2. Настроенный список масштабов |
После завершения редактирования сохраните изменения в файле и запустите nanoCAD. Вы увидите, как ваши настройки повлияли на список масштабов (рис. 6.2).
Добавление масштаба измерений в список стандартных масштабов
Чтобы добавить nanoCAD значение нестандартного масштаба измерений, надо найти в файле Settings.xml соответствующий код (рис. 7.1) и добавить в существующий список масштабов аналогичные строки со своими параметрами. В xml-файле указаны комментарии о назначении параметров.
Добавление своего масштаба в список:
<Scale name="200:1" val="200" />
На рис. 7.1 сопоставлены код списка масштабов измерений и соответствующий список масштабов в окне nanoCAD.
![]() |
![]() |
| Рис. 7.1. Код списка масштабов измерений | Рис. 7.2. Настроенный список масштабов измерений |
После завершения редактирования сохраните изменения в файле и запустите nanoCAD. Вы увидите, как ваши настройки повлияли на список масштабов (рис. 7.2).
AppOptions.xml
| На ПК | C:UsersUserAppDataRoamingNanosoftnanoCAD Plus 6.0ru-RU |
| На инсталляционном диске | nanoInstall LocalExAppDataUserTemplatesru-RU |
В этом файле хранятся настройки оформления (меню Сервис → Настройка оформления). Здесь можно настроить типы линий, размеры, выноски, формы и т.д.
В качестве примера мы изменим настройки позиционной выноски в профиле СПДС, как показано на рис. 8. Мы изменили цвет линий выноски и толщину линии. Переопределенные значения выделяются голубым цветом – это те настройки, которые отличаются от стандартного файла AppOptions.xml.

Рис. 8. Окно настройки позиционной выноски
После завершения настроек их необходимо сохранить в xml-файл. Нажмите меню Файл → Сохранить настройки как. Укажите папку nanoInstall LocalExAppDataUserTemplatesru-RU и нажмите кнопку Сохранить (рис. 9).

Рис. 9. Сохранение файла настроек AppOptions.xml
Myblocks.hsf
| На ПК | C:Program Files (x86)NanosoftnanoCAD Plus 6.0 |
| На инсталляционном диске | nanoInstall LocalExProgram |
В прошлой статье мы создали свои команды, которые позволяли вставлять два готовых блока. Теперь мы можем добавить эти команды в наш дистрибутив. Для этого нужно поместить nsf-файл в нужную директорию инсталлятора. Таким образом можно распространить ваши собственные приложения, написанные для среды nanoCAD, среди всех пользователей вместе с дистрибутивом.
ncadbase.cfg и userdata.cfg
| На ПК | C:Program Files (x86)NanosoftnanoCAD Plus 6.0 |
| На инсталляционном диске | nanoInstall LocalExProgram |
В этом файле хранятся настройки интерфейса платформы: расположение панелей, пункты меню, контекстное меню мыши и т.д.
Примечание: чтобы увидеть измененные настройки cfg-фалов в программе, вам необходимо очистить реестр nanoCAD СПДС в ветке HKEY_LOCAL_MACHINESOFTWARENanosoftnanoCAD СПДС после сохранения произведенных настроек.
Предзагрузка приложений
Созданный nsf-файл с командами (об этом можно прочитать в прошлой статье) необходимо подгружать в программе при запуске. Ранее для этого мы пользовались пунктом Загрузка приложений (Сервис → Приложения → Загрузка приложения → Автозагрузка). Для предустановки этой опции мы зарегистрируем специальную команду, которая будет загружать nsf-файл.
[configmancommandssload_myblocks_nsf]
weight=i30 |cmdtype=i0 | intername=sload_myblocks_nsf
RealCommandName=snsf
Keyword=smyblocks.nsf^MCloseDocument^MNewDocument^M
Изменение контекстного меню
nanoCAD 7 не поддерживает файлы CUI, однако у нас есть доступ ко всем cfg-файлам, отвечающим за настройки интерфейса.
Попробуем изменить стандартное контекстное меню. На рис. 10а представлено стандартное контекстное меню nanoCAD. Перейдем в папку с продуктом C:Program FilesNanosoftnanoCAD СПДС 6.0 в файл ncadbase.cfg и найдем строки, описывающие стандартное правокнопочное меню. Они представлены списком с префиксом ViewPopupMenu.
[ViewPopupMenu] |Intername=sViewPopupMenu
[ViewPopupMenuLastCommand] |intername=sLastCommand1
[ViewPopupMenuLastCommandPopup] |name=s&Last commands
[ViewPopupMenuLastCommandPopupLC0] |intername=sLastCommand1
….
[ViewPopupMenuInspector] |name=sP&roperties |intername=sProperties
[ViewPopupMenuDrawingExplorer] |name=sDrawing &Explorer |intername=sDrawingExplorer

Рис. 10а. Стандартное правокнопочное меню nanoCAD СПДС
Стандартное меню мне показалось слишком большим, и я внес в него некоторые изменения: убрал некоторые команды, другие сгруппировал в выпадающие пункты и добавил несколько новых команд. В итоге у меня получился следующий код:
[ViewPopupMenu] |Intername=sViewPopupMenu
[ViewPopupMenuLastCommand] |intername=sLastCommand1
[ViewPopupMenuLastCommandPopup] |name=s&Last commands
[ViewPopupMenuLastCommandPopupLC0] |intername=sLastCommand1
[ViewPopupMenuLastCommandPopupLC1] |intername=sLastCommand2
[ViewPopupMenuLastCommandPopupLC2] |intername=sLastCommand3
[ViewPopupMenuLastCommandPopupLC3] |intername=sLastCommand4
[ViewPopupMenuLastCommandPopupLC4] |intername=sLastCommand5
[ViewPopupMenuLastCommandPopupLC5] |intername=sLastCommand6
[ViewPopupMenuLastCommandPopupLC6] |intername=sLastCommand7
[ViewPopupMenuLastCommandPopupLC7] |intername=sLastCommand8
[ViewPopupMenuLastCommandPopupLC8] |intername=sLastCommand9
[ViewPopupMenusep2]
[ViewPopupMenuUndo] |name=s&Undo |intername=sEditUndo
[ViewPopupMenuRedo] |name=s&Redo |intername=sEditRedo
[ViewPopupMenusep3]
[ViewPopupMenuMove] |name=sMove object
[ViewPopupMenuMoveerase] |name=sErase |intername=sDelete
[ViewPopupMenuMoveMoveCopy] |Name=sCop&y |InterName=sMoveCopy
[ViewPopupMenuMoveMirror] |Name=sMirror |InterName=sMirror
[ViewPopupMenuMoveOffset] |name=sOffset |intername=svcOffsetCmd
[ViewPopupMenuMoveArray] |Name=sArray |InterName=sArray
[ViewPopupMenuMovesep4]
[ViewPopupMenuMoveMoveObject] |Name=sMov&e |InterName=sMove
[ViewPopupMenuMoveRotateObject] |Name=s&Rotate |InterName=sRotate
[ViewPopupMenuMovesep10]
[ViewPopupMenuMovescale] |Name=s&Scale |InterName=sScale
[ViewPopupMenuMovestretch] |name=sStretch |intername=sstretch
[ViewPopupMenuMovesep5]
[ViewPopupMenuMoveTrim] |name=s&Trim Vectors |intername=svcTrimByEdgeCmd
[ViewPopupMenuMovesmarttrim] |name=sSmart &Trim |intername=ssmarttrim
[ViewPopupMenuMoveExtend] |name=s&Extend Vectors |intername=svcExpandByEdgeCmd
[ViewPopupMenuMoveBreak] |name=s&Break Vectors |intername=svcBreakCmd
[ViewPopupMenuMoveJoin] |name=s&Join objects |intername=sJoin
[ViewPopupMenuMoveExtend] |name=s&Extend Vectors |intername=svcExpandByEdgeCmd
[ViewPopupMenuMoveBreak] |name=s&Break Vectors |intername=svcBreakCmd
[ViewPopupMenuMoveJoin] |name=s&Join objects |intername=sJoin
[ViewPopupMenuClipboard] |name=sБуфер обмена
[ViewPopupMenuClipboardCut] |Name=s&Cut |InterName=sCut
[ViewPopupMenuClipboardCopy] |Name=s&Copy |InterName=sCopy
[ViewPopupMenuClipboardCopyWithBasePoint] |Name=s&Copy With Base Point |InterName=sCopyWithBasePoint
[ViewPopupMenuClipboardPaste] |Name=s&Paste |InterName=sPaste
[ViewPopupMenuClipboardPasteBlock] |Name=s&Paste as Block |InterName=sPasteBlock
[ViewPopupMenuClipboardPasteOriginal] |Name=sPaste to Original Coor&dinates |InterName=sPasteOrigin
[ViewPopupMenuIsolate] |name=sIsolate
[ViewPopupMenuIsolateIsolateObjects] |name=sIsolate &Objects |InterName=sIsolateObjects
[ViewPopupMenuIsolateHideObjects] |name=sHide Objects |InterName=sHideObjects
[ViewPopupMenuIsolateUnisolateObjects] |name=sUnisolate Objects |InterName=sUnisolateObjects
[ViewPopupMenuDisplayOrder] |name=sDispla&y Order
[ViewPopupMenuDisplayOrderBringToFront] |name=s&Bring to Front |InterName=sdraworder1
[ViewPopupMenuDisplayOrderSendToBack] |name=s&Send to Back |InterName=sdraworder2
[ViewPopupMenuDisplayOrderBringForward] |name=sBring &Forward |InterName=sdraworder3
[ViewPopupMenuDisplayOrderSendBackward] |name=sSend Back&ward |InterName=sdraworder4
[ViewPopupMenuSelect] |name=sSelect
[ViewPopupMenuSelectselectsimilar] |name=sSelect similar objects |intername=sselectsimilar
[ViewPopupMenuSelectSelectAll] |name=sSelect Al&l |intername=sSelectAll
[ViewPopupMenuSelectQuickSelect] |name=s&Quick Select |intername=sqs
[ViewPopupMenuSelectUnSelectAll] |name=sUnSelect All |intername=sUnSelectAll
[ViewPopupMenusep1]
[ViewPopupMenuAddSelected] |Name=sAdd Selected |InterName=sAddSelected
[ViewPopupMenusep5]
[ViewPopupMenuFind] |name=sSearch and Replace... |intername=sfind
[ViewPopupMenusep4]
[ViewPopupMenuInspector] |name=sP&roperties |intername=sProperties
[ViewPopupMenupreferences] |name=sPreferences |intername=sPreferencesCmd
После завершения редактирования сохраните файл с кодировкой ANSI. На рис. 10б представлен результат произведенных изменений.

Рис. 10б. Новое правокнопочное меню
Если вы настраиваете контекстное меню на уже установленном nanoCAD, то после сохранения изменений в файле ncadbase.cfg необходимо очистить реестр nanoCAD СПДС в ветке HKEY_LOCAL_MACHINESOFTWARENanosoftnanoCAD СПДС.
nprof.ini (nApp.ini)
| На ПК | C:Program Files (x86)NanosoftnanoCAD Plus 6.0 |
| На инсталляционном диске | nanoInstall LocalExProgram |
В этом файле содержатся настройки самой платформы nanoCAD. Чтобы в строках кода было легче ориентироваться, советую зайти в Сервис → Настройки и ознакомиться со структурой и последовательностью параметров.
В нашем примере мы разместим стандартные папки nanoCAD (шаблоны, шрифты, стили печати, формы) в общей папке на сервере и добавим свой шаблон dwt, который будем использовать по умолчанию.
- Создаем необходимые каталоги на сервере:
\ServerTemplates
\Servershx
\ServerPlotConfigs
\Server PlotStyles - Создаем шаблон test.dwt и помещаем его в папку на сервере: \ServerTemplatestest.dwt.
- Создаем с помощью блокнота файл nApp.ini и копируем в него необходимые настройки из nprof.ini или из готового примера, приведенного ниже.
[DefProfStdDirs]
TemplatesDir=s\ServerTemplates
Shx=s\Servershx
PlotConfigsDir=s\ServerPlotConfigs
PlotStylesDir=s\ServerPlotStyles
Pat=s\Servershx
[DefProfTemplateDoc]
UseTemplateFile=i1
TemplateName=sTest.dwt
[DefProfTemplateImport]
UseTemplateFile=i1
TemplateName=sTest.dwt
Примечание:
[DefProfStdDirs] – в этом разделе указаны параметры стандартных папок.
[DefProfTemplateDoc] и [DefProfTemplateImport] – это параметры использования шаблонов для новых и импортированных документов соответственно.
На рис. 11 представлен результат изменений файла настроек nrof.ini.

Рис. 11. Стандартные папки и использование шаблонов
Ранее мы зарегистрировали специальную команду для загрузки блоков, теперь в nApp.ini укажем загрузку данной команды при старте nanoCAD.
[DefProfStartupload_myblocks_nsf]
Теперь при запуске nanoCAD наше приложение по вставке блоков будет запускаться вместе с ним.
После сохранения файла nApp.ini скопируйте его в соответствующую директорию дистрибутива. Файл nprof.ini копировать не нужно.
Setup.ini
Перейдем к файлу setup.ini – последнему, который нам необходимо подготовить. Этот файл настроек самого дистрибутива находится в папке с уже распакованным инсталлятором (nanoinstall). В нем можно прописать серийный номер продукта или указать адрес сервера лицензий, а также папку для базы данных СПДС и путь к настройкам СТП. Для настройки инсталляции следует раскомментировать ключи и задать им свои значения. Редактировать нужно только ключи в разделе [InstallProperties]. При расскоментировании параметров не забываем раскоментировать раздел [InstallProperties]. Ниже представлен список доступных параметров.
Сервер лицензий
FLEXLM_VENDOR_NAME=Nanosoft
FLEXLM_LICENSE_FILE=@server
Серийный номер
SERIALNUMBER=ZZZ10-TRIAL-00000
Директория установки
INSTALLLOCATION=c:Best program
Папка локальной БД
DATABASE_PATH=c:std.mcs
Путь до БД в сети
DATABASE_PATH=SQL:SERVER:base
Папка хранения локальных настроек
SETTINGS=\serverSettings.xml
Папка СТП на сервере
CORP_OPTIONS=\serverCorpOptions.xml
Название префикса текущего профиля осуществляется путем добавления префикса к названиям слоев. Вручную его можно изменить в настройках оформления: Главные настройки → Общие настройки → Текущий профиль.
APP_OPTIONS_PROFILE=name
Если какой-либо из этих ключей закомментирован, то для него будет установлено значение по умолчанию, сохраненное в приложении.
Перенос файлов настроек
После окончания редактирования всех вышеперечисленных файлов их необходимо поместить в соответствующие директории инсталлятора (nanoinstall). Если вы используете дополнительные файлы (скрипты, lisp и т.д.), их можно поместить в папку Program (nanoInstall LocalExProgram) и они при установке будут размещены в Program Files папки продукта.
Тихая установка
Такие параметры необходимы, если вы собираетесь производить установку настроенного дистрибутива локально.
С помощью блокнота следует создать новый текстовый файл с расширением .bat в папке nanoInstall (рис. 8) и указать один из двух параметров установки:
- для установки в пассивном режиме (отображение диалога хода установки, но без участия пользователя) необходимо запускать setup.exe /i /passive
- для установки в скрытом режиме (для пользователя не будет отображаться даже диалога установки) нужно запускать Setup.exe /i /quiet

Рис. 8. Создание bat-файла для запуска инсталлятора
Заключение
Мы показали вам, как можно адаптировать nanoCAD под свои настройки, сохранить их в своих файлах и включить в свой инсталляционный пакет, что очень удобно для разворачивания nanoCAD на большом количестве рабочих мест в рамках сети предприятия. С помощью этих знаний вы не просто упростите себе жизнь при установке ПО, но и сможете контролировать единые настройки САПР на всех рабочих местах пользователей: все пользователи теперь будут работать с едиными шаблонами, шрифтами, настройками оформления и т.п. Вы даже можете выложить свои скрипты и команды на каждое рабочее место пользователя.
Остается отметить, что эта статья будет полезна для установки не только nanoCAD СПДС, но и для остальных вертикальных решений и для самой платформы nanoCAD. Удачного проектирования!
Сергей Спирин, mahbak
ЗАО Нанософт
Автор: Нанософт




