Pull to refresh
99.74
Rating
Нанософт разработка
Инженерная экосистема

Может ли nanoCAD заменить западные САПР-решения? Давайте искать ответ…

Нанософт разработка corporate blog System Analysis and Design *Desktop environments *CAD/CAM *


При внедрении нашей САПР-платформы мы часто сталкиваемся с тем, что мало кто в нашей стране может адекватно оценить функционал такого сложного и многогранного инструмента как САПР, полно сравнить конкурирующие решения и сделать непредвзятую оценку. Чаще всего такую работу поручают местному «САПР-гуру» — специалисту-«фанату», который может быть (и, скорее всего, будет) предвзят, т.к. любит используемое им в текущий момент решение. В результате получаем список «вкусных», но малоиспользуемых функций, которые «вы должны сделать иначе никакого внедрения!», а тема импортозамещения плавно затухает. В ответ мы задумались об инструменте, который позволит сделать независимую оценку, реализовали его и теперь готовы им с вами поделиться.

Введение

Идея инструмента заключается в том, чтобы собрать в список функции, которые рядовой пользователь САПР использует в работе каждый день – т.е. выбираем группу пользователей, включаем на их компьютере ведение логов командной строки, собираем их в определенную папку в сети организации, а затем анализируем их. Сама по себе схема очень удобна:
  • все полностью автоматизировано: нужно только включить ведение журнала;
  • все абсолютно конфиденциально: в журнал логов включается только информация о вызываемых командах, а не о самом проекте;
  • сбор статистики абсолютно не мешает каждодневной работе пользователя: запись в журнал достаточно незаметная операция.

Самое главное — такой сбор статистики позволяет провести максимально полный анализ: вы можете собирать журналы хоть в течение целого года, а программа аккуратно будет коллекционировать вызовы команд в одну папочку. Также вы можете проводить анализ, разбив пользователей по группам – просто укажите разные папки для сбора статистики. А журналы затем покажут, какие команды платформы использовались, использовались ли какие-нибудь приложения или дополнительные разработки, какой уровень использования платформы и приложений (частота вызова команд) – т.е. непредвзятая чистая статистика и никакого субъективизма.

Возникает вопрос «а как включить такой журнал?». Тут все просто: в командной строке вводим команду «Параметры» (или «OPTIONS» для английской версии). Далее идем на закладку «Открытие\Сохранение» (или «Open and save»). И взводим опцию «Вести файл журнала» (или «Maintain a log file» — см. рис.1). В результате этой команды в системную папку, задаваемую переменной LOGFILEPATH, будет сохраняться информация из командной строки (журнал команд).


Рис. 1. Включив опцию «Вести файл журнала» вы сможете накапливать статистику о командах, используемых в САПР-решении, в папке, которая задается переменной LOGFILEPATH.

В принципе, все это настраивается еще через три системные переменные: LOGFILEMODE (включить\выключить режим ведения журнала), LOGFILEPATH (путь до папки ведения журналов) и LOGFILENAME (путь до текущего журнала команд). У вас нет таких команд и переменных? Скорее всего вы пользуетесь САПР, которая не позволяет вести журнал вызываемых команд, и у вас будет проходить не импортозамещение, а переход с конкурирующих решений – это чуть другая история…

UPG: Часто системные администраторы спрашивают как настроить эти переменные через доменные политики (чтобы не ходить по каждому рабочему месту и не настраивать сбор логов через интерфейс пользователя). Отвечаем — через реестр. В частности, переменные расположены в разделе HKCU\Software\Autodesk\AutoCAD\<версия>\ACAD-1001:419\Profiles\<<Профиль без имени>>\ (или тот профиль, который использует пользователь):
  • Включить логирование: переменная LogFileOpen типа REG_DWORD из подпапки General должна иметь значение «0х00000001» (т.е. вести логирование). Если переменной нет, то ее надо создать.


  • Путь сохранения log-файлов: переменная LogFilePath типа REG_EXPEND_SZ из подпапки Editor Configuration должна иметь строковое значение пути. Например, «D:\temp\log»



