Воткнуть невтыкаемое: устанавливаем на GStarCAD плагины от AutoCAD-a

    Всем привет.
    Статья носит немного спонтанный характер, но, я надеюсь, эта информация будет полезной. Я наткнулся на такую возможность в меру случайно, но она показалась мне полезной, поэтому хочу поделиться наблюдением.
    Речь пойдет о попытке установить плагины с одной САПР системы на другую. Как и зачем это делалось, а также что из этого получилось (и что не получилось) – под катом.



    Начнем, пожалуй, с вопроса «Зачем?».
    А вот зачем:
    Продукт Autocad является признанным лидером на рынке САПР для малого и среднего бизнеса. Все бы хорошо, но компания проводит не очень дружественную к пользователю ценовую политику, что, вместе с непростой экономической ситуацией, способствует поиску (и нахождению) альтернатив. Их, на самом деле, довольно много, недорогих, а порой, даже бесплатных: от Nanocad до Bricscad, GstarCad и ZWcad, который, кстати, слегка попал под раздачу от Autodesk. Беда в том, что любой переход с одного инструмента на другой требует привыкания, а порой даже обучения.
    Благо, производители альтернативных САПРов стремятся максимально приблизиться к стандартам, заданным флагманом, и, надо признать, зачастую им это удается. Как в функциональном плане, так и в контексте интерфейса различий совсем не много, так что переучиваться точно не придется. Но есть закавыка: в процессе работы конструктор обычно собирает свой «личный» набор инструментов, таких как плагины, скрипты и прочая вспомогательная мелочь, без которой уже тяжело привычно и быстро работать. Тем более, что продвинутые САПРы позволяют создавать собственные программки, которые выполняют ту или иную нужную функцию.
    Так вот, речь пойдет об использовании подобных инструментов в «чужой» среде. Если конкретно, попробуем применить плагины для Автокада в среде GStarcad. У меня есть стойкое подозрение, что с другими программами будет та же история, но пока рассмотрим именно эту парочку.

    Самое время ответить на вопрос «как?».
    А вот как:
    Многие САПР поддерживают языки программирования. Один из таких языков — Lisp, точнее, его диалект: AutoLISP (Wiki — англ, Вікі — укр).
    Есть множество программ, написанных для Автокада на Лиспе. Вот несколько полезных ссылок:
    прикладные LISP-программы
    сервисные LISP программы
    отличная подборка кастомных программ
    Естественно, все это (и много больше) легко находится в интернетах.
    Именно с Лисп-плагинами портирование происходит проще всего. Собственно, и портирования никакого не требуется.
    Просто открываем Gstarcad, в командной строке выполняем команду appload и в открывшемся окне подключения плагинов кликаем кнопку «Load».
    image
    Находим файл .lsp, в котором содержится код Lisp и подключаем его.
    Обратите внимание на формат файлов, которые можно подключить как плагины (в рамке на скрине).
    image
    САПР сообщит, что плагин успешно подключен, и какой командой можно к нему обратиться.
    Для примера используем плагин, который помогает выделять дугу на окружности при пересечении ее с другими объектами.
    image
    Процесс работы с плагином отображается в командной строке.
    Такое подключение активирует плагин на один рабочий сеанс. Если он нужен перманентно, то можно добавить его в «автозагрузку» программы, кликнув на кнопку «Contens» или на иконку «StartUp suite» и через появившееся диалоговое окно выбрать нужный плагин.

    Повторить подобный трюк для VBA мне не удалось.
    Информация для тех, кто умеет программировать на .NET. Цитата из статьи-сравнения Autocad и ZWcad:


    Первым делом нужно установить .NET версии 4.0 и заменить все ссылки на файлы AcMgd.dll и AcDbMgd.dll на соответствующие версии этих файлов для ZWCAD+. Естественно, сделать это несложно. Далее необходимо соответствующим образом изменить пространство имен. Например, моя утилита была написана в VB.NET, и потребовалось внести следующие изменения в список импортов в начале программного кода:
    image

    В проекте было еще несколько аналогичных моментов, которые требовали корректировки, но, опять же, все это были всего лишь модификации пространства имен, как и в случае, показанном выше. Невероятно, но помимо этих, очень незначительных изменений, больше ничего не понадобилось делать. Все свойства и методы, использованные мной в первоначальном AutoCAD’овском API, по-видимому, имели действующие равнозначные эквиваленты в ZWCAD+, поскольку в IDE никаких ошибок выдано не было.
    ...

    Эта выдержка наталкивает на мысль, что VBA и C# проекты тоже можно портировать, но все-таки приложив определенные, пусть и небольшие, усилия.

    Заинтересовавшись вопросом, выяснил, что многие серьезные программы-дополнения (плагинами их уже язык не поворачивается называть), например CadProfi, поддерживают «альтернативные» САПР.

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

    Подробнее
    Реклама
    Комментарии 2
    • +1
      Беда в том, что любой переход с одного инструмента на другой требует привыкания, а порой даже обучения.
      Беда в том, что НОРМАЛЬНАЯ поддержка DWF — стандарта отрасли, есть только у продуктов Autodesk. Все остальные допускают определенные… вольности в его интерпретации. Это как с Word и аналогами, разница лишь в том, что при семизначных(минимум) бюджеах проектов надеяться, что чертеж, сотворенный в альтернативном КАДе откроется у подрядчика в другом альтернативном КАДе так, как нужно — удел отчаянных авантюристов.
      • +1
        Наш опыт портирования приложений на nanoCAD отчасти изложен в статье habrahabr.ru/company/nanosoft/blog/248753, написанной по мотивам доклада на конференции о кросс-САПР-платформенной разработке. В статью не вошло введение из доклада, посвящённое истории возникновения и развития API клонов AutoCAD-а, но его можно прочитать в презентации или посмотреть в записи доклада, они в конце статьи.

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