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

Аббревиатура САПР расшифровывается как система автоматизированного проектирования и, зачастую, воспринимается обывателями, как набор программ для черчения. Однако, согласно действующему ГОСТ 23501.101-87, термин САПР трактуется обширнее и подразумевает всю организационно-техническую инфраструктуру проектного отдела или организации. Затрачивая внушительную часть бюджета на развитие и поддержание структуры САПР, предприятия преследуют единственную цель — повышение качества выпускаемой продукции и оперативное реагирование на обратную связь от потребителей.
Возможности и области применения
Наиболее очевидной и востребованной функцией комплексов САПР является возможность построения компьютерной 2D- и 3D-модели разрабатываемого изделия. Однако, применение САПР не ограничивается только разработкой и каталогизацией проектной документации, хотя уже этот момент помогает экономить массу времени и трудозатрат инженера, позволяя в ходе работы менять элементы чертежей, ничуть не заботясь о влиянии этих изменений на проект в целом.
Пользователь современной САПР имеет в своем распоряжении богатый выбор стандартных элементов, избавляющий от необходимости многократно проделывать одну и ту же работу и унифицирующий стандартные проектные процедуры. Мощный математический аппарат упрощает инженерные расчеты, позволяя в режиме реального времени визуально оценивать контролируемую величину и ее зависимость от изменения проектируемой конструкции. Наиболее актуально эта задача проявляется в системах с распределенными параметрами, расчет которых крайне трудоемок. В качестве примеров можно привести анализ напряжений в узлах механических систем, строительных конструкций, тепловой расчет электронных устройств и т.д. Сложно переоценить возможности САПР в плане компьютерной анимации и симуляции разрабатываемых устройств, позволяющие увидеть их работу до изготовления прототипа и устранить ошибки и недочеты, сделанные при проектировании.
Исторически сложилось, что САПР получили широкое применение в машиностроении, автомобилестроении и строительстве. Однако, в настоящее время с их помощью можно автоматизировать практически любой процесс, начиная от раскроя и пошива одежды и, заканчивая разработкой поточной линии крупного завода.
Структура САПР
Являясь разновидностью информационных систем, классифицируемых по сфере применения, САПР относятся к сложным многоуровневым структурам, образуемым совокупностью средств вычислительной техники, различными видами обеспечения, а также обслуживающим их персоналом.
Структура САПР регламентирована ГОСТ 23501.101-87 и включает в себя два класса подсистем: проектирующие и обслуживающие. Основным назначением проектирующих модулей выступает решение конкретных проектных задач, а функции информационного обмена между ними возложены на подсистемы обслуживания, к задачам которых можно отнести:
Согласно стандарту, компоненты САПР строятся на основе следующих видов обеспечения:
Несмотря на разнообразие решений для автоматизации проектной деятельности, их архитектура также регламентирована. Разработка САПР должна вестись строго в соответствии с принципами создания информационных систем. Одним из них является принцип системного единства, согласно которому, разрабатываемая система должна иметь свойства целостности и взаимосвязанности отдельных компонентов и структуры, а сам процесс проектирования должен носить индуктивный характер, то есть вестись от частного к целому.
Функционирование подсистем и компонентов САПР должно быть подчинено принципу совместимости, в соответствии с которым составные части информационных систем должны решать свои задачи в строгом взаимодействии. Кроме того все элементы подлежат унификации, обеспечивая взаимозаменяемость и открытость.
САПР строится с учетом возможной интеграции с другими информационными системами, а также модификации и пополнения их компонентов.
Классификация САПР
Для более укрупненного описания систем автоматизированного проектирования принята классификация САПР по набору определенных отличительных особенностей. В отечественной практике применяется ГОСТ 23501.108-85, выделяющий среди таких особенностей тип, разновидность и сложность разрабатываемого объекта, уровень автоматизации и ее комплексность, номенклатура подготавливаемой документации, а также сложность структуры технического обеспечения.
Международные стандарты рассматривают такие комплексы в аспекте отраслевого и целевого назначения.
По отраслевому назначению
Признак классификации по отраслевому назначению отчасти перекликается с отечественным типом объекта проектирования и подразделяет все САПР на:
Следует отметить, что приведенная классификация несколько условна и не охватывает весь перечень отраслей, в которых применяются САПР. Комплексы не попавшие в общепринятую классификацию, трактуются стандартом как «Прочие».
По целевому назначению
Согласно данному классификационному признаку различают CAD-, CAE- и CAM-системы.
Англоязычный эквивалент
С 1990 года в нашей стране англоязычный термин CAD нормативно закреплен за определением «автоматизированное проектирование», хотя и не соответствует в полной мере российскому значению САПР. По сути, под понятием CAD понимается применение информационных технологий для поддержки процесса конструирования. Зарубежные CAM системы эквивалентны отечественным автоматизированным системам технологической подготовки производства.


