Функционал геометрического ядра C3D дополнен новой операцией, реализующей построение так называемой «срединной оболочки». Данный инструмент появился в составе ядра сравнительно недавно и был разработан по запросу одного из наших пользователей. В этой заметке мы даем краткий обзор новой функциональности.
Области применения срединной оболочки
Построение срединной оболочки на основе имеющейся модели тела необходимо, как правило, в CAE системах при расчете тонкостенных конструкций по теории пластин и оболочек. Теория оболочек говорит о том, что если один из характерных размеров тела (толщина) существенно меньше двух других, то определяющие соотношения механики сплошных сред могут существенно упроститься — по сути трехмерная задача сводится к двумерной. Конструкций, которые могут быть представлены в виде оболочки, достаточно много в различных областях: в машиностроении — корпуса машин, в строительстве — перекрытия и стены, в авиастроении — фюзеляжи и несущие поверхности, в судостроении — корпуса судов и элементы судовых конструкций и т.п.
Особенности алгоритма
Построение срединной оболочки выполняется на основе пары эквидистантных граней тела. Пользователь имеет возможность как указывать такие пары вручную, так и выполнять их поиск в автоматическом режиме. Во втором случае необходимо задать минимальное и максимальное значения расстояния между гранями, т. е. указать желаемый диапазон толщин. На следующем шаге алгоритма построения полученные грани срединной оболочки необходимо «дотянуть» до других ее граней или выполнить их взаимную подрезку. На рис. 1 представлены исходная тонкостенная разнотолщинная модель и результат построения срединной оболочки.
Рисунок 1. Исходная тонкостенная конструкция (слева) и результат построения срединной оболочки (справа)
Положением срединной оболочки относительно родительских граней можно управлять с помощью параметра операции — смещение срединной оболочки. Этот параметр может изменяться от 0 до 1. По умолчанию его значение равно 0,5, т.е. срединная оболочка будет построена равноудаленной от исходных граней. На рис. 2 показан результат операции «срединная оболочка» для различных значений этого параметра.
Рисунок 2. Результат построения срединной оболочки при различных значениях параметра смещения: слева — 0,5; справа – 0,2
Встречаются конструкции, эквидистантные пары граней которых связаны друг с другом через грани скругления (рис. 3). Подобные случаи могут быть обработаны в соответствии с флагом обработки скруглений. Рис. 3 иллюстрирует результат построения срединной оболочки при различных значениях этого флага.
Рисунок 3. Исходная модель и результаты построения срединной оболочки при различных методах обработки скруглений: без обработки (а) и с «усредненным» радиусом скругления (б)
Также есть возможность записать значение толщины оболочки как атрибут грани результирующей срединной оболочки.
Доступность операции
За работу нового алгоритма в ядре отвечает функция MedianShell. Подробнее с описанием функции и набором ее параметров можно ознакомиться в нашей документации по ссылке.
Ниже представлен фрагмент кода инициализации объекта срединной оболочки.
// 1. Выбор базового тела. SolidSPtr baseSolid( ::SelectSolid() ); // 2. Создание параметров операции. MbSNameMaker snameMaker( (SimpleName)ct_MedianShell, MbSNameMaker::i_SideNone, 0 ); std::vector<IndicesPair> facePairs; // Объект пустой. Будет выполнен автоматический поиск срединных граней. MedianShellValues params; params.dmin = 1.0; // Минимальное расстояние. params.dmax = 5.0; // Максимальное расстояние. params.filletType = MedianShellValues::FilletType::tf_none; // Тип расчета радиуса скругления граней срединной оболочки. MbMedianShellParams opParams( facePairs, params, snameMaker ); MbMedianShellResults results; // Результаты операции. // 3. Выполнение построения оболочки. MbResultType res = ::MedianShell( *baseSolid, cm_Copy, opParams, results ); // 4. Вывод. if ( results._solid != nullptr ) TestVariables::viewManager->AddObject( Style(), results._solid );
Также мы добавили небольшое видео для демонстрации возможностей срединной оболочки (работа с операцией ведется из тестового приложения).
На настоящий момент операция «срединная оболочка» активно дорабатывается, а её возможности планомерно расширяются. Так, в скором времени будет доступна опция построения срединной оболочки по парам плоских неэквидистантных граней.
Для того, чтобы ознакомиться со всеми возможностями операции построения срединной оболочки, необходимо запросить ядро C3D на тестирование.