Утилиты автокад для создания цмм
Пишу эту статью, чтобы:
1. Разложить у себя в голове по полочкам, что я узнал об Autocad.
2. Помочь тем, кто так же как я продирается через очень малое количество документации.
3. Получить в комментариях информацию вида «это ты делаешь неправильно, проще и лучше будет сделать так. »
Начало работы. Создание плагина.
Наследование от IExtensionApplication необязательно, Autocad автоматически подцепит все public классы в библиотеки, но, как мне сказали, так будет быстрее. Плюс можно контролировать Initialize/Terminate плагина.
Компилируем, запускаем автокад, загружаем плагин командой netload (открывается окно выбора managed dll)
Теперь при вводе команды hello мы будем получать ожидаемый ответ.
Структура Autocad приложения:
То, что мы видим на экране, графические объекты, унаследованные от Entity
Кроме видимых, есть невидимые информационные объекты — Слои, Типы линий, Стили размерности (Dimension styles), Стили таблиц и т.д.
Все это хранится в Database Table Records, в хранилищах вида TYPETable и классах вида TYPETableRecord.
Идентификаторы объектов
- ObjectId, известный также как EName (entity name). Число, создаваемое при открытии рисунка.
Использование — идентификация объекта в базе в течении одной сессии, объект запрашивается из базы по его ObjectId
Может меняться между разными открытиями, лучше не использовать для сохранения ссылок на объекты - Handle — число, неизменное между разными открытиями документа, удобно использовать для сохранения связей между объектами при сохранении файла.
Работа с базой данных
Обычно работа с базой идет с помощью транзакции. Объекты запрашиваются из базы данных, изменяются и commit'ом транзакции сохраняются обратно
Во время транзакции объект запрашивается из БД в одном из 3х режимов ForRead, ForWrite, ForNotify.
Назначение первых двух очевидно, третий как-то используется для механизма событий, с чем я пока не пересекался
В режиме ForWrite автокадом создаются дополнительные объекты, позволяющие отменить изменения в транзации.
Если нужно изменить объект, открытый как «ForRead», вызывается его метод UpgradeOpen().
Если вызвать этот метод на объекте, уже открытом в режиме изменения, метод выдаст исключение.
Транзакции могут быть вложенными, при отмене верхнеуровневой транзации отменяются и все дочерние.
В начале, долго не мог разобрать где ошибка — не сохранялись изменения в рисунке. Как оказалось забыл закрыть верхнюю транзацию.
Словари
Словари я использовал для сохранения своих данных в DWG, чтобы не создавать лишних файлов
Я столкнулся с двумя видами словарей в рисунке — NamedObjectDictionary и ExtensionDictionary
Данные в словарях хранятся в записях (Record), которые в свою очередь хранят типизированные значения.
Адресуются данные по текстовым ключам.
NamedObjectDictionary — глобальный словарь рисунка. Создается автоматически при создании документа.
Его я использовал для хранения ссылок на главные используемые мной объекты.
ExtensionDictionary — словарь, свой для каждого объекта, его нужно создавать вручную.
Проверить его существование можно сравнив поле entity.ExtensionDictionary c ObjectId.Null
Работа с глобальным словарем почти такая же, только объект DBDictionary получается так:
С чем я еще столкнулся
Пояснения:
R17.0 — Autocad 2007
419 для русской версии
409 для английской версии
GeocomplexPlugin — создаваемый раздел
LOADCTRLS = 2 — загружать при старте автокада. Определенными ключами можно сделать запуск «по требованию», плагин загружается, когда вводится одна из его команд
LOADER — путь к плагину
UPDATE: Решил проблему пошаговой отладки:
Победил эту проблему таким образом:
В файле настройки автокада acad.exe.config установил среду исполнения на v4.0:
Поменял среду исполнения плагина на 4.0 client profile
И настройках сборки AssemblyInfo.cs закомментировал атрибут AllowPartiallyTrustedCallers
В автокаде пробел эквивалентен Enter, поэтому если послать команду без завершающего пробела, в результате в editor'e будет введено _e и он будет ожидать дальнейшего ввода
Однако этот способ не всегда можно использовать. Принцип работы команды SendStringToExecute такой, что команды посылается только после завершения работы фунции, вызыванной командой. Поэтому если вы сначала вызовите эту команду, а потом, например, предложите пользователю выбрать объект на рисунке, фунции выбора будет послано две строки "_zoom", "_e", которые она воспримет как неправильные объекты.
Приходится искать аналоги, выполняющиеся сразу же. В данном случае:
Для выбора объектов используются функции editor'a Get*
Например, выбор нескольких объектов — GetSelection, выбор одного объекта GetEntity…
Создавайте чертежи, проекты и документацию для инженерных систем с помощью специализированного инструментария MEP (проектирование механических, электрических и сантехнических систем).
Вы учащийся или преподаватель? Получить бесплатно
Возможности инструментария MEP
Рабочие пространства MEP
Рабочие пространства содержат индивидуальные палитры и зависящие от областей ленты, позволяющие оптимизировать рабочие процессы.
Документация
Создавайте профессионально оформленную документацию и работайте с чертежами более эффективно.
Преобразование блоков AutoCAD
Пакетное преобразование одного или нескольких блоков и обозначений. (видеоролик: 1 мин 55 с)
Обозреватель стилей
Теперь можно использовать дополнительные компоненты инженерных систем и добавлять папки в библиотеку компонентов. (видеоролик: 1 мин 16 с)
Преимущества инструментария MEP
Согласно результатам исследования, инструментарий MEP позволяет повысить производительность почти на 85 %*, значительно сокращая время выполнения типовых задач проектирования MEP в AutoCAD ® .
* Данные о производительности были получены в ходе исследований, проведенных внешним консалтинговым агентством по заказу Autodesk. В 7 сценариях эксперты сравнили эффективность выполнения опытными пользователями AutoCAD распространенных задач: с использованием специализированных инструментариев AutoCAD и только стандартных возможностей. Как и при других тестах производительности, результаты могут различаться в зависимости от используемого компьютера, операционной системы, фильтров и даже исходного материала. Несмотря на все предпринятые меры по обеспечению максимальной объективности тестов, результаты могут не совпадать. Сведения о продукте и спецификации могут быть изменены без уведомления. Компания Autodesk передает эту информацию на условиях «как есть», не предоставляя никаких гарантий, ни явных, ни подразумеваемых.
AUTODESK В
СОЦИАЛЬНЫХ СЕТЯХ
Программы
Купить
ПОДДЕРЖКА И ОБУЧЕНИЕ
Autodesk
Компания Autodesk — лидер в области разработки решений для 3D-проектирования, дизайна, графики и анимации.
Иногда приходится работать на топографической подоснове выполненной в виде чертежа в формате .dwg. Высотные отметки представляют собой точки выполненные в виде заливок круглой формы и текста рядом с ними.
Описываемый ниже способ может быть применим и для топографических основ, представляющих собой изображение или файл .pdf.
Фактически нужно перерисовать съёмку, используя встроенный функционал программы. Благо программа позволяет делать это быстро, максимально упрощая операции.
Добавление файла съёмки
Программ создаст и откроет новый проект.
Чертёж будет загружен в программу в координатах, которые были в исходном .dwg файле. Для фокусировки на вставленном чертеже нужно 2 раза нажать на колёсико мыши.
Отрисовка элементов топографического плана
Точки
Robur позволят каждой точке присваивать свой код, в зависимости от её принадлежности: рельеф, коммуникации, кромка проезжей части и т.д.. Поэтому удобнее будет отрисовывать точки, относящиеся к одному элементу.
Пример представлен на рисунке ниже.
В примере видно, что необходимо добавить в ЦММ точки рельефа, существующей дороги, кабелей связи и высоковольтную линию электропередач.
Программа запросит координаты следующей точки. Код уже будет прописан автоматически от предыдущей точки. Подобным образом создаём все точки на кромке покрытия существующей дороги. Затем меняем код и создаём точки на бровке (3), подошве существующей а/д (1) и рельеф (0).
Создание поверхности
Структурные линии
Участки
Создадим участки. Это нужно для объединения треугольников построений в группы и ускорения последующей работы, в том числе отображения на чертеже и визуализации.
Далее нужно поочерёдно выбрать обе кромки покрытия и программа выделит все треугольники, оказавшиеся между этими двумя структурными линиями.
Откосы
Горизонтали
Коммуникации
В свойствах объекта так же можно добавить дополнительную информацию: напряжение, количество проводов, величину провисов и т.д.
Таким же образом добавляются и другие коммуникации, имеющиеся на съёмке.
Площадне объекты
В сфере автоматизации проектирования с каждым годом всё сильнее укрепляют свои позиции параметрические трёхмерные САПР. Полезность такого подхода в инженерном деле сейчас не вызывает сомнений, и сфера применения такого подхода обширна.
Тем не менее, в инженерном деле остаётся место и для традиционного двумерного проектирования, и для этого есть соответствующие инструменты.
В комментариях под статьями на тему САПР (например 1, 2) на Habr попадаются упоминания о том, кто чем пользуется, и порой сведения оказываются неожиданными. А ещё остается открытым вопрос о доступной (а желательно бесплатной) САПР с правом коммерческого использования для мелких предпринимателей и мастеровых людей.
Двумерные САПР остаются по-прежнему востребованными по многим причинам.
Во-первых, они предлагают классический подход к проектированию, когда всё продумывает человек, а программа служит только для автоматизации графической рутины. Это привычно как черчение карандашом на листе миллиметровки, потому такие САПР легче в освоении, особенно для тех, кто изучал начертательную геометрию и инженерную графику.
Во-вторых, инженерам удобно работать с накопленным за долгие годы наследием из чертежей, а в проектах модернизации старых изделий приходится опираться на бумажные чертежи из архивов.
В 2D САПР удобно делать эскизы, теоретические построения, выполнять различные схемы и поэтажные планы, оформлять конструкторскую и технологическую документацию.
Кроме того, в некоторых случаях плоских чертежей и вовсе достаточно для полноценной реализации задуманного: например, для резки листовых материалов на фрезере или лазерном резаке с ЧПУ.
Также двумерные САПР как правило более доступны по цене и имеют низкие требования к аппаратной части компьютеров.
В каждой из таких систем хочется видеть как минимум такой перечень наиболее полезных возможностей:
- Слои.
- Блоки.
- Объектные привязки.
- Фильтры для быстрого выбора объектов по различным признакам.
- Пользовательские системы координат.
- Штриховки и заливки цветом.
- Размеры и тексты со стилями оформления, таблицы.
- Аннотации с масштабами.
- Работа в пространстве модели и пространстве листов с видовыми экранами.
- Поддержка популярных форматов данных.
DraftSight
Известный продукт от Dassault Systèmes, когда-то он входил в состав пакета SolidWorks для совместимости с AutoCAD и назывался DWG Editor.
Рис. 1. DraftSight хорошо поддерживает чертежи из AutoCAD
DraftSight поддерживает работу с форматами DWG и DXF в качестве основных форматов, предлагает как ленточный, так и классический интерфейс как в старых версиях AutoCAD.
Для черчения DraftSight предоставляет весь вышеупомянутый «джентельменский набор». Кроме этого, DraftSight умеет:
- Экспорт чертежей в PDF и SVG.
- В качестве основного формата данных используются DWG и DXF.
- Кроме работы с чертежами можно просматривать 3D модели из файлов DWG и DXF.
- Сходство с AutoCAD.
Кроме бесплатной версии, разработчики предлагают платную подписку за 150 долларов в год либо единоразовый апгрейд до профессиональной версии за 300 долларов — пожалуй, это одна из самых доступных коммерческих САПР.
Пользователям профессиональной версии становятся доступны дополнительные функции: новые команды, библиотека элементов оформления и блоков стандартных изделий для механики и архитектуры, сравнение чертежей, пакетная печать, подложки PDF и API для автоматизации.
К недостаткам можно отнести неприятный маркетинговый ход: в UI бесплатной версии остаются видимыми некоторые элементы (например Toolbox, QuickModify, BatchPrint), которые работают только в платной профессиональной версии.
В целом же программа позволяет работать с чертежами с достаточным уровнем комфорта и может считаться конкурентом AutoCAD LT.
Для активации бесплатной лицензии нужен интернет.
Поддерживаемые платформы: Windows, macOS, Linux. Лучше всего DraftSight реализован для Windows и пребывает в актуальном состоянии: периодически выходят обновления и патчи. Версии для Linux и macOS находятся в состоянии бета-версии.
nanoCAD
Следующий участник обзора — nanoCAD от компании Нанософт, который читателям Хабра уже хорошо известен. Это еще один универсальный «электронный кульман».
Рис. 2. Строим ракету в nanoCAD
nanoCAD также предлагает все основные удобства для черчения, кроме того, nanoCAD отличается такими особенностями:
- Поддержка отечественных стандартов, текстовые и размерные стили шрифтов по ГОСТ 2.304-81, а размеры оформляются как по ЕСКД и СПДС.
- Хорошая поддержка DWG (как основной рабочий формат файлов) и DXF.
- Поддержка подложек PDF.
- Просмотр 3D моделей в форматах DWG и DXF.
К недостаткам можно отнести устаревание программы — развитие nanoCAD остановилось на версии 5.1 в 2013 году. По крайней мере программа по-прежнему располагается на сайте Нанософт и в личном кабинете пользователя можно получить файл бесплатной коммерческой лицензии, и есть надежды на обновление.
nanoCAD разрабатывается только под Windows.
DoubleCAD XT 5
DoubleCAD XT 5 — еще один бесплатный САПР класса «электронный кульман», напоминающий AutoCAD LT и nanoCAD вместе взятые.
Во многом аналогичный вышеописанным САПР своим джентельменским набором функций для черчения.
Рис. 3. DoubleCAD XT с примерами и библиотекой элементов
- Присутствует режим динамического ввода размеров.
- Есть библиотека элементов в блоках.
- Инструмент «стена» для архитектурных проектов, возможность просматривать трехмерные модели и делать из них плоскую проекцию для чертежа.
- Еще в комплекте с программой идёт интересный набор чертежей и технических иллюстраций в качестве примеров.
- Поддерживаются форматы DWG и DXF для импорта и экспорта, импорт из SketchUP.
- Собственный формат данных в качестве основного.
- Цветовая гамма пользовательского интерфейса на любителя, впрочем, тёмная тема сейчас в тренде.
- Развитие программы остановилось еще в 2012 году и никаких новостей не слышно, а платные версии даже название сменили на TurboCAD.
Siemens Solid Edge 2D Drafting
Siemens Solid Edge 2D Drafting это самый тяжеловесный участник нашего обзора.
Он отличается богатством возможностей, именитостью компании-разработчика и размером установочного пакета — 2,8 Гб. Разработчики из Siemens не стали отделять 2D САПР от полновесного трёхмерного параметрического САПР: при установке выбирается бесплатный режим работы — двумерное черчение и просмотр трёхмерный моделей, при этом устанавливается и всё остальное, но в нашем случае оно будет просто занимать место на диске.
При знакомстве с программой обращают на себя внимание такие возможности:
- Параметрическое черчение, которое позволяет задавать зависимости между элементами чертежа и указывать размеры, меняя которые можно управлять геометрией других элементов на чертеже. Числовые параметры с чертежа собираются в таблицу, в которой можно составлять расчеты зависимых параметров.
- Поддерживаются ограничения (constraints), такие как соединение, параллельность, концентричность, коллинеарность, параллельность, перпендикулярность, симметрия и другие.
- Стили размеров и аннотаций в соответствии с различными системами стандартов.
- Также есть выноски для обозначения позиций, настраиваемые обозначения сварки, знаки обработки поверхностей, допуски, таблицы, расчеты по формулам.
- Поддержка DWG и DXF, возможность открывать модели в форматах Parasolid, IGES и STEP.
- Просмотр и снятие размеров с трёхмерных моделей вышеперечисленных форматов.
- Визуализатор KeyShot 7 в пробном режиме в нагрузку :)
Рис. 5. Параметрические связи и оформление размеров в Solid Edge 2D
Мое личное впечатление — здесь всё серьезно. Программа мощная и требует изучения и набивания руки для продуктивной работы, после чего ее можно будет эффективно использовать для выполнения чертежей даже в профессиональной среде.
Есть и ложка дёгтя в бочке мёда:
- Частичная поддержка стандартов оформления, например при выборе стандартов ЕСКД штампы основной надписи на чертежах не соответствуют стандарту.
- Импорт трёхмерных моделей DWG показал себя нестабильным, по крайней мере это можно ожидать, так как Solid Edge имеет собственный формат данных.
- Устанавливается много лишнего в нагрузку.
- Поддерживается только Windows, что среди САПР, к сожалению, в порядке вещей.
QCAD и LibreCAD
QCAD и LibreCAD — известные кроссплатформенные open source программы для двумерного проектирования. Я разместил их в обзоре вместе, так как эти программы не только похожи визуально, но и наследуют общую кодовую базу.
Для привычных к AutoCAD-подобным САПР пользователей эти два приложения могут показаться неудобными. Но некоторые находят для себя подход к проектированию в QCAD и LibreCAD интуитивно понятным и удобным, так что это дело вкуса.
QCAD разрабатывается по большому счёту одним человеком и даже коммерциализирован в виде QCAD Professional: собранное приложение упаковано вместе с плагином для поддержки формата DWG и библиотекой стандартных изделий.
В Professional версию входит модуль Command Line Tools для пакетной конвертации CAD файлов. А QCAD/CAM это версия Professional с CAM модулем для получения G-code.
Рис. 6. QCAD прост и аккуратен
Доступный для скачивания установочный пакет по умолчанию содержит QCAD Professional в Trial режиме. Чтобы пользоваться QCAD бесплатно — придется отключить эти плагины вручную, или собрать Community Edition из исходников самостоятельно. Впрочем, если программа очень понравилась, то Professional версия обойдется всего в 33 евро, а CAM аж в 89 евро :) Для обучения пользователей автор продаёт учебник в электронном и бумажном виде.
- Поддерживает плагины на ECMAScript, импорт и экспорт SVG.
- Программа и сайт выглядят приятно.
В свою очередь, LibreCAD это форк от QCAD Community Edition, который поддерживается командой энтузиастов и тоже имеет сообщество активных пользователей. Для LibreCAD собираются пакеты под все популярные операционные системы без каких-либо коммерческих плагинов.
Рис. 7. LibreCAD и его настройки
- Поддерживается экспорт в SVG.
- Есть возможность расширения программы плагинами.
- Библиотека LibreDWG в дистрибутив не входит из-за несовместимости лицензии GPLv3 с GPLv2.
- Пользовательский интерфейс, честно говоря, так себе.
- Ассортимент функций еще скромнее чем у QCAD.
Поддерживаемые платформы: Linux, macOS, Windows, FreeBSD и другие Unix при сборке из исходников.
ZCAD это open source проект, который изначально разрабатывался как электротехнический САПР, но с недавнего времени автор разработал и универсальную версию.
Рис. 8. ZCAD в электротехнической конфигурации
- По принципам устройства пользовательского интерфейса ZCAD приближен к классическому AutoCAD, интерфейс можно настраивать, возможно добавление пользовательских кнопок (путем редактирования файла меню).
- Поддерживает очень большие чертежи.
- Есть все базовые инструменты управления чертежом: слои, типы линий, толщины линий и прочее, практически весь «джентльменский набор 2D САПР».
- В качестве собственного формата файлов используется DXF 2000.
- Отсутствие некоторых примитивов, наиболее критично: штриховка и дуговые сегменты в полилиниях.
- Отсутствие некоторых привычных команд, таких как «продлить», «обрезать».
- Выбор инструментов образмеривания тоже не большой.
- Отсутствие поддержки пространства листа и видовых экранов, работать можно только в пространстве модели.
- Не очень аккуратная локализация пользовательского интерфейса и мелкие баги, так как автор работает над программой практически в одиночку.
Установочный пакет публикуется для Windows, но так как ZCAD разработан на Free Pascal в среде Lazarus, то его можно собрать из исходников и для Linux.
Как видите, бесплатный 2D САПР с правом коммерческого использования не только существует, но даже есть из чего выбрать.
Читайте также: