Pull to refresh
0

Будущее параметрического CAD’a

Reading time 11 min
Views 17K
Сегодня невозможно представить проектирование зданий, сооружений или деталей механизмов без использования CAD-систем. 90-е годы принесли революцию в CAD-индустрию, когда компания PTC продемонстрировала параметрический подход, значительно упростивший работу инженера, избавив его от части рутинных процедур, которые возникали при минимальной модификации чертежа. Параметрический элементно-ориентированный (feature-based) подход стал стандартом де-факто, но многие вопросы остались нерешенными, в первую очередь, из-за сложности расчетов, возникающих при параметризации чертежа. Прошло почти 20 лет, но CAD-технологии, кажется, не продвинулись ни на шаг. Сейчас у нас есть мощные компьютеры, многократно превосходящие любые системы, доступные в начале 90-х, повсеместно применяются гетерогенные вычисления, последние видеокарты содержат тысячи потоковых ядер. Застывшим во времени CAD пришла пора меняться.

В этой статье я хотел бы познакомить вас с тем что такое параметрический CAD и какие проблемы он испытывает в настоящем, рассказать о наших исследованиях, и о тех решениях, которые способны в ближайшие годы кардинально изменить всю индустрию.



Для начала, хотелось бы вкратце описать что такое CAD вообще и что такое параметрический CAD в частности. Если вы знакомы с этими понятиями, то можете смело пропустить следующие два параграфа и перейти непосредственно к сути.

Что такое CAD?


Независимо от того, что вы собираетесь сделать – разработать сложный механизм, построить дом или просто переставить мебель в комнате – вам понадобится чертеж. При помощи чертежа можно визуализировать проект, чтобы найти его сильные и слабые стороны, противоречия. Ведь не всегда возможно все детально продумать «в голове». Кроме того, чертеж позволяет передать ваше видение какой-либо конструкции другим людям, и обмениваясь идеями постепенно ее совершенствовать.

Процесс создания чертежа называется черчением. Это целая наука, которая совершенствовалась многие столетия вместе с инженерным прогрессом, и к началу 20-го века она обросла большим количеством четких методологий и полезных инструментов, сделав создание чертежа более формализованным, отдалив его от изобразительного искусства и приблизив к чистой инженерии.

Традиционно процесс черчения начинается с того, что вы берете лист бумаги и закрепляете его на ровной поверхности или на специальном чертежном столе. Затем начинаете рисовать что-нибудь карандашом при помощи набора специальных приборов (рейсшина, линейки, лекала и т.д.).

image

Лично мне трудно провести прямую линию даже по линейке, поэтому в школе я имел определенные проблемы с черчением — любая ошибка и нужно все перерисовывать.

Еще в 60-х годах начались попытки использовать компьютеры для технического проектирования, но только в конце 70-х — начале 80-х годов вместе с лавинообразным распространением персональных компьютеров появились удобные для пользователей программы, позволившие перенести процесс черчения с кульманов на мониторы.

image

Такие системы (сначала программно-аппаратная связка, затем и просто программа) стали обозначать аббревиатурой CAD от английского Computer-Aided Design, что можно приблизительно перевести как проектирование при помощи компьютера. В России для таких систем утвердилась аббревиатура САПР (системы автоматизированного проектирования), что, однако, подразумевает не только CAD, но и CAE (Computer-Aided Engineering – инженерия, расчеты при помощи компьютера) и CAM (Computer-Aided Manufacturing – подготовка производства при помощи компьютера).

Параметрический CAD


Первоначально 2D CAD-системы были основаны на координатном подходе. Это значит, что, когда оператор создавал линии в 2D-чертеже, программа записывала координаты концевых точек каждой линии. Проблемы такого подхода проявляются тогда, когда вам нужно изменить чертеж (например, увеличить длину какой-нибудь линии) – даже маленькое изменение обычно требует обновления вручную многочисленных линий, на которых сказалось изменение в чертеже.

Параметрический подход позволяет инженеру мыслить в терминах размеров (линейных и угловых) и геометрических ограничений вместо того, чтобы привязываться к координатам. При этом подходе, вы рисуете геометрические примитивы (точки, линии, окружности, дуги и т.д.) и выставляете для них размерности и геометрические ограничения (например, параллельность, перпендикулярность, равенство длин и т. п.). Программное обеспечение самостоятельно строит систему уравнений, в которой координаты точек будут неизвестными, а размеры и геометрические ограничения будут уравнениями, которые определяют решение. При параметрическом подходе, если вы делаете какие-либо изменения, вам не нужно ничего «поправлять» в рисунке самостоятельно, система автоматически пересчитает координаты всех точек на основе заданных размеров и геометрических ограничений, после чего перерисует модель.

