Створення дистрибутива nanoCAD з користувацькими налаштуваннями


У великих організаціях процес підготовки та налаштування робочих місць проектувальників часто буває скрутним і рутинним. Здавалося б, для вирішення такої тривіальної завдання, як встановлення САПР, не потрібно витрачати багато ресурсів, достатньо лише поширити дистрибутив через доменні політики або просто «розшарити» папку з готовим дистрибутивом і сміливо приступати до роботи в CAD-системі. Виникає питання: «А що якщо в організації сущетвует свої стандарти оформлення до випуску документації, якщо є власні напрацювання у вигляді готових блоків або команд? Планується використання спільної бази даних (якщо застосовується СПДС, Залізобетон або Будмайданчик)?»

В такому разі перед нами постає ще одне завдання – налаштувати робочі місця користувачів, а робити це з кожним місцем окремо вкрай нераціонально. Поширити вже налаштований дистрибутив – єдине правильне рішення. Де ж зберігає свої налаштування 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:\Users\User\AppData\Roaming\Nanosoft\nanoCAD Plus 6.0\ru-RU
На інсталяційному диску nanoInstall \LocalEx\AppData\UserTemplates\ru-RU
Представляє собою двійковий файл, який зберігає в собі дані записної книжки (рис. 4).
Дані настроюються через інтерфейс програми.

Рис. 4. Записна книжка nanoCAD СПДС

tinfo.xml
На ПК C:\Users\User\AppData\Roaming\Nanosoft\nanoCAD Plus 6.0\ru-RU
На інсталяційному диску nanoInstall \LocalEx\AppData\UserTemplates\ru-RU
Представляє собою текстовий файл, що зберігає в собі дані списків вибору. Дозволяє додати свої поля в списки вибору. Дані настроюються через інтерфейс програми при введенні нового значення, відмінного від значення, наведеного у списку.

std.mcs
На ПК C:\ProgramData\Nanosoft\nanoCAD СПДБ 6.0\DataRO\ru-RU
На інсталяційному диску nanoInstall \LocalEx\CommonAppData\DataRO\ru-RU
Представляє собою двійковий файл, який зберігає в собі дані об'єктів. Цей фал можна розташувати локально на кожній машині або на сервері, попередньо встановивши SQL Server.
Дані настроюються через інтерфейс програми.

Рис. 5. База об'єктів nanoCAD СПДС

Settings.xml
На ПК C:\ProgramData\Nanosoft\nanoCAD СПДБ 6.0\DataRO\ru-RU
На інсталяційному диску nanoInstall \LocalEx\CommonAppData\DataRO\ru-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:\Users\User\AppData\Roaming\Nanosoft\nanoCAD Plus 6.0\ru-RU
На інсталяційному диску nanoInstall \LocalEx\AppData\UserTemplates\ru-RU
У цьому файлі зберігаються налаштування оформлення (меню Сервіс → Параметри оформлення). Тут можна налаштувати типи ліній, розміри, виноски, форми і т. д.
В якості прикладу ми змінимо налаштування позиційної виноски в профілі СПДС, як показано на рис. 8. Ми змінили колір ліній виносок і товщину лінії. Перевизначені значення виділяються блакитним кольором – це ті параметри, які відрізняються від стандартного файлу AppOptions.xml.

Рис. 8. Вікно налаштування позиційної виноски

Після завершення налаштувань їх необхідно зберегти в xml-файл. Натисніть меню Файл → Зберегти налаштування. Вкажіть папку nanoInstall \LocalEx\AppData\UserTemplates\ru-RU\ і натисніть кнопку Зберегти (рис. 9).

Рис. 9. Збереження файла налаштувань AppOptions.xml

Myblocks.hsf
На ПК C:\Program Files (x86)\Nanosoft\nanoCAD Plus 6.0
На інсталяційному диску nanoInstall \LocalEx\Program
У минулій статті ми створили свої команди, які дозволяли вставляти два готових блоку. Тепер ми можемо додати ці команди в наш дистрибутив. Для цього потрібно помістити nsf файл в потрібну директорію інсталятора. Таким чином можна поширити ваші власні додатки, написані для середовища nanoCAD, серед всіх користувачів разом з дистрибутивом.

