.. role:: blue :class: blue Построение линейчатого незамкнутого тела ======================================== .. _Constructing_a_Ruled_Body: .. версия ядра: 118041 Функция .. code-block:: cpp MbResultType RuledShell( const MbRuledShellParams & ruledParams, MbRuledShellResult & outParams ); выполняет построение линейчатого незамкнутого тела по двум кривым, заданным в параметрах. Функция принимает в качестве входного параметра объект **ruledParams** класса :blue:`MbRuledShellParams` (см. определение в *op_shell_parameter.h*), содержащий параметры построения: - **pars** — параметры операции (геометрическая информация, необходимая для построения тела); - **operNames** — именователь граней, ребер и вершин построенного тела; - **isPhantom** — режим создания фантома. Выходным параметром функции является построенное тело **result**. Функция возвращает код результата операции из перечисления :blue:`MbResultType`. Функция объявлена в файле *action_shell.h*. Линейчатое тело строится по кривым **pars**.\ *curve0* и **pars**.\ *curve1*. Если кривые являются составными, то на каждой паре сегментов составных кривых будет построена линейчатая поверхность, а на каждой поверхности будет построена грань тела. Смежные грани будут иметь общие ребра. Кривые **pars**.\ *curve0* и **pars**.\ *curve1* могут быть дополнительно разбиты на сегменты параметрами **pars**.\ *breaks0* и **pars**.\ *breaks1*. Параметр **pars**.\ *joinByVertices* указывает, соединять ли контуры с одинаковым количеством сегментов через вершины. По умолчанию **pars**.\ *joinByVertices* = *false*. Параметр **pars**.\ *checkSelfInt* указывает, проверять ли кривые на самопересечение. По умолчанию **pars**.\ *checkSelfInt* = *false*. Параметр **pars**.\ *simplifyFaces* указывает, упрощать ли грани построенного тела. Параметр **pars**.\ *proportional* инициирует пропорциональную натуральной параметризацию кривых. Параметр **pars**.\ *mismatchMax* определяет допустимое несовпадение противолежащих точек стыковки сегментов. Параметр **pars**.\ *segmentSplit* указывает, разделять ли оболочку на грани по сегментам контуров. На рисунке приведено линейчатое тело, построенное по составным кривым, каждая из которых содержит три сегмента: .. figure:: /MODELER/METHODS_OF_SOLID_BUILDING/pictures/M.1.9.2.png :width: 12cm :align: center Построенное тело состоит из одной или нескольких граней. Линейчатое тело всегда имеет края, проходящие по исходным кривым. Рассматриваемая функция может выполнять проверку на самопересечение граней. Кривые **pars**.\ *curve0* и **pars**.\ *curve1* могут быть циклически замкнуты. В журнал созданного тела функция добавляет строитель :blue:`MbRuledShell`, который объявлен в файле *cr_ruled_shell.h*.