Проблемы параметрического подхода


Идея параметрического подхода очень простая, понятная и привлекательная. Представьте, что вы потратили несколько месяцев на чертеж большого здания (да еще и в нескольких разрезах с планами каждого этажа), принесли чертеж заказчику, а он попросил расширить оконные проемы на несколько сантиметров. Без параметризации это будет означать серьезную переделку, которая может потребовать много времени. Если же правильно выставить размеры и геометрические ограничения, то задача решается автоматически изменением всего лишь одного параметра.

К сожалению, не все так просто. В случае реальных чертежей — результирующая система уравнений может получиться очень большой и сложной. Она может содержать многие тысячи уравнений и миллионы переменных. Ни одна современная параметрическая CAD-система не в состоянии обрабатывать параметризованные модели такой сложности. Очень часто их поведение нестабильно уже для моделей, содержащих небольшое количество геометрических примитивов. Более того, даже если они будут способны обработать относительно большую модель, для получения результата может потребоваться много времени, что делает работу с такой моделью некомфортной.

Cheetah solver


В основе современных параметрических CAD-систем лежат алгоритмы, разработанные десятилетия назад и мало изменившиеся с тех пор. Они используют медленные архаичные математические методы и работают в одном потоке, не используя всю мощь современных многоядерных процессоров. Например, если в вашем компьютере стоит процессор Core i7, который содержит четыре настоящих ядра и восемь виртуальных (за счет hyper-threading), то любая современная CAD-система будет использовать процессор где-то на 15%.

Мы разработали алгоритм, который позволяет комфортно работать со значительно более сложными параметризованными моделями в тысячи раз быстрее, чем любая современная CAD-система. Наш алгоритм хорошо параллелится, поэтому его производительность может бесконечно масштабироваться под требуемый масштаб геометрической модели, посредствам увеличения числа вычислительных ядер в системе. Он может работать не только на многоядерных процессорах общего назначения, но также на видеокартах (NVIDIA CUDA), имеющих сотни и даже тысячи ядер, и картах Xeon Phi, имеющих 60 физических ядер и 240 виртуальных.

В качестве первой реализации нашего алгоритма мы сделали плагин для программы AutoCAD 2015. Мы выбрали именно AutoCAD как стартовую платформу, потому что это одна из самых популярных CAD-систем, с не слишком удачной реализацией параметрической функциональности. Кроме того, плагины для AutoCAD можно писать с использованием удобного и дружественного .NET API.

Наш плагин встраивается в AutoCAD и перехватывает все обращения к стандартному решателю. Таким образом, использование нашей технологии нисколько не меняет привычный пользовательский опыт. Более того, подключение нашего плагина не означает полный отказ от использования встроенного решателя, пользователь может легко переключаться между нашим и стандартным решателем. Переключение происходит мгновенно.

От слов к делу


Для того, чтобы лучше понять, о чем идет речь приведу несколько видео со сравнением поведения Cheetah Solver с популярными параметрическими CAD-системами. В сравнении будут участвовать:
  • AutoCAD 2015
  • Autodesk Inventor Professional 2015
  • Solid Edge ST7
  • SolidWorks 2013
  • PTC Creo Parametric 3.0


Машина на которой происходила запись имеет следующие характеристики:
  • Core i7-4770
  • 16G RAM
  • NVIDIA GeForce GTX 750


Первый пример


Первая демонстрационная модель более характерна для архитектурных чертежей. Она масштабная, содержит 490 примитивов и 1596 ограничений, но состоит, в основном, из горизонтальных и вертикальных линий, то есть система уравнений получается почти линейной.

