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

Введение

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

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

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


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

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

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

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

Полученные в результате ведения файлы представляют собой груду файлов, внутри которых спрятаны используемые команды (рис.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 версию…

Комментарии (16)


  1. RomanPyr
    20.11.2015 18:19

    Запилите веб-сервис у себя на сайте: загружаешь архив с папкой логов и получаешь оценку.


    1. dows
      20.11.2015 18:23

      зачем? )) я пока не вижу смысла )) но исходный код решения есть, энтузиасты могут сделать )


      1. RomanPyr
        21.11.2015 09:33

        вот благодаря такому подходу отечественный софт всегда и проигрывает западному.


        1. dows
          23.11.2015 14:15

          возможно… но я вот все о своем меркантильном и целесообразном…


  1. Kemet
    20.11.2015 18:39

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


    1. dom1n1k
      20.11.2015 21:32

      А чем он интересен-то? Не то чтобы я фанат nanoCAD, но ценовая политика их коммерческой версии вполне разумна, для частного использования вообще бесплатно. Зачем вам исходный код САПР-системы, что там можно увидеть? Каковы шансы того, что непонятная опенсерсная система будет поддерживать требования отечественных ГОСТ-ов? Вам работать или идеалы опенсорса поддерживать?


      1. vv_kuznetsov
        21.11.2015 15:16

        Зачем вам исходный код САПР-системы, что там можно увидеть?

        Можно исправить глюк. Например в DraftSight долгое время было поломано открывание файлов с кириллическими именами. Фикс бы занимал несколько строчек. Техподдержка на данный баг никак не реагировала.

        Каковы шансы того, что непонятная опенсерсная система будет поддерживать требования отечественных ГОСТ-ов?


        Никаких шансов нет. Это относится не только к open-source, но и ко всем остальным. Производитель САПР не обязан соблюдать все имеющиеся в мире стандарты.

        Кстати, из того с чем мне приходилось работать лучшая поддержка ГОСТов из коробки у КОМПАС.


        1. dom1n1k
          21.11.2015 15:42

          Фикс бы занимал несколько строчек.

          Ой ли? Кто сказал, что несколько строчек? Быть может, разработчик долго не исправлял баг не из вредности, а потому что там были какие-то проблемы, которые тянули за собой большой рефакторинг (как это часто бывает)? Если бы там было реально несколько строчек, почему бы не исправить.

          Ну Компас на этом и взлетел, собственно. Сейчас это чуть ли не единственная отечественная САПР, которая реально конкурирует с западными аналогами (имея много своих проблем, но всё-таки перевалив уровень MVP).


    1. NeoNN
      21.11.2015 00:20

      А много ли свободных опенсорсных решений кроме FreeCAD?


      1. vv_kuznetsov
        21.11.2015 14:58

        C машиностроительными open-source САПР ситуация очень плохая. DWG-совместимой САПР нет. FreeCAD — это другой класс ПО. FreeCAD движется в сторону аналога SolidWorks. Сравнивать с ним Нанокад некорректно. LibreCAD имеет множество ограничений.

        С САПР электроники ситуация намного лучше. Здесь есть почти полный набор инструментов для инженера.


    1. vv_kuznetsov
      21.11.2015 14:54

      Не могут. На данный момент времени DWG-совместимой open-source САПР не существует.


  1. questor
    20.11.2015 20:59

    Предметная область меня не интересует после окончания ВУЗа, да и о самой программе nanoCAD ничего не слышал, но статью прочитал с интересом. Пожалуй, один из лучших вариантов для пиара своего решения на хабре и аргументированное сравнение своей САПР с конкурентами.


  1. tzlom
    21.11.2015 00:56

    Импортозамещение кукарекали они, но системные требования: виндоуз XP, Vista, 7, 8

    Fusion 360 стоит 300$ в год, а для студентов и стартапов с доходом менее $100,000 в год вообще бесплатен, плюс включает в себя средненький CAM


    1. vv_kuznetsov
      21.11.2015 14:52

      Импортозамещение кукарекали они, но системные требования: виндоуз XP, Vista, 7, 8

      Меня тоже всегда такое удивляет у наших импортозаместителей. Это не только Нанокада касается.


    1. vv_kuznetsov
      21.11.2015 15:02

      Fusion 360

      Ещё есть кроссплатформенный BricsCAD (платный) и DraftSight (также кроссплатформенный и бесплатный)


  1. dows
    25.11.2015 10:28

    По просьбам из лички — в архив с утилитой доложил x32 версию…