.. role:: blue :class: blue Твёрдое тело MbSolid ==================== .. _MbSolid_Solid_Body: .. версия ядра: Класс :blue:`MbSolid` объявлен в файле *solid.h*. Твёрдое тело или просто тело :blue:`MbSolid` является наследником класса :ref:`MbItem ` и описывается множеством граней :ref:`MbFaceShell ` *outer* и типом связности *multiState*. Тело представляет собой набор граней, стыкующихся друг с другом по рёбрам и описывающих поверхность моделируемого объекта. Тело может описывать одно или несколько связных множеств точек. Тип связности *multiState* сообщает о том, что тело описывает одно связное множество точек или что тело описывает несколько связных множеств точек и может быть разбито на несколько тел. Множество граней тела *outer* в зависимости от наличия краевых рёбер может описывать два принципиально разных множества точек. Если множество граней не имеет края, то тело описывает множество точек, располагающихся на поверхности граней и с внутренней стороны от этих граней. Такое тело называется *замкнутым* и описывается замкнутой оболочкой. Замкнутое тело приведено на рис. 1: .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.1.png :width: 12cm :align: center Рис. 1 Если множество граней тела имеет край или края, то тело описывает множество точек, располагающихся на поверхности граней и только. Такое тело называется *незамкнутым* и описывается незамкнутой оболочкой. Незамкнутое тело приведено на рис. 2: .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.2.png :width: 12cm :align: center Рис. 2 В большинстве случаев замкнутое тело описывается одним связным множеством граней – одной оболочкой. Если у замкнутого тела есть внутренние полости, тело описывается несколькими связными наборами граней. На рис. 3 приведено замкнутое тело, которое описывается двумя замкнутыми оболочками, одной внешней, а другой внутренней, располагающейся внутри внешней оболочки. .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.3.png :width: 12cm :align: center Рис. 3 Чтобы увидеть полость тела, тело выполнено полупрозрачным. Над телами можно выполнять различные операции – совокупность действий, которая приводит к образованию тела иной формы, например булевы операции. Результат вычитания двух замкнутых тел приведён на рис. 4: .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.4.png :width: 12cm :align: center Рис. 4 Результат операции над замкнутым и незамкнутым телом принципиально отличается, так как действия выполняются над разными множествами точек. Результат вычитания тела из незамкнутого тела приведён на рис. 5: .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.5.png :width: 12cm :align: center Рис. 5 Тело может быть многосвязным, то есть может состоять из нескольких отдельных частей. В этом случае *multiState* принимает значение ms_Multiple. Двусвязное тело, описываемое двумя замкнутыми оболочками, приведено на рис. 6. .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.6.png :width: 12cm :align: center Рис. 6 Такое тело может быть разделено на два односвязных замкнутых тела методом :blue:`DetachParts`\(). Тело на рис. 6 выполнено полупрозрачным. Двусвязное тело, описываемое двумя незамкнутыми оболочками, приведено на рис. 7: .. figure:: /MODELER/OBJECTS_OF_GEOMETRIC_MODEL/pictures/O.8.2.7.png :width: 12cm :align: center Рис. 7 Такое тело может быть разделено на два односвязных незамкнутых тела. Тела создаются методами геометрического ядра C3D. Тела простой формы создаются по точкам, кривым и поверхностям. С помощью операций из тел простой формы можно получить более сложные тела. Редактировать исходные тела и создавать подобные тела можно путём изменения параметров журнала построения MbTransactions или путём непосредственной модификации элементов уже построенных тел. Незамкнутые тела используются в поверхностном моделировании. Незамкнутое тело позволяет сосредоточить усилия на сложных формах моделируемого объекта.