Итак, включили журнал ведения логов, собрали логи в папку – что дальше?

Предварительная обработка данных

Полученные в результате ведения файлы представляют собой груду файлов, внутри которых спрятаны используемые команды (рис.2).


Рис. 2. Типичная папка с журналами команд – на каждый файл отдельный журнал.

Если заглянуть внутрь, то мы увидим все, что писалось в САПР в командную строчку: вызовы команд (то, что нас интересует), системные сообщения, ответы пользователя, значения переменных, сообщения об ошибках, предупреждения и т.д. Все это теперь надо обработать и составить список вызываемых команд с информацией о том, как часто ее вызывали. Для этого мы написали простую утилиту на языке AutoIt, которая напускается на log-файлы в указанной папке, последовательно их обрабатывает и формирует массив команд с подсчетом частоты их вызова (рис.3).


Рис. 3. Утилита StatCAD, которая позволяет обработать журналы команд и сформировать список использованных команд.

Работа с утилитой StatCAD очень простая: достаточно указать папку с логами, нажать на кнопку «Анализ», дождаться окончания работы и, нажав на кнопку «Показать статистику», получить список в отдельном окне. Из этого окна можно данные скопировать в Excel или текстовый формат – как вам удобнее. Что дальше? А дальше начинается творческая работа.

Обработка полученной статистики

Во-первых, мы должны в найденном списке выделить команды САПР-платформы, т.е. необходимо иметь список штатных команд САПР-платформы, с которой сравниваем. Мы сейчас накопили порядка 2400 команд, системных переменных и алиасов-сокращений (как на русском, так и на английском языке), с которым проводим сравнение – простое пересечение таблиц в Access позволяет получить сходные и отличающиеся команды в один щелчок. Сложнее всего с отличающимися командами – их приходится анализировать вручную, отделяя синтаксические ошибки от команд приложений, команд, написанных пользователями, и т.п. Зачастую результат удивляет (см. рис.4) – статистика может показать, что доля платформы существенно превышает долю приложений:

Рис. 4. Предварительный список команд может содержать как вызовы приложений, так и синтаксические ошибки.

Во-вторых, мы можем сравнить список распознанных команд САПР-платформы со списком реализованных команд платформы nanoCAD Plus – это тоже пересечение двух таблиц в Access. В результате мы получим список команд, реализованных в режиме «один-к-одному» (полное совпадение).

Результаты анализа

И, наконец, список оставшихся команд разбивается на три части:
  1. Реализованный функционал, т.е. команды, которые не проходят через командую строку nanoCAD Plus, но тем не менее реализованы через интерфейс программы и их отсутствие пользователь на практике не заметит. Например, команда «PDFATTACH» (вставка PDF-подложек) не зарегистрирована на данный момент в списке команд nanoCAD, тем не менее доступна из меню Вставка\Подложки…
  2. Альтернативный функционал, т.е. команды, которые в силу особенности разработки отличаются от аналогичных команд других САПР, но позволяют пользователю решать поставленные задачи аналогично или даже с более высокой производительностью. Например, работа с таблицами в среде nanoCAD Plus 7.0 заточена под российские стандарты оформления плюс операции сбора данных с текущего DWG-чертежа – достаточно уникальная функция, объединяющая несколько инструментов в один.
  3. Не реализованный функционал, т.е. команды, которые сейчас не работают в среде nanoCAD Plus 7.0 и, увы, нет никакой альтернативы по их замене. Часть из этих функций находится в разработке (например, Подшивки, Инструментальные палитры), часть – требует анализа и дополнительного согласования по реализации, а часть – явно необязательна к реализации (например, «вызов веб-сайта 360»).

Третья часть с точки зрения анализа самая сложна – требуется проанализировать каждую команду, уточнить что она делает, есть ли альтернатива в платформе nanoCAD Plus (а может быть уже и реализована) и, если команда отсутствует, то оценить: насколько отсутствующая функция необходима в работе организации. Это ручной аналитический труд, но в результате вы будете награждены отличной говорящей диаграммой (рис. 5):

