C3D Kernel  104598
Функции
Файл action_solid.h

Функции создания тел, операции с телами. Подробнее...

Функции

MbResultType ElementarySolid (const SArray< MbCartPoint3D > &points, ElementaryShellType solidType, const MbSNameMaker &names, MbSolid *&result)
 Создать элементарное тело.
MbResultType ElementarySolid (const MbSurface &surface, const MbSNameMaker &names, MbSolid *&result)
 Создать тело по поверхности.
MbResultType MeshSolid (const MbMesh &mesh, const GridsToShellValues &params, const MbSNameMaker &names, MbSolid *&result, IProgressIndicator *prog=NULL)
 Создать тело на основе полигональной модели.
MbResultType GridSolid (const MbGrid &grid, const MbSNameMaker &names, MbSolid *&result, IProgressIndicator *prog=NULL)
 Создать тело на основе триангуляции.
MbResultType CollectionSolid (const MbCollection &grid, const MbSNameMaker &names, MbSolid *&result, IProgressIndicator *progBar=NULL)
 Создать тело на основе коллекции элементов.
MbSolidCreateSolid (MbFaceShell &shell, const MbSNameMaker &names)
 Создать тело c заданной оболочкой.
bool GetSweptValue (const MbSweptData &sweptData, const MbAxis3D &axis, const MbVector3D &direction, const bool rotation, const bool operationDirection, const MbCartPoint3D &point, double &value)
 Рассчитать глубину выдавливания или угол вращения.
void GetSweptImagePosition (const MbCurve3D &generatrix, const MbSurface &surface, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, MbCartPoint &imagePosition, MbResultType &resType)
 Получить начальное приближение для нахождения образа при вращении/выдавливании.
void GetRangeToSurface (const MbSurface &surface, const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, const bool operationDirection, const MbCartPoint &imagePosition, double range[2], MbRect &rectOnSurface, MbResultType &resType)
 Найти расстояния/углы от образующей до поверхности при вращении/выдавливании.
double AreaSign (const MbCurve3D &curve, const MbAxis3D &axis, const MbVector3D &direction, bool rotation)
 Вычислить площадь проекции кривой на виртуальную координатную плоскость.
void AnalyzeSurfaceRelationToSweptOperation (const MbSurface &cuttingSurface, const MbCartPoint &imagePosition, const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, bool operationDirection, bool &relativeSense, MbResultType &resType)
 Определить ориентацию секущей грани относительно тела выдавливания/вращения.
void FindPolesAndSeamsInContour (const MbSurface &surface, const MbContour &contour, std::vector< size_t > &seamsAndPoles)
 Найти сегменты контура на поверхности, соответствующие швам и полюсам.
MbResultType ExtrusionSolid (const MbSweptData &sweptData, const MbVector3D &direction, const MbSolid *solid1, const MbSolid *solid2, bool checkIntersection, const ExtrusionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, MbSolid *&result)
 Создать тело выдавливания.
MbResultType RevolutionSolid (const MbSweptData &sweptData, const MbAxis3D &axis, const RevolutionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, MbSolid *&result)
 Создать тело вращения.
MbResultType EvolutionSolid (const MbSweptData &sweptData, const MbCurve3D &spine, const EvolutionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, const MbSNameMaker &spineNames, MbSolid *&result)
 Создать кинематическое тело.
MbResultType EvolutionSolid (const MbSweptData &sweptData, const MbSpine &spine, const EvolutionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, const MbSNameMaker &spineNames, MbSolid *&result)
 Создать кинематическое тело.
MbResultType LoftedSolid (SArray< MbPlacement3D > &pl, RPArray< MbContour > &c, const MbCurve3D *spine, const LoftedValues &params, SArray< MbCartPoint3D > *ps, const MbSNameMaker &names, RPArray< MbSNameMaker > &ns, MbSolid *&result)
 Создать тело по плоским сечениям.
MbResultType LoftedSolid (SArray< MbPlacement3D > &pl, RPArray< MbContour > &c, const MbCurve3D *spine, const LoftedValues &params, RPArray< MbCurve3D > *guideCurves, SArray< MbCartPoint3D > *ps, const MbSNameMaker &names, RPArray< MbSNameMaker > &ns, MbSolid *&result)
 Создать тело по пространственным сечениям.
MbResultType LoftedSolid (RPArray< MbSurface > &surfs, RPArray< MbContour > &c, const MbCurve3D *spine, const LoftedValues &params, RPArray< MbCurve3D > *guideCurves, SArray< MbCartPoint3D > *ps, const MbSNameMaker &names, RPArray< MbSNameMaker > &ns, MbSolid *&result)
 Создать тело по пространственным сечениям.
MbResultType ExtrusionResult (MbSolid &solid, MbeCopyMode sameShell, const MbSweptData &sweptData, const MbVector3D &direction, const ExtrusionValues &params, OperationType oType, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, MbSolid *&result)
 Создать тело выдавливания и выполнить булеву операцию.
MbResultType RevolutionResult (MbSolid &solid, MbeCopyMode sameShell, const MbSweptData &sweptData, const MbAxis3D &axis, const RevolutionValues &params, OperationType oType, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, MbSolid *&result)
 Создать тело вращения и выполнить булеву операцию.
MbResultType EvolutionNormalize (const MbSurface &surface, const RPArray< MbContour > &contours, const MbCurve3D &guide, const EvolutionValues &parameters, MbAxis3D &axis, double &angle, VERSION version)
 Сориентировать образующий контур и направляющую кинематики.
MbCurve3DTrimClosedSpine (const MbCurve3D &curve, double t)
 Создать усеченную замкнутую кривую на копии кривой.
MbResultType EvolutionResult (MbSolid &solid, MbeCopyMode sameShell, const MbSweptData &sweptData, const MbCurve3D &spine, const EvolutionValues &params, OperationType oType, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, const MbSNameMaker &spineNames, MbSolid *&result)
 Создать кинематическое тело и выполнить булеву операцию.
MbResultType LoftedResult (MbSolid &solid, MbeCopyMode sameShell, SArray< MbPlacement3D > &pl, RPArray< MbContour > &c, const MbCurve3D *spine, const LoftedValues &params, OperationType oType, SArray< MbCartPoint3D > *ps, const MbSNameMaker &names, RPArray< MbSNameMaker > &ns, MbSolid *&result)
 Создать тело по плоским сечениям и выполнить булеву операцию.
MbResultType LoftedResult (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbSurface > &surfs, RPArray< MbContour > &c, const MbCurve3D *spine, const LoftedValues &params, OperationType oType, RPArray< MbCurve3D > *guideCurves, SArray< MbCartPoint3D > *ps, const MbSNameMaker &names, RPArray< MbSNameMaker > &ns, MbSolid *&result)
 Создать тело по пространственным сечениям и выполнить булеву операцию.
MbResultType BooleanResult (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, OperationType oType, const MbBooleanFlags &flags, const MbSNameMaker &operNames, MbSolid *&result)
 Выполнить булеву операцию.
MbResultType BooleanSolid (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, OperationType oType, const MbSNameMaker &names, MbSolid *&result)
 Создать тело путем булевой операции.
MbResultType BooleanShell (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, OperationType oType, const MbSNameMaker &names, MbSolid *&result)
 Создать тело путем булевой операции.
MbResultType SolidCutting (MbSolid &solid, MbeCopyMode sameShell, const MbSurface &surface, int part, const MbSNameMaker &names, bool closed, const MbMergingFlags &flags, MbSolid *&result)
 Отрезать часть тела поверхностью.
MbResultType SolidCutting (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, const MbVector3D &direction, int part, const MbSNameMaker &names, bool closed, const MbMergingFlags &flags, MbSolid *&result)
 Отрезать часть тела выдавленным плоским контуром.
MbResultType SolidCutting (MbSolid &solid, MbeCopyMode sameShell, const MbSurface &surface, const MbSNameMaker &names, bool closed, const MbMergingFlags &flags, RPArray< MbSolid > &result)
 Разрезать тело поверхностью.
MbResultType SolidCutting (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, const MbVector3D &direction, const MbSNameMaker &names, bool closed, const MbMergingFlags &flags, RPArray< MbSolid > &result)
 Разрезать тело выдавленным плоским контуром.
MbResultType SymmetrySolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbSNameMaker &names, MbSolid *&result)
 Cоздать симметричное тело относительно плоскости.
MbResultType MirrorSolid (const MbSolid &solid, const MbPlacement3D &place, const MbSNameMaker &names, MbSolid *&result)
 Cоздать зеркальную копию тела относительно плоскости.
MbResultType RibSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, size_t index, RibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Создать тело с ребром жёсткости.
MbResultType RibElement (const MbSolid &solid, const MbPlacement3D &place, MbContour &contour, size_t index, RibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Создать отдельное ребро жёсткости.
MbResultType FilletSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbCurveEdge > &initCurves, RPArray< MbFace > &initBounds, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Скруглить ребра постоянным радиусом.
MbResultType FilletSolid (MbSolid &solid, MbeCopyMode sameShell, SArray< MbEdgeFunction > &initCurves, RPArray< MbFace > &initBounds, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Скруглить ребра переменным радиусом.
MbResultType FilletSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbCurveEdge > &initCurves, RPArray< MbFace > &initBounds, RPArray< MbVertex > &initVertices, const SmoothValues &params, const CornerValues &cornerData, const MbSNameMaker &names, MbSolid *&result)
 Скруглить вершины и примыкающие к ней рёбра постоянным радиусом.
MbResultType FullFilletSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbFace > &initFaces, const RPArray< MbFace > &initFacesLeft, const RPArray< MbFace > &initFacesRight, const FullFilletValues &params, const MbSNameMaker &names, MbSolid *&result)
 Скруглить цепочку граней тела.
MbResultType ChamferSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbCurveEdge > &initCurves, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Построить фаски ребeр тела.
MbResultType OffsetSolid (MbSolid &solid, MbeCopyMode sameShell, double offset, const MbSNameMaker &names, MbSolid *&result)
 Создать эквидистантное тело.
