Как инженер-конструктор может почувствовать силу геометрического ядра? Он работает в своей CAD-системе и не видит ее математическую «начинку». Сегодня покажем пример, как пользователь системы КОМПАС-3D, трехмерное моделирование в которой основано на ядре C3D, обратился напрямую к математикам и заказал доработку поверхности, необходимую для проектирования носовой части фюзеляжа самолета-амфибии. А математики его заказ исполнили.
Вот как было поставлено техническое задание. В эфире – главный конструктор НПО «АэроВолга» Дмитрий Суслаков.
Если переводить на язык геометрического моделирования, то предложение «АэроВолги» касалось доработки поверхности по сечениям
Поскольку поверхность
где — единичный вектор из центра сечения в , – некоторый коэффициент.
Коэффициент находится из условия равенства проекции вектора и на выбранную нормаль :
Рис 1. Схема построения купола
Для управления плавностью перехода вводится коэффициент и связывается с расстоянием между точками на соседних сечениях. С управлением плавности формула для направления на торце выгляди так:
Результат варьирования коэффициента плавности показан на рисунке 2.
Рис 2. Изменение коэффициента плавности
Производные рассчитываются простой заменой , на , и , соответственно для получения , с учетом , где – производные соседних кривых в выбранных точках. С учетом выбранного направления и его производных гладкость поверхности вблизи вершины купола представлена на рисунке 3.
Рис 3. Зебра гладкости поверхности по сечениям вблизи точечного сечения
Граничное условие «Купол» возможно также применять для построения тела, где промежуточные сечения представлены составными контурами (см. рис. 4). Для этого необходимо определить вектор в центре тяжести сечения . Однако, в общем случае задание направления может быть произвольным.
Рис 4. Тело со стыкующимися поверхностями с граничным условием «Купол»
При значительном отклонении вектора от его базового определения поведение результирующего тела может качественно изменится – от плавного перехода в точечном сечении до заостренного пика (рис. 5). При этом условие определения нормали на торце будет сохраняться.
Рис 5. Изменение купола при различном определение вектора
В структуре граничных условий для поверхности по семейству кривых присутствуют три поля, отвечающие за построение куполообразной поверхности:
Задание полей для построения поверхности по сечениям с установкой нормали на торце осуществляется с помощью специального конструктора
Предложенный инструмент является новым решением, позволяющим инженеру моделировать плавные обводы изделия исходя из дизайнерских, аэрогидродинамических и прочих конструктивных требований.
Автор — Виталий Шапошников, математик-программист C3D Labs
Вот как было поставлено техническое задание. В эфире – главный конструктор НПО «АэроВолга» Дмитрий Суслаков.
Если переводить на язык геометрического моделирования, то предложение «АэроВолги» касалось доработки поверхности по сечениям
MbLoftedSurface
, а именно построения поверхностей, где одно или оба концевых сечения представлены точками с возможностью ориентировать нормаль в точечных сечениях, причем в этих областях необходимо обеспечить гладкость поверхности. Такую опцию при построении поверхности по сечениям мы назвали «Купол».Поскольку поверхность
MbLoftedSurface
между сечениями изменяется по закону составного сплайна Эрмита, то для построения купола на торце нужно задать вектор производной на конце сплайна ортогонально выбранной нормали. Нормаль определяется как ось в локальной системе координат точечного сечения. Для определения вектора вводятся точки на соседних кривых , и центр тяжести сечения (рис. 1). Вектор производной можно записать как:где — единичный вектор из центра сечения в , – некоторый коэффициент.
Коэффициент находится из условия равенства проекции вектора и на выбранную нормаль :
Рис 1. Схема построения купола
Для управления плавностью перехода вводится коэффициент и связывается с расстоянием между точками на соседних сечениях. С управлением плавности формула для направления на торце выгляди так:
Результат варьирования коэффициента плавности показан на рисунке 2.
Рис 2. Изменение коэффициента плавности
Производные рассчитываются простой заменой , на , и , соответственно для получения , с учетом , где – производные соседних кривых в выбранных точках. С учетом выбранного направления и его производных гладкость поверхности вблизи вершины купола представлена на рисунке 3.
Рис 3. Зебра гладкости поверхности по сечениям вблизи точечного сечения
Граничное условие «Купол» возможно также применять для построения тела, где промежуточные сечения представлены составными контурами (см. рис. 4). Для этого необходимо определить вектор в центре тяжести сечения . Однако, в общем случае задание направления может быть произвольным.
Рис 4. Тело со стыкующимися поверхностями с граничным условием «Купол»
При значительном отклонении вектора от его базового определения поведение результирующего тела может качественно изменится – от плавного перехода в точечном сечении до заостренного пика (рис. 5). При этом условие определения нормали на торце будет сохраняться.
Рис 5. Изменение купола при различном определение вектора
В структуре граничных условий для поверхности по семейству кривых присутствуют три поля, отвечающие за построение куполообразной поверхности:
setNormal
– флаг расчета направления поверхности на торце из условия задания нормали на торце,derFactor
– коэффициент плавности на торце,directSurf
– направление вектора
Задание полей для построения поверхности по сечениям с установкой нормали на торце осуществляется с помощью специального конструктора
MbLoftedSurface
.Предложенный инструмент является новым решением, позволяющим инженеру моделировать плавные обводы изделия исходя из дизайнерских, аэрогидродинамических и прочих конструктивных требований.
Виталий Булгаков, руководитель отдела аналитики КОМПАС-3D:
«Задача, поставленная «АэроВолгой», как это часто бывает, разделилась на две части – ту, что в ядре и обеспечивает создание геометрии, и ту, что позволяет всем этим пользоваться конструктору, работающему в КОМПАС.
Чаще параллельно делается функциональность ядра и ведется проработка, как это будет реализовано в КОМПАС – отдельной операцией или добавлено в виде параметров к уже существующей? Как сделать так, чтобы было удобно пользоваться, не утяжелять чрезмерно интерфейс? В результате новые возможности было решено добавить, как дополнительные параметры операции «Элемент по сечениям».
В какой-то момент приходит сообщение «В ядре функциональность готова!». Теперь начинается задуманная реализация в КОМПАС, а далее можно испытывать сделанное. В данном случае делалась «доводка» для получения гладкой геометрии без резких перепадов кривизны, что можно наблюдать на иллюстрации с «зеброй». Также проверялось влияние на другие способы построения операции «Элемент по сечениям».
В экспериментальной сборке КОМПАС функциональность демонстрировалась экспертам из авиационной отрасли, после чего прошли финальные доработки по управлению формой (коэффициент), и теперь мы можем представить сделанное всем, кто начнет работу в КОМПАС-3D v19».
Автор — Виталий Шапошников, математик-программист C3D Labs