ncadbase.cfg і userdata.cfg
На ПК C:\Program Files (x86)\Nanosoft\nanoCAD Plus 6.0
На інсталяційному диску nanoInstall \LocalEx\Program
У цьому файлі зберігаються налаштування інтерфейсу платформи: розташування панелей, пункти меню, контекстне меню миші і т. д.

Примітка: щоб побачити змінені настройки cfg-файлів в програмі, вам необхідно очистити реєстр nanoCAD СПДС в гілці HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD СПДС після збереження зроблених налаштувань.

Предзагрузка додатків

Створений nsf файл з командами (про це можна прочитати в попередній статті) необхідно довантажувати в програмі при запуску. Раніше для цього ми користувалися пунктом Завантаження додатків (Сервіс → Програми → Завантаження програми → Автозавантаження). Для передустановки цієї опції ми зареєструємо спеціальну команду, яка буде завантажувати nsf файл.
[\configman\commands\sload_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 Files\Nanosoft\nanoCAD СПДС 6.0 у файл ncadbase.cfg і знайдемо рядки, що описують стандартне правокнопочное меню. Вони представлені списком з префіксом \ViewPopupMenu\.
[\ViewPopupMenu] |Intername=sViewPopupMenu
[\ViewPopupMenu\LastCommand] |intername=sLastCommand1
[\ViewPopupMenu\LastCommandPopup] |name=s&Last commands
[\ViewPopupMenu\LastCommandPopup\LC0] |intername=sLastCommand1
....
[\ViewPopupMenu\Inspector] |name=sP&roperties |intername=sProperties
[\ViewPopupMenu\DrawingExplorer] |name=sDrawing &Explorer |intername=sDrawingExplorer


Рис. 10а. Стандартне правокнопочное меню nanoCAD СПДС

Стандартне меню мені здалося занадто великим, і я вніс до нього деякі зміни: прибрав деякі команди, інші згрупував у випадають пункти і додав декілька нових команд. В результаті у мене вийшов наступний код:

Розкрити код
[\ViewPopupMenu] |Intername=sViewPopupMenu
[\ViewPopupMenu\LastCommand] |intername=sLastCommand1
[\ViewPopupMenu\LastCommandPopup] |name=s&Last commands
[\ViewPopupMenu\LastCommandPopup\LC0] |intername=sLastCommand1
[\ViewPopupMenu\LastCommandPopup\LC1] |intername=sLastCommand2
[\ViewPopupMenu\LastCommandPopup\LC2] |intername=sLastCommand3
[\ViewPopupMenu\LastCommandPopup\LC3] |intername=sLastCommand4
[\ViewPopupMenu\LastCommandPopup\LC4] |intername=sLastCommand5
[\ViewPopupMenu\LastCommandPopup\LC5] |intername=sLastCommand6
[\ViewPopupMenu\LastCommandPopup\LC6] |intername=sLastCommand7
[\ViewPopupMenu\LastCommandPopup\LC7] |intername=sLastCommand8
[\ViewPopupMenu\LastCommandPopup\lc8 блідий ліловий] |intername=sLastCommand9
[\ViewPopupMenu\sep2]
[\ViewPopupMenu\Undo] |name=s&Undo |intername=sEditUndo
[\ViewPopupMenu\Redo] |name=s&Redo |intername=sEditRedo
[\ViewPopupMenu\sep3]
[\ViewPopupMenu\Move] |name=sMove object
[\ViewPopupMenu\Move\erase] |name=sErase |intername=sDelete
[\ViewPopupMenu\Move\MoveCopy] |Name=sCop&y |InterName=sMoveCopy
[\ViewPopupMenu\Move\Mirror] |Name=sMirror |InterName=sMirror
[\ViewPopupMenu\Move\Offset] |name=sOffset |intername=svcOffsetCmd
[\ViewPopupMenu\Move\Array] |Name=sArray |InterName=sArray
[\ViewPopupMenu\Move\sep4]
[\ViewPopupMenu\Move\MoveObject] |Name=sMov&e |InterName=sMove
[\ViewPopupMenu\Move\RotateObject] |Name=s&Rotate |InterName=sRotate
[\ViewPopupMenu\Move\sep10]
[\ViewPopupMenu\Move\scale] |Name=s&Scale |InterName=sScale
[\ViewPopupMenu\Move\stretch] |name=sStretch |intername=sstretch
[\ViewPopupMenu\Move\sep5]
[\ViewPopupMenu\Move\Trim] |name=s&Trim Vectors |intername=svcTrimByEdgeCmd
[\ViewPopupMenu\Move\smarttrim] |name=sSmart &Trim |intername=ssmarttrim
[\ViewPopupMenu\Move\Extend] |name=s&Extend Vectors |intername=svcExpandByEdgeCmd
[\ViewPopupMenu\Move\Break] |name=s&Break Vectors |intername=svcBreakCmd
[\ViewPopupMenu\Move\Join] |name=s&Join objects |intername=sJoin
[\ViewPopupMenu\Move\Extend] |name=s&Extend Vectors |intername=svcExpandByEdgeCmd
[\ViewPopupMenu\Move\Break] |name=s&Break Vectors |intername=svcBreakCmd
[\ViewPopupMenu\Move\Join] |name=s&Join objects |intername=sJoin
[\ViewPopupMenu\Clipboard] |name=ѕБуфер обміну
[\ViewPopupMenu\Clipboard\Cut] |Name=s&Cut |InterName=sCut
[\ViewPopupMenu\Clipboard\Copy] |Name=s&Copy |InterName=sCopy
[\ViewPopupMenu\Clipboard\CopyWithBasePoint] |Name=s&Copy With Base Point |InterName=sCopyWithBasePoint
[\ViewPopupMenu\Clipboard\Paste] |Name=s&Paste |InterName=sPaste
[\ViewPopupMenu\Clipboard\PasteBlock] |Name=s&Paste as Block |InterName=sPasteBlock
[\ViewPopupMenu\Clipboard\PasteOriginal] |Name=sPaste to Original Coor&dinates |InterName=sPasteOrigin
[\ViewPopupMenu\Isolate] |name=sIsolate 
[\ViewPopupMenu\Isolate\IsolateObjects] |name=sIsolate &Objects |InterName=sIsolateObjects
[\ViewPopupMenu\Isolate\HideObjects] |name=sHide Objects |InterName=sHideObjects
[\ViewPopupMenu\Isolate\UnisolateObjects] |name=sUnisolate Objects |InterName=sUnisolateObjects
[\ViewPopupMenu\DisplayOrder] |name=sDispla&y Order
[\ViewPopupMenu\DisplayOrder\BringToFront] |name=s&Bring to Front |InterName=sdraworder1
[\ViewPopupMenu\DisplayOrder\SendToBack] |name=s&Send to Back |InterName=sdraworder2
[\ViewPopupMenu\DisplayOrder\BringForward] |name=sBring &Forward |InterName=sdraworder3
[\ViewPopupMenu\DisplayOrder\SendBackward] |name=sSend Back&ward |InterName=sdraworder4
[\ViewPopupMenu\Select] |name=sSelect 
[\ViewPopupMenu\Select\selectsimilar] |name=sSelect similar objects |intername=sselectsimilar
[\ViewPopupMenu\Select\SelectAll] |name=sSelect Al&l |intername=sSelectAll
[\ViewPopupMenu\Select\QuickSelect] |name=s&Quick Select |intername=sqs
[\ViewPopupMenu\Select\UnSelectAll] |name=sUnSelect All |intername=sUnSelectAll
[\ViewPopupMenu\sep1] 
[\ViewPopupMenu\AddSelected] |Name=sAdd Selected |InterName=sAddSelected
[\ViewPopupMenu\sep5]
[\ViewPopupMenu\Find] |name=sSearch and Replace... |intername=sfind
[\ViewPopupMenu\sep4]
[\ViewPopupMenu\Inspector] |name=sP&roperties |intername=sProperties
[\ViewPopupMenu\preferences] |name=sPreferences |intername=sPreferencesCmd

Після завершення редагування збережіть файл з кодуванням ANSI. На рис. 10б представлений результат проведених змін.

Рис. 10б. Нове правокнопочное меню

Якщо ви налаштовуєте контекстне меню на вже встановленому nanoCAD, то після збереження змін у файлі ncadbase.cfg необхідно очистити реєстр nanoCAD СПДС в гілці HKEY_LOCAL_MACHINE\SOFTWARE\Nanosoft\nanoCAD СПДС.

nprof.ini (nApp.ini)
На ПК C:\Program Files (x86)\Nanosoft\nanoCAD Plus 6.0
На інсталяційному диску nanoInstall \LocalEx\Program
В цьому файлі містяться налаштування самої платформи nanoCAD. Щоб у рядках коду було легше орієнтуватися, раджу зайти в Інструменти → Налаштування і ознайомитися зі структурою та послідовністю параметрів.
У нашому прикладі ми розмістимо стандартні папки nanoCAD (шаблони, шрифти, стилі друку, форми) в загальній папці на сервері і додамо свій шаблон dwt, який будемо використовувати за умовчанням.
  1. Створюємо необхідні каталоги на сервері:
    \\Server\Templates
    \\Server\shx
    \\Server\PlotConfigs
    \\Server\ PlotStyles
  2. Створюємо шаблон test.dwt і поміщаємо його в папку на сервері: \\Server\Templates\test.dwt.
  3. Створюємо за допомогою блокнота файл nApp.ini і копіюємо в нього необхідні налаштування з nprof.ini або з готового прикладу, наведеного нижче.
[\DefProf\StdDirs]
TemplatesDir=s\\ServerTemplates
Shx=s\\Server\shx
PlotConfigsDir=s\\Server\PlotConfigs
PlotStylesDir=s\\Server\PlotStyles
Pat=s\\Server\shx

[\DefProf\TemplateDoc]
UseTemplateFile=i1
TemplateName=sTest.dwt

[\DefProf\TemplateImport]
UseTemplateFile=i1
TemplateName=sTest.dwt

Примітка:
[\DefProf\StdDirs] – в цьому розділі вказані параметри стандартних папок.
[\DefProf\TemplateDoc] і [\DefProf\TemplateImport] – це параметри використання шаблонів для нових та імпортованих документів відповідно.

На рис. 11 представлений результат змін файлу налаштувань nrof.ini.

Рис. 11. Стандартні папки і використання шаблонів
Раніше ми зареєстрували спеціальну команду для завантаження блоків, тепер у nApp.ini вкажемо завантаження даної команди при старті nanoCAD.
[\DefProf\Startup\load_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=\\server\Settings.xml

Папка СТП на сервері 
CORP_OPTIONS=\\server\CorpOptions.xml

Назва префікса поточного профілю здійснюється шляхом додавання префікса до назв шарів. Вручну його можна змінити в налаштуваннях оформлення: Головні параметри → налаштування → Поточний профіль.
APP_OPTIONS_PROFILE=name

Якщо який-небудь з цих ключів закомментирован, то для нього буде встановлено значення за замовчуванням, збережене в додатку.

Перенесення файлів налаштувань
Після закінчення редагування всіх перерахованих вище файлів їх необхідно помістити у відповідні директорії інсталятора (nanoinstall). Якщо ви використовуєте додаткові файли (скрипти, lisp і т. д.), їх можна помістити в папку Program (nanoInstall \LocalEx\Program), і вони при установці будуть розміщені в Program Files папки продукту.

Тиха установка
Такі параметри необхідні, якщо ви збираєтеся проводити встановлення налаштованого дистрибутива локально.
За допомогою блокнота слід створити новий текстовий файл з розширенням .bat в папці nanoInstall (рис. 8) і вказати один з двох параметрів установки:
  • для установки в пасивному режимі (відображення діалогу ходу установки, але без участі користувача) необхідно запускати setup.exe /i /passive
  • для установки в прихованому режимі (для користувача не буде відображатися навіть діалогу установки) потрібно запускати Setup.exe /i /quiet

Рис. 8. Створення bat-файл для запуску інсталятора

Висновок
Ми показали вам, як можна адаптувати nanoCAD під свої настроювання, зберегти їх у своїх файлах і включити в свій інсталяційний пакет, що дуже зручно для розгортання nanoCAD на великій кількості робочих місць в рамках мережі підприємства. З допомогою цих знань ви не просто спростіть собі життя при установці, але і зможете контролювати єдині налаштування САПР на всіх робочих місцях користувачів: всі користувачі тепер будуть працювати з єдиними шаблонами, шрифтів, настройками оформлення і т.п. Ви навіть можете викласти свої скрипти і команди на кожне робоче місце користувача.

Залишається зазначити, що ця стаття буде корисна для установки не тільки nanoCAD СПДС, але і для інших вертикальних рішень і для самої платформи nanoCAD. Вдалого проектування!

Сергій Спірін, mahbak
ЗАТ Нанософт

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.