Что такое "плагин"?


В моем блоге вы часто будете сталкиваться с этим иностранным словом "плагин". Plug-in (вставка, затычка) - это очень просто - это маленькая программа, которую никак нельзя запустить самостоятельно, для нее обязательна нужна главная большая программа. В нашем случае это Автокад или Брикскад. 

Есть много способов расширить возможности Автокад. Самое простое - это запускать сразу пачку команд вместо одной. Такие "пачки" называют макро-командами или просто макросами. Макросы можно писать прямо в командной строке или в поле настройки кнопочки меню. В макросах используются хитрые символы. Например ^C - имитирует нажатие на кнопку Esc. Есть еще более хитрые макросы на языке Diesel. А еще в Автокад есть специальный Макро-рекордер (Action Recorder), который записывает нажатые вами кнопки и позволяет воспроизвести эту последовательность команд. Это самый простой способ автоматизации всякой рутины. Никаких хитростей, никаких языков программирования.

Если язык макро команд становиться достаточно сложными, похожим на языки программирования, то такие макросы уже обычно называют скриптами. Автокад поддерживает два языка скриптов: Бейсик (VBA) и LISP. Оба они крайне ограниченные по функционалу и ооооочень медленно выполняются. Можно считать, что это наследие старины глубокой. Сегодня нет смысла изучать эти языки и что-то на них писать. Но вполне имеет смысл использовать старые чужие наработки. На просторах интернета вы  найдете миллион "ЛИСПиков". У ЛИСП-скриптов и макросов есть одно полезное свойство - отличная совместимость и переносимость. Они не зависят от процессора и операционной системы и поэтому (в большинстве случаев) запустятся и под MacOS и под Линуксом (AutoCAD под Линукс нет, но есть BricsCAD). И без всякой перекомпиляции они работают на всех новых версиях AutoCAD и переносятся на программы с такой же системой команд: BricsCAD, ZWCad, GStarCAD.

И наконец полноценные программы, встраиваемые в самое ядро AutoCAD - это плагин, или по другому "эдон" (Add-on), или "подключаемый модуль", дополнение, надстройка. И их тоже два типа: основанные на чистом процессорном коде ARX-плагины, и исполняемые под управлением среды Microsoft .Net Framework плагины Autocad.Net. ARX выполняются максимально быстро на сколько только возможно. Для них доступен самый широкий набор возможностей, которые предоставляет Автокад (называется API). Но вот написать такой плагин может только человек с десятилетним опытом профессиональной работы программистом C++. Я зык этот далеко не дружелюбный и он перегружен безумным наследием огромных библиотек и устаревших подходов к программированию. Кроме прочих проблем такие плагины требуют ежегодной перекомпиляции под новые версии AutoCAD. Для BricsCAD и прочих придется слегка переписывать код и долго тестировать - совместимость их API с Автокадовскими далеко не полная.

И что же нам остается, чтоб создать быстрый плагин, и не покончить собой, изучая C++ ? Остается только .Net. Промежуточная среда .Net конечно не позволит сильно разогнаться и производительность останется ниже, чем у ARX. Но зато почти все функции AutoCAD в нашем распоряжении. И все функции Windows, и миллионы библиотек любого назначения. И можно использовать два (и даже более) вполне терпимых языка: Basic.Net и C#. Бейсик меня сильно бесит и примеров на нем мало. C# местами копирует извращения языка Си, местами чрезмерно перегружен профессиональными программистскими заморочками, но это все же наименьшее из зол. Если вы сегодня собрались написать свой первый плагин - беритесь за C#. Однозначно.

Итак теперь вы поняли, что плагины - это дополнительные возможности AutoCAD. Маленькие программки сторонних разработчиков для вашей помощи. 

Кстати, сама Autodesk, тоже любит пописать плагины к своему детищу. Посмотрите в папку Автокада и вы увидите там сотни arx и dll-плагинов. Все "вертикали" (отраслевые надстройки, типа Electrical, Architectural...) - это все большие плагины.

Если вы все еще мучаетесь с недоделанными командами чистого Автокада - тогда мы идем к вам. Мы - в смысле программисты плагинов :)

Комментарии

Популярные сообщения из этого блога

Методичка инженера-выставочника. Часть 7: Выставочный стенд: подиум, конструктор, 2ой этаж, подвеска.

Тестируем AutoCAD 2022 на ноутбуке с AMD Ryzen7 5800H

В какой папке искать плагины AutoCAD?