MbResultType ThinSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbFace > &outFaces, SweptValues &params, const MbSNameMaker &names, bool copyFaceAttrs, MbSolid *&result)
 Создать тонкостенное тело исключением граней.
MbResultType ThinSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbFace > &outFaces, RPArray< MbFace > &offFaces, SArray< double > &offDists, SweptValues &params, const MbSNameMaker &names, bool copyFaceAttrs, MbSolid *&result)
 Создать тонкостенное тело исключением граней.
MbResultType SplitSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &spPlace, MbeSenseValue spType, const RPArray< MbContour > &spContours, bool spSame, RPArray< MbFace > &selFaces, const MbMergingFlags &flags, const MbSNameMaker &names, MbSolid *&result)
 Выполнить разбиение граней оболочки.
MbResultType SplitSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbSpaceItem > &spItems, bool spSame, RPArray< MbFace > &selFaces, const MbMergingFlags &flags, const MbSNameMaker &names, MbSolid *&result)
 Выполнить разбиение граней оболочки.
MbResultType DraftSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &neutralPlace, double angle, const RPArray< MbFace > &faces, MbeFacePropagation fp, bool reverse, const MbSNameMaker &names, MbSolid *&result)
 Уклонить указанные грани тела.
MbResultType UnionResult (MbSolid *solid, MbeCopyMode sameShell, RPArray< MbSolid > &solids, MbeCopyMode sameShells, OperationType oType, bool checkIntersect, bool mergeFaces, const MbSNameMaker &names, bool isArray, MbSolid *&result, RPArray< MbSolid > *notGluedSolids=NULL)
 Выполнить объединение пересекающихся тел.
MbResultType UnionSolid (RPArray< MbSolid > &solids, MbeCopyMode sameShells, bool checkIntersect, const MbSNameMaker &names, bool isArray, MbSolid *&result, RPArray< MbSolid > *notGluedSolids=NULL)
 Cоздать одно тело из присланных тел.
MbResultType UnionSolid (const RPArray< MbSolid > &solids, const MbSNameMaker &names, MbSolid *&result)
 Cоздать одно тело из присланных тел.
size_t DetachParts (MbSolid &solid, RPArray< MbSolid > &parts, bool sort, const MbSNameMaker &names)
 Разделить тело на отдельные части.
size_t CreateParts (const MbSolid &solid, RPArray< MbSolid > &parts, const MbSNameMaker &names)
 Разделить тело на отдельные части.
MbResultType ThinSolid (const MbSurface &surface, bool faceSense, SweptValues &params, const MbSNameMaker &names, SimpleName name, MbSolid *&result)
 Построить оболочку тела по поверхности и толщине.
MbResultType HoleSolid (MbSolid *solid, MbeCopyMode sameShell, const MbPlacement3D &place, const HoleValues &params, const MbSNameMaker &names, MbSolid *&result)
 Cоздать отверстие, карман, фигурный паз в теле.
MbResultType ShellPart (const MbSolid &solid, size_t id, const MbPath &path, const MbSNameMaker &names, MbPartSolidIndices &partIndices, MbSolid *&result)
 Выделить в отдельное тело указанную часть распадающегося на части тела.
MbResultType DuplicationSolid (const MbSolid &solid, const DuplicationValues &params, const MbSNameMaker &names, MbSolid *&result)
 Размножить тело.
MbResultType IngotSolid (RPArray< MbItem > &solids, bool makeCopy, const MbSNameMaker &names, MbSolid *&result)
 Cоздать одно тело слиток из присланных объектов.
MbResultType CreateFastener (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCartPoint3D &point, const FastenersValues &params, const MbSNameMaker &names, RPArray< MbSolid > &results)
 Cоздать крепеж по трехмерной точке. НЕ ИСПОЛЬЗОВАТЬ ВНЕ ТЕСТОВОГО ПРИЛОЖЕНИЯ!!! ФУНКЦИЯ НАХОДИТСЯ В РАЗРАБОТКЕ!!!
MbResultType CreateFasteners (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCurve3D &curve, size_t number, const FastenersValues &params, const MbSNameMaker &names, RPArray< MbSolid > &results)
 Cоздать набор крепежных элементов по трехмерной кривой. НЕ ИСПОЛЬЗОВАТЬ ВНЕ ТЕСТОВОГО ПРИЛОЖЕНИЯ!!! ФУНКЦИЯ НАХОДИТСЯ В РАЗРАБОТКЕ!!!

Подробное описание

Процесс построения тел в геометрическом моделировании похож на процесс изготовления моделируемого объекта. Сначала создаются тела простой формы, а далее выполняется набор действий, позволяющих из тел простой формы получить более сложные тела. При необходимости создаются вспомогательные объекты. Редактировать и создавать подобные тела можно путём изменения параметров с последующим повторением процесса построения тел.
Все функции создания тел содержат в качестве входного параметр MbSNameMaker, обеспечивающий именование граней, рёбер и вершин. Первым параметром конструктора генератора имён MbSNameMaker служит главное имя операции. По главному имени можно определить, в какой функции рождена та или иная грань, ребро, вершина. Главное имя выдаёт метод GetMainName().

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы