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



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

    Введение

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

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

    Возникает вопрос «а как включить такой журнал?». Тут все просто: в командной строке вводим команду «Параметры» (или «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 версию…
    Нанософт 64,19
    Компания
    Поделиться публикацией
    Комментарии 19
    • +4
      Запилите веб-сервис у себя на сайте: загружаешь архив с папкой логов и получаешь оценку.
      • –7
        зачем? )) я пока не вижу смысла )) но исходный код решения есть, энтузиасты могут сделать )
        • +7
          вот благодаря такому подходу отечественный софт всегда и проигрывает западному.
          • 0
            возможно… но я вот все о своем меркантильном и целесообразном…
      • +1
        более интересный вопрос мог бы звучать так:
        Могут ли свободные опенсорсные САПР-решения заменить nanoCAD? Давайте искать ответ…
        • +1
          А чем он интересен-то? Не то чтобы я фанат nanoCAD, но ценовая политика их коммерческой версии вполне разумна, для частного использования вообще бесплатно. Зачем вам исходный код САПР-системы, что там можно увидеть? Каковы шансы того, что непонятная опенсерсная система будет поддерживать требования отечественных ГОСТ-ов? Вам работать или идеалы опенсорса поддерживать?
          • –2
            Зачем вам исходный код САПР-системы, что там можно увидеть?

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

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


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

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

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

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

              Ну Компас на этом и взлетел, собственно. Сейчас это чуть ли не единственная отечественная САПР, которая реально конкурирует с западными аналогами (имея много своих проблем, но всё-таки перевалив уровень MVP).
            • 0
              Интерес в том, что открытый проект таковым останется, даже если авторы положат болт на него.
              • +1
                Иии что тогда? Ну будет мертвый открытый проект.
            • +1
              А много ли свободных опенсорсных решений кроме FreeCAD?
              • 0
                C машиностроительными open-source САПР ситуация очень плохая. DWG-совместимой САПР нет. FreeCAD — это другой класс ПО. FreeCAD движется в сторону аналога SolidWorks. Сравнивать с ним Нанокад некорректно. LibreCAD имеет множество ограничений.

                С САПР электроники ситуация намного лучше. Здесь есть почти полный набор инструментов для инженера.
                • 0
                  Есть еще QCAD, собственно LibreCAD это форк от QCAD.
                  QCAD более стабильный, также к нему есть недорогой коммерческий плагин с поддержкой DWG.
              • +1
                Не могут. На данный момент времени DWG-совместимой open-source САПР не существует.
              • +1
                Предметная область меня не интересует после окончания ВУЗа, да и о самой программе nanoCAD ничего не слышал, но статью прочитал с интересом. Пожалуй, один из лучших вариантов для пиара своего решения на хабре и аргументированное сравнение своей САПР с конкурентами.
                • +1
                  Импортозамещение кукарекали они, но системные требования: виндоуз XP, Vista, 7, 8

                  Fusion 360 стоит 300$ в год, а для студентов и стартапов с доходом менее $100,000 в год вообще бесплатен, плюс включает в себя средненький CAM
                  • +1
                    Импортозамещение кукарекали они, но системные требования: виндоуз XP, Vista, 7, 8

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

                      Ещё есть кроссплатформенный BricsCAD (платный) и DraftSight (также кроссплатформенный и бесплатный)
                    • 0
                      По просьбам из лички — в архив с утилитой доложил x32 версию…

                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                      Самое читаемое