На каком языке программирования можно создавать плагины и макросы для AutoCAD?

Здравствуйте! <br/> <br/> Я занимаюсь подготовкой документации для шкафов АСУТП и разработал типовые решения, включая съемы Э3, схемы соединений и размещение оборудования. В своей работе я использую чистый AutoCAD. Однако в связи с определенными обстоятельствами, не зависящими от меня, переход на специализированные САПР не планируется, и выполнять рутинные операции вручную стало невыносимо. <br/> <br/> Для повышения производительности я написал несколько макросов на VBA для Excel и LISP-скриптов для AutoCAD; благодаря этим усилиям скорость выполнения задач значительно возросла. То, что раньше занимало целый день, теперь делается всего за несколько кликов, и это меня очень радует! <br/> <br/> Теперь я хочу разработать плагин или макрос, который будет автоматически генерировать 2D-схемы, чертежи и спецификации в AutoCAD на основе данных из Excel, текстовых файлов и, возможно, базы данных. Кроме того, я хотел бы автоматизировать создание XLS-файлов для маркировки проводников. Полагаю, будет необходима база данных и шаблоны AutoCAD, на основе которых плагин будет формировать схемы. <br/> <br/> Я не обладаю навыками программирования. <br/> Насколько я понимаю, AutoLISP не совсем подходит для работы с Excel (или даже не поддерживает это) и изучать его не очень целесообразно, так как он устарел. Вероятно, следует рассмотреть разработку плагинов через AutoCAD API, но есть опасения по поводу совместимости с различными версиями AutoCAD. Судя по имеющимся статьям на ХАБРе, это может быть довольно сложно... <br/> <br/> У меня возникает вопрос: какой язык программирования лучше всего выбрать для написания макросов и плагинов? Я рассматриваю Python и Cи, так как они кажутся удобными и перспективными. Также было бы здорово, если бы этот язык можно было использовать для разработки под STM32/Arduino.
  • 13 марта 2025 г. 7:54
Ответы на вопрос 2
Для создания плагинов и макросов для AutoCAD вы можете использовать несколько языков программирования, каждый из которых имеет свои преимущества и недостатки. Вот основные из них:

1. **AutoLISP**: 
   - Это встроенный язык программирования для AutoCAD, хорошо подходит для автоматизации задач и создания простых приложений. Однако как вы уже заметили, AutoLISP имеет ограничения в интеграции с Excel и современными технологиями.

2. **VBA (Visual Basic for Applications)**:
   - Вы уже использовали VBA для работы с Excel, и он также поддерживается в AutoCAD. С помощью VBA можно работать с объектами AutoCAD и взаимодействовать с Excel, что дает неплохие возможности для автоматизации задач.

3. **.NET (C# или VB.NET)**:
   - Microsoft .NET API позволяет разрабатывать более сложные плагины для AutoCAD с использованием C# или VB.NET. Это, пожалуй, самый мощный и гибкий способ автоматизации AutoCAD. Вы сможете работать с пользовательскими интерфейсами, создавать сложные функции и интегрироваться с другими приложениями, такими как Excel и базы данных.

4. **Python**:
   - Вы также можете использовать Python с помощью библиотеки `pyautocad` или через .NET, используя IronPython. Python - это гибкий и довольно простой в изучении язык, но интеграция с AutoCAD может потребовать больше времени на настройку.

5. **C++**:
   - Если вы хотите создать высокопроизводительные плагины или работать с более низкоуровневыми API AutoCAD, то C++ будет хорошим выбором, но требует больше знаний и опыта программирования.

Для вашего проекта, учитывая, что вы не обладаете значительным опытом в программировании и хотите автоматизировать работу с Excel и графическими данными, я рекомендую следующие варианты:

- **C# с .NET API AutoCAD**: Это даст вам мощные инструменты для работы и высокую производительность. Вы сможете легко интегрироваться с Excel и другими источниками данных.

- **Использование VBA**, особенно если ваш фокус будет на взаимодействии с Excel. Вы сможете быстро создавать решения, используя уже имеющиеся навыки программирования.

- **Python**, если вы хотите более гибкий и современный подход, особенно если вы планируете также использовать Python для других проектов, например, для разработки под STM32/Arduino.

С учетом всех факторов, выбор C# и .NET API будет наилучшим для создания комплексных решений с высоким уровнем интеграции, но если вам нужно простое решение, следует рассмотреть использование VBA.
Нагуглите, какие открытые CAD-форматы понимает Автокад, и генерите в них. 
Это будет и значительно проще, и значительно перспективнее.
Со временем сможете отказаться от Ёкселя и текстовых файлов и сделать нормальную онлайн-систему, приспособленную на выходе давать то, что и Автокад прожует тоже.
Похожие вопросы