Выпускаем документацию для шкафов АСУТП и соответственно разработаны типовые решения: схемы Э3, схемы соединений, расположение оборудования, виды общие в 2D и т.п.
На работе используем чистый AutoCAD. По ряду причин, не зависящих от меня, переход на специализированные САПР не рассматривается, а выполнять рутинные операции вручную уже надоело.
Чтобы ускорить работу, написал несколько макросов на VBA для Excel и LISP-скриптов для AutoCAD — скорость выполнения задач выросла в разы. То, на что раньше уходил целый день, теперь делается в пару кликов - мне так понравилось))
Теперь хочу создать плагин/макрос, который будет автоматически генерировать 2D-схемы, чертежи и спецификации в AutoCAD на основе данных из Excel, текстовых файлов и, возможно, БД.
3D не используем, вся документация сделана в 2D. Также хотелось бы автоматизировать создание XLS-файлов для маркировки проводников. Предполагаю, что потребуется база данных, а также шаблоны AutoCAD, из которых плагин будет формировать схемы.
Программировать не умею)
Насколько понимаю, AutoLISP плохо подходит для работы с Excel (или вовсе не поддерживает это), да и изучать его смысла немного — устарел. Вероятно, лучше разрабатывать плагины через AutoCAD API, но они могут быть несовместимы с разными версиями AutoCAD. И судя по немногочисленным статьям на ХАБРе - это тот еще геморрой...
Возникает вопрос: какой язык программирования выбрать для написания макросов и плагинов? Смотрю в сторону Python и простой Cи — они кажутся удобными и перспективными. Также хотелось бы, чтобы этот же язык можно было использовать при разработке под STM32/Arduino.
Нагуглите, какие открытые CAD-форматы понимает Автокад, и генерите в них.
Это будет и значительно проще, и значительно перспективнее.
Со временем сможете отказаться от Ёкселя и текстовых файлов и сделать нормальную онлайн-систему, приспособленную на выходе давать то, что и Автокад прожует тоже.
Вроде как эти форматы: DXF, STEP (STP), IGES (IGS), STL, IFC, DGN.
Спасибо за идею!)
Я правильно вас понял:
Я создаю программу без привязки к конкретному САПР, эта программа сохраняет файлы в открытом CAD - формате, который я открываю в ACAD и сохраняю уже в DWG?
Тогда тут возникает проблемы дальнейшего редактирования файла, нужно его не просто открыть и смотреть, но и редактировать:
1. Как быть со слоями, тут при открытии файла созданного NanoCAD (аналог ACAD), возникает куча проблем корректного отображения файла: толщина линий, слоев и т.п.
2. Если будут блоки, то тоже не понятно, как с ними быть.
3. Наверняка будут проблемы со шрифтами, ACAD вообще любит эти проблемы.
Возможно какие-то еще.
От эксель не отказаться скорей всего, другой отдел передает мне информацию в этом файле, по которой я уже делаю конструкторскую документацию. Файл имеет определенную форму заполнения согласно стандартам компании. И перебивать ее не хочется, будут ошибки)
P.S. Все файлы в 2D, 3D не используем.
Перспективнее - можно применить в каких-то других проффесиях?
EStranger, мой САПР ОС диплом уже тридцать лет пылится на полочке, так что никакой информации по актуальным несовместимостям форматов не имею. Изучайте сами. В любом случае проще изолировать от работы все закрытые компоненты, иначе нововведения следующей же версии Автокада могут вам взять и все сломать вообще.
Если Ёксель-файлы формализованы и предсказуемы, импорт и разбор их веб-сервером делаются без каких-либо проблем. Дальше работаем с данными, а не с таблицами. Без обычных для офисных форматов геморроя и ручной работы.
Перспектива - например, необходимость работать не только с Автокадом. Автоматизация того, что не требует головы. Скармливание тех же форматов каким-нибудь программам, которые делают материалы для сайтов или презентации... ну, это я уже фантазирую, вам виднее, как могут меняться условия со временем.
В любом случае проще изолировать от работы все закрытые компоненты, иначе нововведения следующей же версии Автокада могут вам взять и все сломать вообще.
Спасибо за ваш ответ!
Согласен, изоляция от закрытых форматов может предотвратить многие проблемы, и действительно, переход на другой CAD будет менее болезненнее/независимее.
Интересно, что этот навык приоткрывает дверь в сторону CAD-разработчика.
EStranger, тут может быть засада, если Автокад дописывает в эти файлы какую-то свою семантику, которой в сгенерированных вами файлах не будет. Совместимость импорта все-таки стоит проверять на том, что сделали вы или выдала сторонняя программа, а не на том, что сам же Автокад и экспортировал.
Смотрю в сторону Python и простой Cи — они кажутся удобными и перспективными. Также хотелось бы, чтобы этот же язык можно было использовать при разработке под STM32/Arduino.
Си/плюсы - вполне нормальный выбор. Под МК практически нет альтернатив и без его знаний там делать нечего. Для десктопной разработки могу посоветовать обратить внимание на Qt, а так же DotNet C#.