Рис. 5. Диаграмма, наглядно сравнивающая список команд nanoCAD Plus со списком команд западной САПР-платформы, используемой у одного из Заказчиков.

Но и это еще не все – помните, что мы не просто сформировали список вызываемых команд, но и собрали статистику по частоте их вызова? И правда, одно дело — ответ на вопрос «реализована команда или нет?» и совершенно другое — «используется ли вызванная команда?». И тут тоже можно получить говорящие результаты (см. рис.6) – доля не реализованного в nanoCAD функционала может упасть до 1-3%! Это означает, что в подавляющем числе случаев пользователи не заметят разницы между nanoCAD и западными решениями в функциональном плане:

Рис. 6. А если сравнивать команды по частоте вызова, то картина будет еще более убедительная.

Вместо заключения

Признаюсь, когда я впервые получил подобные результаты, у меня самого был шок. Получается, что на сегодняшний момент платформа nanoCAD может достаточно свободно замещать популярные западные решения в функциональном плане: в 97-99% случаях пользователи получат альтернативный инструмент для работы. На сегодняшний момент я провел подобный анализ в пяти организациях: соотношения команд примерно одинаковые и я перестаю удивляться.

Тем не менее, я думаю, что результаты анализа могут сильно отличаются от одной организации к другой. Именно поэтому я хочу поделиться с вами всеми материалами – попробуйте провести анализ на своем предприятии и давайте совместно ответим на вопрос «возможно ли импортозамещение на nanoCAD Plus?». Что у меня есть:
  • Утилита StatCAD 3.01, которая обрабатывает log-файлы и собирает статистику по командам используемой вами САПР-платформы. Делюсь с вами как исполняемым модулем (x32 и x64), так и AutoIt-скриптом (исходный код).
  • Excel-таблица со списком известных на данный момент команд, системных переменных и сокращений как платформы nanoCAD, так и одной из известных западной САПР-платформы. Кроме того, таблица содержит список найденных отличающихся команд с анализом на тему того, к какой группе команд она относится (альтернатива, реализовано, не реализовано).
  • Пример папки с log-файлами, на котором вы можете прогнать утилиту StatCAD 3.01. Лучше, конечно, сюда положить собранные ваши log-файлы.
  • Excel- и Access-документ, анализирующий таблицы – просто поместите результаты утилиты StatCAD 3.01 в файл CLIENT_CMD.xlsx и в Access открывайте таблицы 02ACAD_CROSS, 02ACAD_NOTFOUND, 03ACAD-NCAD_CROSS, 04ACAD-NCAD_NOCROSS – думаю, что названия таблиц говорят сами за себя.

Если у вас не получается провести анализ собранной статистики своими силами, то я буду рад получить ваши log-файлы. Или Excel-таблицы со списком используемых вами команд (заполненный CLIENT_CMD.xlsx из приложенных архивов). В этом случае я смогу провести анализ самостоятельно и полученные результаты использовать для развития платформы nanoCAD. Поверьте, это будет очень полезная для нас информация – на основании этих данных мы развиваем продукт дальше, а вы получаете удобный инструмент.

Дисклеймер
Данный анализ демонстрирует принципиальную возможность или невозможность замены одного САПР-решения на другое, но не гарантирует результат. Любое внедрение кроме приведенного в статье технического аспекта связано с рядом других технических, организационных, психологических и прочих моментов. Именно поэтому мы рекомендуем работу по импортозамещению проводить вместе с авторизованными дилерами ЗАО Нанософт.

UPD: По просьбам из лички — в архив с утилитой доложил x32 версию…
Tags:
Hubs:
Total votes 22: ↑15 and ↓7 +8
Views 23K
Comments 19
Comments Comments 19

Information

Founded
Location
Россия
Website
www.nanocad.ru
Employees
Unknown
Registered