Наиболее полное соответствие прослеживается между определениями САПР и CAE, поскольку включают в себе обе вышеперечисленные системы и представляя собой более широкое понятие.
Популярные программы
На текущий момент существует большое разнообразие CAD-систем разного уровня сложности, что вполне соответствует классификации по комплексности автоматизации проектирования.
К примерам комплексов верхнего уровня можно отнести:


Эти программные комплексы соответствуют классу CAE.
К среднему уровню можно отнести:
Пакеты нижнего уровня:


Самой популярной САПР в мире стала программа AutoCAD. Существуя на рынке уже более тридцати лет, она занимает лидирующее положение среди аналогичных программных решений среднего уровня. Имея в своем арсенале развитый инструментарий разработки и адаптации, она представляет собой универсальную платформу на базе которой создано большое количество специализированных приложений, решающих задачи проектирования в области механики, электроники, архитектуры, строительства.
«САПР для всех, даром, и пусть никто не уйдет…» или первые шаги в программировании FreeCAD на Python
Возможно, вам уже ранее попадались мои заметки по первым шагам в программировании САПР на примере NanoCAD.
Надо отметить, что для человека не умеющего программировать и знающего САПР на уровне «электронного кульмана» это было удивительное приключение. Однако, NanoCAD это все же в первую очередь коммерческий продукт. Его бесплатная версия не обновлялась, уже около шести лет и порядком устарела в плане возможностей для разработки.
Итак, по горячим следам пишу для вас материал, всего за один день я узнал, как подружить эту САПР с Anaconda, написал на Python простенький скрипт, который рисует квадратик с текстом и протестировал его на работоспособность в Windows и Linux. О чем я собственно готов вам по шагам рассказать и показать, чтобы вы тоже могли это сделать.
Хотите поближе познакомиться с очаровательной парочкой Python и FreeCAD? Тогда милости прошу под кат.
Содержание:
Часть I: Введение
Как ни странно на «Хабре» совсем немного публикаций посвященных FreeCAD, хорошая статья вышла у Eddy_Em «Знакомьтесь: FreeCAD», и еще несколько работ, в которых герой нашей статьи упоминается вскользь.
Для начала буквально два слова о программе. Я не буду дублировать информацию с официального сайта, а просто широкими мазками опишу почему остановил свое внимание на этой САПР.
Итак, FreeCAD это система автоматизированного проектирования с открытым исходным кодом, заточенная в первую очередь на трехмерное параметрическое моделирование. На момент написания статьи последняя версия программы 0.18.3. Пусть вас не смущает, что значение номера релиза далеко от единицы. FreeCAD долго и активно разрабатывается и на текущий момент вполне функционален. Более того как я понимаю он уже давно, имеет определенную популярность у людей занимающихся 3D моделированием и печатью, особенно у идейных самоделкиных, интересующихся open source / open hardware и всяческим DIY.
Но если вдруг вы совсем не разбираетесь в трехмерном моделировании, то это не повод обойти FreeCAD стороной. Функционал САПР разбит по своеобразным модулям — верстакам (Workbench) среди которых есть и привычное 2D черчение, в том числе верстак для оформления рамок листов и даже верстак для реализация концепции BIM.
На самом деле, возможностей у программы «вагон и маленькая тележка», но сегодня мы попробуем сделать, что-нибудь совсем примитивное, только чтобы «разжечь аппетит».
Часть II: Стандартная установка и первая проба
FreeCAD доступен для всех трех распространенных операционных систем, но поскольку «Яблочной» техникой я обделен, то мы рассмотрим только варианты для Windows 10 и Linux Mint.
Самый простой способ начать программировать для FreeCAD это скачать дистрибутив и установить его стандартным для операционной системы путем. В таком случае мы получим в свое распоряжение предустановленный с программой интерпретатор Python (на момент написания статьи Python версии 3.6.6).
Но давайте сначала попробуем начертить, что-нибудь штатными средствами. Например, круг.
Обратите внимание на вывод консоли
FreeCAD ничего не прячет под капотом, все ключевые операции по отрисовке круга выведены в консоль. Можно хоть сейчас просто скопировать код и начертить второй круг, чуть правее.
Давайте попробуем ввести переменную и начертить еще круг, для чего скопируем вывод консоли и вставим его построчно внеся небольшую модификацию.
Как видите теперь круга стало два, причем, как и планировалось один правее на координату «х» базовой точки первого круга умноженную на 5.
Часть III: А теперь подружим FreeCad с «Анакондой»
Но возможности САПР не ограничиваются стандартным использование в качестве «кульмана». С помощью API, FreeCAD можно встроить в вашу собственную программу и использовать, как с графическим интерфейсом так и без, но этот вопрос мы рассмотрим как-нибудь в другой раз.
А пока, представим себе такую ситуацию, допустим вы увлекаетесь машинным обучением и анализом данных на Python и уже поставили себе дистрибутив Anaconda, тогда вы, наверное, сильно обрадуетесь узнав, что благодаря ребятам из conda-forge можно скомпоновать все возможности этого дистрибутива и FreeCAD.
По ссылке представлено руководство, как установить его в случае если вы используете mini-conda, а мы с вами установим его в полноценную «Анаконду» через её навигатор.
Итак, откроем Anaconda-Navigator, перейдём на вкладку Environments и создадим новое окружение, нажав на кнопку Create. Название окружению, можно дать любое, я назвал – «freecad». Выбираем нужную версию Python и создаём новое окружение.
Но этого еще недостаточно, необходимо добавить канал conda-forge, просто впечатайте в поле, которое появится после нажатия кнопки Add «conda-forge» и дайте системе обновить списки пакетов.
Почти готово теперь осталось установить сам FreeCAD
Нажимаем ЛКМ на названии пакета и выбираем какую версию хотим установить, как на картинке ниже (у меня правда уже установлен)
После томительного ожидания у вас будет полностью установлен дистрибутив FreeCad нужной версии останется его только запустить.
В самом простом случае без параметров запуска необходимо запустить консоль conda с нашим окружением, и запустить САПР одноимённой командой FreeCAD.
Откроется пустое окно FreeCAD в котором мы выберем верстак для двухмерного черчения.
Как видим, теперь версия Python совсем не та, что была при стандартной установке.
Создадим новый документ (Control+N) он нам пригодится для тестирования нашей мини библиотеки.
Часть IV: Пишем простенькую библиотеку
Библиотека наша будет примитивной. По сути, мы создадим команду, которая будет чертить прямоугольник, в который будет вписан произвольный текст, заданный пользователем.
Создаем файл (я свой назвал — «drawhabr.py») и пишем в него следующий код:
Или просто можете скопировать файл с GitHub
Код очень простой, но некоторые моменты думаю стоит пояснить.
Импортируем необходимые библиотеки, после чего создаем класс.
Поскольку я еще не научился обрабатывать ввод мышкой, координаты для объекта и текст мы будем вводить напрямую в консоль с клавиатуры. Это реализуется стандартными методами Python. Потом в конструкторе класса вызываем нашу функцию (метод), которая будет это все чертить.
Из особенностей FreeCAD в конструкторе класса можно выделить две команды:
Первая выбирает нам пространство активной рабочей области, а вторая, после установки объекта напишет нам сообщение в самом низу окна программы (на серой полоске, не путать с консолью Python)
Код метода тоже интуитивно понятен.Но все же поясню для надежности.
Необходимо на тот случай, если пользователь введет пустую строку. Без этого в текст будет вписано слово Label а прямоугольник будет иметь некорректную длину.
Определим координаты базовой точки дня нашей рамки, обрамляющей текст.
Напомню, что данные берутся из ввода в консоль.
Обратите внимание, что мы работаем с трехмерной координатой вида FreeCAD.Vector(x,y,z), но в данном примере координатой Z можем пренебречь. Другие параметры связанные с вращением рамки пока не трогаем.
создадим текст, командой Draft.makeText, передав ей текст, который ввели в консоль.
Координаты возьмем с небольшим смещением от базовой точки рамки.
По-хорошему надо было научиться обрабатывать рамку (границу) текста используя параметры API, после чего на основании нее рассчитывать ширину и высоту нашей обрамляющей рамки. Но поскольку я сам только-только познакомился с программой, то задачу решил рабоче-крестьянским методом. Мы зафиксируем высоту шрифта, назначим ему стиль моноширинного шрифта (Courier) и в зависимости от этого определим длину и ширину рамки которую будем чертит вокруг текста.
Осталось только подставить наши параметры в функции черчения прямоугольника
вот, собственно, и все.
Осталось только подключить нашу библиотеку. Для этого её можно просто скопировать в папку, в которой лежат остальные библиотеки Python для выбранного окружения.
Например, для Windows 10 путь может быть следующим (в значимости от места установки Anaconda):
Для Linux путь будет примерно таким:
Все осталось загрузить нашу библиотеку.
Для этого вначале введем в консоли название нашего модуля (без расширения файла)
А затем вызовем конструктор класса
Вот и все осталось вести, параметры функции и наслаждаться результатом.
На всякий случай вот скриншот подтверждающий, что в Linux тоже все работает.
Часть V: Заключение
Сегодня мы вместе сделали только маленький шаг на пути познания API FreeCAD.
Несмотря на то, что на мой взгляд, для двухмерного черчения и разработки проектов, FreeCAD не так привычен как AutoCAD (NanoCAD) или другие распространенные САПР, но зато программировать его намного проще.
Даже несмотря на некоторый недостаток документации и необходимость обновления некоторых статей с примерами в Wiki FreeCAD, все равно разобраться с его API и запустить первую программу оказалось вполне по силу неподготовленному человеку с минимальными знаниями в области написания кода на Python.
А учитывая, тот факт, что разработчики люди не жадные и при необходимости позволяют даже коммерческую разработку с помощью FreeCAD по лицензии LGPL да в сочетании со всей мощностью подключаемых библиотек Python (например, из того же дистрибутива Anaconda), разработка программ с использованием FreeCAD выглядит интересной задачей.
Если я пойму, что и вам эта тема интересна, то постараюсь сделать мини-цикл заметок по аналогии с Nanocad
Программирование для сапр что это
CAD-системами (Computer-aided design) называется программное обеспечение, предназначенное для автоматизированного проектирования. Программный пакет, который призван создавать конструкторскую и технологическую документацию,3D модели и чертежи. Представляет собой организационно-техническую систему, состоящую из персонала и комплекса технических, программных и других средств автоматизации его деятельности. Также для обозначения подобных систем широко используется аббревиатура САПР.
Содержание
Производители проектных систем
Представленная в данном материале таблица представляет собой упорядоченный список производителей готовых программных решений в области систем проектирования, разработки и промышленного дизайна.
Особенности
Наряду с использованием систем автоматизации инженерных расчетов и анализа CAE в данное время, как правило, используются системы автоматизированного проектирования CAD (Computer-Aided Design). Сведения из CAD-систем поступают в CAM (Computer-aided manufacturing). Следует заметить, что английский термин «CAD» по отношению к промышленным системам имеет более узкое толкование, чем русский термин «САПР», поскольку в понятие «САПР», входит и CAD, и CAM, и CAE. Среди всех информационных технологий автоматизация проектирования занимает особое место. Прежде всего, автоматизация проектирования — это дисциплина синтетическая, так как в ее состав входят различные современные информационные технологии. Так, например, техническое обеспечение САПР базируется на эксплуатации вычислительных сетей и телекоммуникационных технологий, также САПР практикует использование персональных компьютеров и рабочих станций. Говоря о математическом обеспечении САПР, следует отметить разнообразие используемых методов: вычислительной математики, математического программирования, статистики, дискретной математики, искусственного интеллекта. Программные комплексы САПР можно сравнить с одними из самых сложных современных программных систем, в основе которых лежат такие операционные системы как Windows, Unix, и такие языки программирования как С, С++ и Java, а также современные CASE-технологии. Практически каждый инженер-разработчик должен обладать знаниями основ автоматизации проектирования и уметь работать со средствами САПР. Поскольку все проектные подразделения, офисы и конструкторские бюро оснащены компьютерами, работа конструктора таким инструментом как обычный кульман или расчеты с помощью логарифмической линейки стали неактуальны. Следовательно, предприятия, работающие без САПР или использующие ее в малой степени, становятся неконкурентоспособными, поскольку тратят на проектирование значительно больше времени и финансовых средств.
Типы САПР
Структура САПР
Структура ПО САПР определяется следующими факторами:
Классификация САПР
САПР классифицируют по следующим принципам: целевому назначению, по приложению, масштабам и характеру базовой подсистемы. По целевому назначению выделяют САПР или подсистемы САПР, которые предоставляют различные аспекты проектирования. Таким образом, CAE/CAD/CAM системы появляются в составе MCAD:
По приложениям самыми важными и широко используемыми считаются такие группы САПР как:
Помимо этого, существует большое количество более специализированных САПР, или выделяемых в определенных группах, или являющихся самостоятельной ветвью в классификации. Это такие системы как: БИС-САПР (больших интегральных схем); САПР летательных аппаратов и САПР электрических машин. По масштабу определяют самостоятельные программно-методические комплексы (ПМК) САПР:
Классификация по характеру базовой подсистемы
Развитие САПР
Следующая важная тенденция — альтернативные ОС. Еще лет пять назад, когда заводились разговоры об альтернативе Microsoft Windows, речь, как правило, шла о Linux. Данная тема актуальна и сегодня: отечественная национальная программная платформа, по всей видимости, будет сделана на базе ядра Linux; к этой ОС растет интерес в области образования и в госструктурах (есть примеры успешного перехода). Однако теперь уже можно говорить о существенном потенциале операционной системы Google Chrome OS. И здесь упомянутый тренд смыкается с облачным трендом — ОС Google, как известно, не подразумевает установку приложений на локальном компьютере.
Немаловажную роль в продвижении этой ОС играет тенденция к уменьшению рыночной доли ПК. Очевидно, что если в облака перенести большинство громоздких и сложных вычислений, снижаются требования к аппаратному обеспечению и появляется возможность работать на любых устройствах. Например, на планшетах. В итоге разработчикам САПР-решений придется либо разрабатывать платформонезависимые решения (облачный вариант), либо делать их мультиплатформенными.
Следующая тема — `железо`. Здесь все опять же определяется неудовлетворенностью рынка решением монополиста — классической архитектурой Intel (темпами ее развития). В этой связи явно отмечается тренд на развитие архитектуры ARM. Ее сейчас поддерживает несколько производителей, среди которых одним из самых активных является компания Nvidia (Нвидиа). Пока данная архитектура активно применяется только в мобильных устройствах, но в ближайшее время, судя по всему, она перейдет и на стационарные ПК. Косвенно об этом свидетельствует тот факт, что будущая ОС Microsoft Windows 8 сможет работать и на ARM-архитектуре тоже (впервые не только на Intel).
Вторая тенденция — перенос существенной части вычислений с центрального процессора на графическое ядро. Данная тема относится скорее к области параллельных вычислений.
В секторе САПР сегодня многие сотрудники являются мобильными — работают на выезде, на удаленных строительных объектах, перемещаются по стране, трудятся дома. (Все это требует удобного мобильного устройства.)
Так или иначе за рубежом о том, что планшет скоро будет у каждого сотрудника инженерной службы, сегодня говорят как о свершившемся факте. Уже появились привлекательные для разработчиков мобильные платформы IOS Apple и Android Google, а также существенное количество САПР-приложений под них.
Сейчас весьма сложно сказать, уйдут ли через десять лет из нашего арсенала клавиатура и мышь. Но факт в том, что интерфейсы, ориентированные на работу с мультитач-экранами (пальцеориентированные), явно набирают популярность. В мобильных устройствах они уже практически стали стандартом. На сегодняшний день вполне понятно, что этот интерфейс более чем подходит для потребления информации. Так же ли он хорош для ее создания, для работы с САПР, сказать пока сложно. Для массового перехода к подобным интерфейсам до сих пор не хватает технологической базы. Сейчас на рынке просто не существует достаточно больших мультитач-панелей с необходимым для САПР разрешением.
Рынок САПР весьма консервативен. Даже замена одной такой системы на другую в рамках работы над одним проектом — задача довольно сложная. Что уж говорить о серьезной смене парадигмы, интерфейсов, поколений САПР. Поэтому данный рынок явно не входит в число лидеров технологической гонки — развитие есть, но очевидно не такое быстрое, как хотелось бы. Впрочем, в ближайшее десятилетие на предприятия придут инженеры, выросшие уже в эпоху интернета, новых технологий и мобильных устройств, и так или иначе они станут активно привносить на рынок элементы своей культуры.
САПР в строительстве
Цифровизация бизнеса затронула все его отрасли. В последнее десятилетие бум переживают решения для проектирования, инжиниринга и конструирования промышленных объектов. От советских кульманов проектировщики пришли к 3D-моделированию. Что цифровизация означает для этого сегмента, как помочь команде работать в едином пространстве и почему пока не удается окончательно избавиться от бумажных носителей, помогал разбираться генеральный директор компании AVEVA Алексей Лебедев.