Мы попытаемся расширять или уменьшать размеры объектов, при сохранении заданных ограничений. Посмотрим на поведение тестируемых программ:
  • AutoCAD не в состоянии адекватно трансформировать чертеж. При попытке потянуть за угол объекта вместо расширения/сужения происходит полный сдвиг, то есть результирующую систему уравнений не удается корректно разрешить. В зависимости от выбора точки за которую тянешь, то есть от начального условия, чертеж может застревать или не двигаться совсем. При использовании AutoCAD ни разу не удалось увидеть ожидаемый результат. Следует обратить внимание, что в момент расчета загрузка процессора составляет не более 19% (с учетом запущенной программы для записи экрана), фактически работает только одно ядро, причем не физическое (из четырех), а логическое (из восьми).
  • Autodesk Inventor с огромной задержкой (порядка 12 секунд), но все же смог трансформировать чертеж ожидаемым образом при попытке потянуть вверх за левый верхний угол. При дальнейшем драге точки отмечается интересный эффект — иногда чертеж трансформируется, а иногда, как и в AutoCAD, происходит сдвиг всего чертежа (при драге вниз это происходит всегда). Вернуться в исходное положение невозможно. Даже не обращая внимание на задержку в 12 секунд, поведение Autodesk Inventor не позволяет говорить о работоспособности на данной модели. Как и в случае с AutoCAD, загрузка процессора около 19%, работа идет на одном ядре.
  • Solid Edge ST7 показывает другое поведение, первая трансформация проходит адекватно, пусть и с большой задержкой, но затем чертеж «застревает», движение мышки не оказывает никакого влияния. Иногда также происходят полные сдвиги. Предсказать поведение Solid Edge ST7 на этой модели не представляется возможным. Загрузка процессора немногим более 20%.
  • SolidWorks 2013 не справился даже с тем, чтобы нарисовать полную демонстрационную модель из 6 объектов. Максимум чего мне удалось добиться – 2 объекта, то есть 1/3 демонстрационной задачи. Но даже на такой маленькой схеме работу нельзя назвать корректной: огромная задержка, сдвиги вместо трансформации и непредсказуемое поведение — все, как и в предыдущих программах. Загрузка процессора около 20%.
  • PTC Creo Parametric 3.0 из всех испытанных выше программ работает наиболее корректно, при определенных начальных условиях (тянуть за левый верхний угол) программа показывает небольшую задержку и плавно трансформирует чертеж, позволяя даже вернуться к исходному положению. В случае других начальных условий начинают вылезать ошибки, иногда схема замирает, а иногда происходит сбой и результат перестает удовлетворять установленным ограничениям. Загрузка процессора 21%.
  • Cheetah Solver, подключенный к AutoCAD 2015, позволяет трансформировать демонстрационную модель быстро и адекватно. Обратите внимания, что при изменении размеров объекта меняется только та часть чертежа, которую непосредственно трансформируют, остальной чертеж остается на месте — именно такое поведение является ожидаемым. В любой момент можно вернуть точку на исходную позицию и получить исходный чертеж. Решение задачи загружает процессор на 45%, равномерно распределяя нагрузку между всеми ядрами (мы работаем над тем, чтобы увеличить загрузку процессора хотя бы до 90%).


Второй пример


Следующая модель имеет особенности, характерные для механических чертежей. Здесь присутствуют различные комбинации закруглений. Если быть более точным, то объекты состоят из дуг и отрезков, соединяющихся по касательной. На чертеже 512 примитивов (256 дуг и 256 отрезков) и 1736 ограничений. Ограничения типа «касательная» создают более сложные нелинейные уравнения, чем в предыдущем примере.

Как и в прошлый раз попробуем трансформировать объект, потянув за точки.
  • AutoCAD не способен справиться с задачей. За какую бы точку мы не тянули происходят лишь «подергивания», но ни сдвига, ни, тем более, адекватной трансформации не происходит. Загрузка процессора составляет не более 19%, работает только одно ядро.
  • Autodesk Inventor после огромной задержки делает сдвиг всей схемы, о трансформации речи не идет. Загрузка процессора около 19%.
  • Solid Edge ST7 не позволил объединить все объекты в единый чертеж, фактически работа идет с двумя блоками по 8 объектов, но даже задача половинной размерности программе не под силу. После небольшого сдвига схема «застревает». Трансформации добиться не удалось. Загрузка процессора 21%.
  • SolidWorks 2013 как и на прошлом примере не справился с тем, чтобы нарисовать полномасштабный пример. Не справился он и с примеров в половину размерности. Если рассматривать пример в четверть исходного (4 объекта), то также, как и в предыдущих программах, в лучшем случае, происходит лишь сдвиг вместо трансформации.
  • PTC Creo Parametric 3.0 удается трансформировать схему, но эффект далек от предсказуемого, объекты, связанные с тем, к которому применяется действие, трансформируются по-разному и не согласованно. Загрузка процессора 21%.
  • Cheetah Solver, подключенный к AutoCAD 2015, легко справляется с поставленной задачей. Объекты соседние к изменяемому трансформируются минимально согласно ограничениям, без значительного изменения формы, как это происходит в PTC Creo Parametric. Решение задачи загружает процессор на 40 – 50 процентов, равномерно распределяя нагрузку между всеми ядрами.


Третий пример


Рассмотрим еще один пример большой размерности. Несмотря на то, что его размерность примерно в 2 раза больше, чем в двух предыдущих примерах, он достаточно простой в плане используемых уравнений (перпендикулярные отрезки, образующие прямоугольник). Пример содержит 1536 отрезков и 3072 ограничения.

