Что такое геометрические условия в параметризации
Параметризация геометрических моделей (Parameterization of geometric models)
Теория параметризации позволяет формализовать процесс определения числа параметров, необходимых для задания геометрического объекта. Эта теория также позволяет решить обратную задачу – определить размерность множества решений поставленной задачи еще перед разработкой алгоритма ее решения. Кроме этого, с помощью теории параметризации можно исследовать возможности определения новых геометрических объектов.
Параметры – независимые числовые величины, которые позволяют выделить геометрический объект из N-параметрического множества объектов в заданной системе параметризации.
Система параметризации – совокупность заданных геометрических элементов (примитивов) и геометрических условий, которые ставят в соответствие каждому объекту набор параметров.
N-параметрическое множество – множество объектов, для выделения одного из которого необходимо связать N параметров.
Параметрическое число объекта – количество параметров (N), которое выделяет единственный объект из N-параметрического множества объектов.
Основы метода параметризации объектов
Из точек можно образовать линию, непрерывно перемещая точку в пространстве. Аналогично можно образовать поверхность, перемещая линию в пространстве. Для определения геометрических объектов (Г.О.) нет необходимости указывать положение всех принадлежащих ему точек. Достаточно лишь указать определитель – совокупность элементов (геометрическая часть), из которых можно образовать Г.О., и условия их перемещения (алгоритм).
Геометрическая часть определителя может быть выражена через другой определитель (геометрическая часть + алгоритм). В конечном итоге геометрическая часть выражается точками, а точки – параметрами, определяющими их взаимное положение.
Размерность пространства. Определение параметрического числа объекта
Параметры определяются суммированием параметров точек, через которые в конечном итоге выражается геометрическая часть определителя. При этом следует иметь в виду, что количество параметров зависит от размерности пространства. Различают:
Определителем отрезка являются 2 фиксированные точки. Следовательно, в пространстве R3 отрезок определяется 6-ю параметрами (N=3+3), в плоскости 4-я (N=2+2). Пирамида с треугольным основанием определяется 4-я фиксированными точками в пространстве и 12 параметрами (N=4*3).
Не все геометрические объекты было бы правильно определять через фиксированные точки. Так, например, если определить прямую по 2-м фиксированным точкам, то окажется, что мы имеем на плоскости 4-х параметрическое множество прямых (на самом деле 2-х параметрическое). Введём новое понятие текущей точки линии (поверхности).
Текущая точка линии – это точка, которая может перемещаться по линии. Т.е., в этом случае один параметр точки не зафиксирован. Поэтому текущая точка линии в пространстве R2 определяется лишь одним параметром, а в пространстве R3 лишь двумя параметрами.
Текущая точка поверхности – это точка, которая может перемещаться по поверхности. Т.е., в этом случае два параметра точки не зафиксированы. Поэтому текущая точка поверхности определяется лишь одним параметром.
Зная параметрические числа прямых и плоскостей, можно их использовать для параметризации более сложных объектов. Например, треугольник можно определить как фигуру, ограниченную прямыми, а пирамиду – как фигуру, ограниченную плоскостями.
Каждая линия на плоскости определяется 2-я параметрами, соответственно, треугольник определяется 6 параметрами.
Аналогично рассуждая, получим, число параметров для пирамиды с четырехугольным основанием будет 15 (по три для каждой из плоскостей). Однако, их не 15, а 14. Где прокол? В этом случае необходимо учитывать, что три боковые плоскости, пересекаясь, определяют одну точку (вершину пирамиды) и, следовательно, для определения 4-й боковой плоскости необходимо добавить еще только 2 текущих точки поверхности (2 параметра) вместо 3-х.
Определитель фигуры может быть различным, но корректная параметризация объекта при элементарных знаниях геометрии обеспечит один и тот же результат. Например, определителем окружности может быть одна фиксированная точка (центр окружности) и одна текущая точка, а также определителем окружности могут быть 3 текущие точки. В обоих случаях получаем один и тот же результат – 3 параметра.
На рисунках ниже видно, что геометрические условия заменяют параметры. Например, прямая, параллельная заданной определяется не 2-я, а 1-м параметром (расстоянием к заданной прямой). Одним параметром вместо 2-х определяется и прямая, касательная к заданной линии. Число параметров, необходимых для определения треугольника, уменьшается при наличии симметрии.
Следовательно, при расчете параметрического числа геометрического объекта необходимо не только просуммировать параметрические числа геометрических элементов определителя, но и вычесть параметрические числа геометрических условий.
N = N1+ N2+…+ Nk — (Ny1+ Ny2+…+ Nyp)
Но для этого необходимо уметь параметризовать геометрические условия.
Параметризация геометрических условий
Размерность геометрического условия Ny определяется разницей параметрического числа объекта, несвязанного условием N1, и параметрического числа объекта, связанного условием N2.
Перпендикулярность прямой к плоскости
Прямая общего положения 4-х параметрическая. Прямая, перпендикулярная к плоскости, определяется точкой в плоскости, следовательно, 2-х параметрическая.
Точно такой же результат можно получить, если в качестве исследуемого объекта выбрать не прямую, а плоскость. Плоскость общего положения 3-х параметрическая. Плоскость, перпендикулярная к прямой, определяется точкой на прямой, следовательно однопараметрическая.
Перпендикулярность 2-х плоскостей
Плоскость общего положения 3-х параметрическая. Плоскость, перпендикулярная к заданной плоскости, определяется прямой в плоскости, следовательно 2-х параметрическая.
Перпендикулярность 2-х прямых (в плоскости)
Прямая общего положения 2-х параметрическая. Прямая, перпендикулярная к прямой, определяется точкой на прямой, следовательно, однопараметрическая.
Параллельность 2-х плоскостей
Плоскость общего положения 3-х параметрическая. Плоскость, параллельная к заданной, определяется текущей точкой на плоскости, следовательно, однопараметрическая.
Параллельность прямой и плоскости
Прямая общего положения 4-х параметрическая. Прямые, параллельные к заданной плоскости, находятся в параллельной к ней плоскости. Положение последней плоскости определяется текущей точкой в этой плоскости, т.е. одним параметром. В плоскости можно провести двухпараметрическое множество прямых. Следовательно, прямая, прямая, параллельная к плоскости, определяется 3 –я параметрами.
Параллельность 2-х прямых (в плоскости)
Прямая общего положения 2-х параметрическая. Прямая, ей параллельная, определяется текущей точкой на прямой, следовательно однопараметрическая.
Параллельность 2-х прямых (в пространстве)
Прямая общего положения 4-х параметрическая. Прямые, ей параллельные, перпендикулярны к одной и той же плоскости. Прямая, перпендикулярная к плоскости 2-х параметрическая, следовательно и прямая, параллельная к заданной прямой, тоже двухпараметрическая.
Касание 2-х линий (на плоскости)
Рассмотрим касание прямой и кривой. Прямая общего положения 2-х параметрическая. Через точку на гладкой кривой можно провести единственную касательную. Точка на линии определяется одним пара-метром, следовательно, и касательных к кривой можно провести однопараметрическое множество.
Касание 2-х линий (в пространстве)
Рассуждая по аналогии с предыдущим случаем, получим:
Касание 2-х поверхностей
Рассмотрим касание плоскости и поверхности. Плоскость общего положения 3-х параметрическая. Через точку на гладкой поверхности можно провести единственную касательную плоскость. Точка на поверхности определяется двумя параметрами, следовательно, и касательных поверхностей можно провести двухпараметрическое множество.
Касание линии к поверхности
Рассмотрим касание прямой к поверхности. Прямая общего положения 4-х параметрическая. Через точку на гладкой поверхности можно провести единственную касательную плоскость (определяется 2-я параметрами), а в ней, через ту же точку можно провести однопараметрическое множество прямых. Следовательно, прямых, касательных к поверхности можно провести 3-х параметрическое множество.
Симметрия
При условии явно или неявно заданных центра, оси или плоскости симметрии учитываются параметры только одной из двух симметричных точек. Следовательно, условие симметрии заменяет количество параметров, равное параметрическому числу лишь одной из симметричных частей.
Выделение параметров формы и положения
Практически все геометрические объекты характеризуются параметрами формы и положения. Исключение составляют точка, прямая и плоскость. Эти элементы различаются в пространстве только лишь положением. Параметры положения Nп и параметры формы Nф в сумме определяют общее параметрическое число N:
Число параметров положения зависит от размерности пространства. В общем случае Nп = 3 для объектов на плоскости и Nф = 6 для объектов в пространстве. Этот факт несложно доказать, используя приемы параметризации.
Для доказательства достаточно определить количество параметров, которых необходимо для определения положения одной декартовой системы координат относительно другой.
Определение параметров положения на плоскости
Система координат определяется:
• точкой (2 параметра);
• прямой, которая проходит через заданную точку и текущую точку линии (ещё один пара-метр);
• прямой, которая проходит через заданную точку перпендикулярно к заданной прямой (без параметров).
Определение параметров положения в пространстве
Система координат определяется:
• точкой (3 параметра);
• прямой, которая проходит через заданную точку и текущую точку линии (ещё 2 параметра);
• прямой, которая проходит через заданную точку, лежит в плоскости, перпендикулярной к заданной прямой, и проходит через текущую точку линии (1 параметр);
• прямой, которая проходит через заданную точку перпендикулярно к заданной плоскости (без параметров).
Всего 6 параметров.
Пример определения параметров формы и положения объектов
Эллипс – множество точек на плоскости, сумма расстояний от каждой из которых к 2-м точкам (фо-кусам) есть величина постоянная (больше, чем расстояние между фокусами).
Отделяем в определителе эллипса геометрическую часть от алгоритмической. Геометрическая часть состоит из 2-х фиксированных точек на плоскости и одной текущей точки на линии.
Выражаем элементы определителя через параметры
Определяем количество параметров формы и положения.
Nп = 3
Nф=N — Nп = 5 – 3 = 2
Определение множества решений геометрических задач
В теории алгоритмов одна из важных проблем – доказать отсутствие алгоритма для решения той или иной задачи. Доказать наличие алгоритма можно путем фактического описания процесса. Доказать же отсутствие алгоритма сложнее. То, что Вы его не сумели описать, отнюдь не означает, что алгоритм не существует. Приемы параметризации позволяют в некоторой степени решить эту проблему в отношении моделирования геометрических объектов.
Задача_1.
Провести прямую, которая пересекает 3 (4 или 5) заданных прямых.
Для того, чтобы оценить, какое множество решений имеет задача, необходимо определить:
1. Какая размерность множества прямых в трехмерном пространстве?
2. Какая размерность геометрического условия (определяется разницей параметрического числа объекта, несвязанного условием, и параметрического числа объекта, связанного условием)?
3. Сколько необходимо условий, чтобы получить нульмерное множество прямых?
Доказательство. В пространстве имеем 4-х параметрическое множество прямых. Если же прямая, пересекает какую-либо линию, то имеем 3-х параметрическое множество прямых, поскольку одна из 2-х точек определяется в 1-о мерном пространстве – на заданной линии. Размерность геометрического условия пересечения линий Ny = 4 — 3 = 1. Следовательно, чтобы получить 0-мерное множество прямых достаточно 4 условия пересечения прямой с линией.
Задача_2.
Провести прямую, которая пересекает 2 заданные прямые и параллельна к 2-м заданным плоскостям (докажите самостоятельно).
Задача_4.
Доказать теорему Польке (основная теорема аксонометрии), используя метод параметризации. Теорема впервые была сформулирована немецким геометром К. Польке (К. Pohlke) в 1860 (без доказательства). П. т. утверждает, что три отрезка произвольной длины, лежащих в одной плоскости и выходящих из одной точки под произвольными углами, представляют собой параллельную проекцию трёх равных и взаимно перпендикулярных отрезков, выходящих из одной точки в пространстве. На основании П. т. три произвольных отрезка, выходящих из одной точки на плоскости проекций, можно принять за изображение координатного трёхосника с одинаковыми масштабными отрезками на его осях.
Доказательство. Из 4-х заданных на плоскости точек выходят прямые линии (проецирующие лучи). Направление этих лучей определяется двумя параметрами (текущей точкой линии). Положение точек на заданных прямых определяется 4-я параметрами (4*1). Из 6 параметров (степеней свободы) три параметра связываются условиями равенства каждого из отрезков единице. Два параметра связывает условие перпендикулярности прямой плоскости (например, оси Z к плоскости XY). Один параметр связывает условие перпендикулярности 2-х прямых в плоскости (например, оси X и Y в плоскости XY).
Определение линий и поверхностей изменением размерности множеств
Можно уменьшать или увеличивать размерность множества за счёт высвобождения параметров или их связывания теми или иными геометрическими условиями. Так, например, от фиксированной точки можно последовательно перейти к текущим точкам линии и поверхности. И, наоборот, от поверхности можно перейти к линии и точке.
Поверхность можно определить как однопараметрическое множество линий, поскольку высвобождением одного параметра каждой из точек линии можно получить 2-х параметрическое множество точек. Например, если перемещать окружность вдоль оси, получим цилиндрическую поверхность.
С другой стороны, к определению поверхности можно перейти, накладывая определённые условия на N-параметрическое множество линий. Так, например, к определению поверхности можно прийти, накладывая на 4–х параметрическое множество прямых условие пересечения 3-х заданных прямых (каждое условие связывает один параметр).
Будущее параметрического CAD’a
Сегодня невозможно представить проектирование зданий, сооружений или деталей механизмов без использования CAD-систем. 90-е годы принесли революцию в CAD-индустрию, когда компания PTC продемонстрировала параметрический подход, значительно упростивший работу инженера, избавив его от части рутинных процедур, которые возникали при минимальной модификации чертежа. Параметрический элементно-ориентированный (feature-based) подход стал стандартом де-факто, но многие вопросы остались нерешенными, в первую очередь, из-за сложности расчетов, возникающих при параметризации чертежа. Прошло почти 20 лет, но CAD-технологии, кажется, не продвинулись ни на шаг. Сейчас у нас есть мощные компьютеры, многократно превосходящие любые системы, доступные в начале 90-х, повсеместно применяются гетерогенные вычисления, последние видеокарты содержат тысячи потоковых ядер. Застывшим во времени CAD пришла пора меняться.
В этой статье я хотел бы познакомить вас с тем что такое параметрический CAD и какие проблемы он испытывает в настоящем, рассказать о наших исследованиях, и о тех решениях, которые способны в ближайшие годы кардинально изменить всю индустрию.
Для начала, хотелось бы вкратце описать что такое CAD вообще и что такое параметрический CAD в частности. Если вы знакомы с этими понятиями, то можете смело пропустить следующие два параграфа и перейти непосредственно к сути.
Что такое CAD?
Независимо от того, что вы собираетесь сделать – разработать сложный механизм, построить дом или просто переставить мебель в комнате – вам понадобится чертеж. При помощи чертежа можно визуализировать проект, чтобы найти его сильные и слабые стороны, противоречия. Ведь не всегда возможно все детально продумать «в голове». Кроме того, чертеж позволяет передать ваше видение какой-либо конструкции другим людям, и обмениваясь идеями постепенно ее совершенствовать.
Процесс создания чертежа называется черчением. Это целая наука, которая совершенствовалась многие столетия вместе с инженерным прогрессом, и к началу 20-го века она обросла большим количеством четких методологий и полезных инструментов, сделав создание чертежа более формализованным, отдалив его от изобразительного искусства и приблизив к чистой инженерии.
Традиционно процесс черчения начинается с того, что вы берете лист бумаги и закрепляете его на ровной поверхности или на специальном чертежном столе. Затем начинаете рисовать что-нибудь карандашом при помощи набора специальных приборов (рейсшина, линейки, лекала и т.д.).
Лично мне трудно провести прямую линию даже по линейке, поэтому в школе я имел определенные проблемы с черчением — любая ошибка и нужно все перерисовывать.
Еще в 60-х годах начались попытки использовать компьютеры для технического проектирования, но только в конце 70-х — начале 80-х годов вместе с лавинообразным распространением персональных компьютеров появились удобные для пользователей программы, позволившие перенести процесс черчения с кульманов на мониторы.
Такие системы (сначала программно-аппаратная связка, затем и просто программа) стали обозначать аббревиатурой 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 и перехватывает все обращения к стандартному решателю. Таким образом, использование нашей технологии нисколько не меняет привычный пользовательский опыт. Более того, подключение нашего плагина не означает полный отказ от использования встроенного решателя, пользователь может легко переключаться между нашим и стандартным решателем. Переключение происходит мгновенно.
От слов к делу
Первый пример
Второй пример
Третий пример
Четвертый пример
Только с использованием 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, а конкретно из второй главы.