- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

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

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

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

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

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

Автор: Sergiar

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/soft/108085

Ссылки в тексте:

[1] Nanocad: https://www.nanocad.ru/

[2] Bricscad: https://www.bricsys.com/en_INTL/bricscad/

[3] GstarCad: http://www.gstarcad.net/

[4] ZWcad: http://www.zwsoft.com/zwcad/

[5] попал под раздачу: http://www.deskeng.com/virtual_desktop/?p=8562

[6] Wiki : https://en.wikipedia.org/wiki/AutoLISP

[7] Вікі: https://uk.wikipedia.org/wiki/AutoLISP

[8] прикладные LISP-программы: http://www.cad.dp.ua/progs/program6.php#part2

[9] сервисные LISP программы: http://www.cad.dp.ua/progs/program2.php#part1

[10] отличная подборка кастомных программ: http://lee-mac.com/programs.html#general

[11] статьи-сравнения: http://isicad.ru/ru/articles.php?article_num=16671

[12] CadProfi: http://www.cadprofi.com/main/ru/

[13] Источник: http://geektimes.ru/post/268754/