На этот раз зафиксируем угловую точку одного из прямоугольников специальным ограничением и попробуем повернуть этот прямоугольник вокруг фиксированной точки.
  • AutoCAD стабильно зависает на этом примере, хотя в менеджере задач видно, что расчет идет. После пары минут ожидания впустую приходится сбрасывать процесс.
  • Autodesk Inventor справляется с размерностью задачи, но в процессе поворота происходят странные «подергивания», и многие линии уходят в бесконечность. Загрузка процессора 19% и вся работа идёт на одном ядре.
  • Solid Edge ST7 ведет себя лучше, чем Autodesk Inventor, в бесконечность уходят стороны только одного прямоугольника, «подергивания» также происходят. Загрузка процессора 17%.
  • SolidWorks 2013 не смог справиться с двумя предыдущими примерами, но с этим справился. Поведение почти идентично поведению Autodesk Inventor — те же «подергивания» и те же бесконечные линии. Загрузка процессора 20%.
  • PTC Creo Parametric 3.0 на двух предыдущих примерах показывал лучшие результаты, но в этот раз не справился и с задачей в четверть исходной – зависает после небольшого сдвига.
  • Cheetah Solver, подключенный к AutoCAD 2015, работает быстро, без «подергиваний» и артефактов. Решение задачи загружает процессор на 75-80 процентов, равномерно распределяя нагрузку между всеми ядрами.


Четвертый пример


При сравнении параметрических CAD-программ представляют интерес не только задачи большой размерности. Оказывается, если речь идет даже о небольшой детали сложной конфигурации (в ней может быть всего несколько десятков примитивов), то и она может вызвать неприятные эффекты.
В этом последнем примере рассмотрены четыре маленьких модели с типичными для механических деталей ситуациями.

Только с использованием Cheetah Solver удается адекватно трансформировать данные геометрические модели. Все остальные тестируемые CAD-программы демонстрируют очень нестабильное поведение – даже маленький сдвиг какой-нибудь точки часто приводит к непредсказуемым большим изменениям в чертеже.

Заключение



Сейчас мы находимся на стадии альфа-версии, стабильная бета ожидается в первом квартале 2015 года.

В первом квартале также планируется, что Cheetah Solver заработает на GPU NVIDIA с использованием CUDA (compute capability 3.5+). Мы ожидаем, что на наших тестовых машинах бета при использовании GPU должна работать на 2 порядка быстрее нынешней альфы.

Кроме того, в бете будут внесены некоторые изменения в алгоритм (тестируемые сейчас), которые должны сделать расчет еще стабильнее и, при прочих равных, быстрее в 2-3 раза.

Наша конечная цель – возможность свободно оперировать сотнями тысяч примитивов с сотнями тысяч ограничений.

Наши QA-специалисты усердно работают, но, тем не менее, любой отзыв от вас – наших будущих пользователей — будет чрезвычайно полезен. Речь идет не только о багах и проблемах, но и о возможных улучшениях функциональности. Мы создаем свою систему ограничений, соответственно, никак не связаны списком представленном в AutoCAD, Inventor, SolidWorks и т.д. Если вы часто сталкиваетесь с какими-то специфическими задачами для которых не хватает встроенных ограничений – расскажите нам и мы попробуем добавить их в следующей версии.

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

Если у вас есть схемы и модели, которые вы хотели бы параметризовать (такие, с которыми не справляются стандартные CAD программы), и которыми вам не жалко поделиться – мы с радостью возьмем их в качестве тестового примера и будем использовать для отладки.

Кроме того, нам интересно было бы знать, какие CAD программы вы используете. Oт этого будет зависеть для какой программы мы разработаем наш следующий плагин. Сейчас мы выбираем между Autodesk Inventor и SolidWorks. К сожалению, наша команда слишком маленькая. Пока у нас не будет дополнительных ресурсов, нам придется выбирать что-то одно, и выбор зависит от вас.

На нашем сайте много полезной информации. Там также есть блог, где вы можете написать все свои мнения, предложения и замечания.

На нашем YouTube-канале периодически появляются новые видео, демонстрирующие работу Cheetah Solver. Там тоже можно оставлять комментарии (можно по-русски).

Еще по этой ссылке можно скачать альфа-версию плагина для AutoCAD 2015 с примерами, чтобы попробовать все самостоятельно.

В следующих статьях я постараюсь более подробно рассказать о наших исследованиях и о функционировании параметрических CAD, следите за нашими публикациями.


*Иллюстрации взяты из книги CAD History, а конкретно из второй главы.
Tags:
Hubs:
+5
Comments 11
Comments Comments 11

Articles

Information

Website
www.cloud-invent.com
Registered
Founded
Employees
2–10 employees
Location
Израиль