C3D Kernel  102057
Классы | Перечисления | Функции
Построения листовых тел
Методы геометрических построений
Граф связей класса Построения листовых тел:

Классы

class  MbJointBendUtils
 Вспомогательные функции для построения комбинированного сгиба (сгиба по эскизу). Подробнее...
class  MbBeadParamCalculator
 Расчётчик зависимого параметра буртика. Подробнее...
class  MbKCalculator
 Расчётчик коэффициента нейтрального слоя. Подробнее...
class  MbDisplacementCalculator
 Расчётчик смещения сгиба. Подробнее...
class  MbJalousieParamCalculator
 Расчётчик параметров подрезанных жалюзи. Подробнее...
class  MbCloseCornerGapHotPointCalc
 Расчётчик расположения хот-точки для зазора замыкания углов. Подробнее...
class  MbRuledShellGapCalc
 Расчётчик расположения хот-точки для зазора замыкания углов. Подробнее...

Перечисления

enum  MbeSegmentationMethod { sm_Quantity, sm_Length, sm_Angle, sm_Height }
 Способ сегментации эскиза. Подробнее...
enum  MbeBendWidthType { bwt_KFactor, bwt_Allowance, bwt_Deduction, bwt_Table }
 Способ задания ширины сгиба. Подробнее...

Функции

MbResultType BendSheetSolidOverSegment (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbFace > &bendingFaces, MbCurve3D &curve, bool unbended, const MbBendOverSegValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Сгиб листового тела по линии.
MbResultType SheetSolidJog (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbFace > &bendingFaces, MbCurve3D &curve, bool unbended, const MbJogValues &jogParams, const MbBendValues &secondBendParams, MbSNameMaker &nameMaker, RPArray< MbFace > &firstBendFaces, RPArray< MbFace > &secondBendFaces, MbSolid *&result)
 Подсечка.
MbResultType BendSheetSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbSheetMetalBend > &bends, const MbFace &fixedFace, const MbCartPoint &fixedPoint, MbSNameMaker &nameMaker, MbSolid *&result)
 Согнуть сгибы листового тела.
MbResultType UnbendSheetSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbSheetMetalBend > &bends, const MbFace &fixedFace, const MbCartPoint &fixedPoint, MbSNameMaker &nameMaker, MbSolid *&result, RPArray< MbContour3D > *ribContours=NULL)
 Разогнуть сгибы листового тела.
MbResultType CreateSheetSolid (const MbPlacement3D &placement, RPArray< MbContour > &contours, bool unbended, const MbSheetMetalValues &params, PArray< MbSNameMaker > *nameMakers, PArray< MbSMBendNames > &resultBends, MbSolid *&result)
 Создать листовое тело.
MbResultType SheetSolidPlate (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &placement, RPArray< MbContour > &contours, const MbSheetMetalValues &params, PArray< MbSNameMaker > *nameMakers, MbSolid *&result)
 Добавление пластины к листовому телу.
MbResultType SheetSolidHole (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &placement, RPArray< MbContour > &contours, const MbSheetMetalValues &params, bool diff, PArray< MbSNameMaker > *nameMakers, MbSolid *&result)
 Вырез отверстия в листовом теле.
MbResultType BendSheetSolidByEdges (MbSolid &solid, const MbeCopyMode sameShell, const RPArray< MbCurveEdge > &edges, const bool unbended, const MbBendByEdgeValues &params, MbSNameMaker &nameMaker, PArray< MbSMBendNames > &resultBends, MbSolid *&result)
 Сгиб на ребре.
MbResultType SheetSolidJointBend (MbSolid &solid, const MbeCopyMode sameShell, const MbPlacement3D &placement, const MbContour &contour, const RPArray< MbCurveEdge > &edges, const bool unbended, const MbJointBendValues &params, MbSNameMaker &nameMaker, PArray< PArray< MbSMBendNames > > &resultBends, MbSolid *&result)
 Комбинированный сгиб листового тела.
MbResultType CloseCorner (MbSolid &solid, MbeCopyMode sameShell, MbCurveEdge *curveEdgePlus, MbCurveEdge *curveEdgeMinus, const MbClosedCornerValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Замыкание угла.
MbResultType Stamp (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const MbContour &contour, const MbStampingValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Штамповка.
MbResultType SphericalStamp (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const MbStampingValues &params, const MbCartPoint &center, MbSNameMaker &nameMaker, MbSolid *&result)
 Сферическая штамповка.
MbResultType CreateBead (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const RPArray< MbContour > &contours, const SArray< MbCartPoint > &centers, const MbBeadValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Буртик.
MbResultType CreateJalousie (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const RPArray< MbLineSegment > &segments, const MbJalousieValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Жалюзи.
MbResultType CreateRuledSolid (MbRuledSolidValues &parameters, const MbSNameMaker &nameMaker, PArray< MbSMBendNames > &resultBends, MbContour *&resultContour, MbSolid *&resultSolid)
 Обечайка по контуру.
MbResultType SheetSolidUnion (MbSolid &solid1, const MbeCopyMode sameShell1, MbSolid &solid2, const MbeCopyMode sameShell2, const MbSNameMaker &names, MbSolid *&result)
 Объединение листовых тел по торцевой грани.
bool CanUnionSheetSolids (const MbSolid &solid1, const MbSolid &solid2)
 Проверяет, что тела листовые и их можно объединить по торцевой грани.
MbResultType RestoreSideEdges (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbFace > &outerFaces, const bool strict, PArray< MbSheetMetalBend > &bends, MbSNameMaker &nameMaker, MbSolid *&result)
 Восстановить боковые рёбра сгибов.
bool SeparateBendsBySubshells (const MbSolid &solid, const RPArray< MbSheetMetalBend > &bends, const MbName &fixedFaceName, PArray< RPArray< MbSheetMetalBend > > &bendsGroups, RPArray< const MbFace > &fixedFaces)
 Разделить сгибы по подоболочкам.
bool CollectBends (const MbFaceShell &faceShell, const RPArray< MbFace > &innerFaces, const RPArray< MbFace > &outerFaces, PArray< MbSheetMetalBend > &result)
 Разбить грани сгибов по парам.
bool IsSuitableForFixed (const MbFace &face)
 Проверить, что грань может быть выбрана в качестве фиксированной при сгибе/разгибе.
void FindCurveFaces (const RPArray< MbFace > &faces, const MbCurve3D &curve, RPArray< MbFace > &result)
 Найти грани, на которых лежит кривая.
MbFaceFindSheetFace (const MbCurveEdge &edge)
 Найти верхнюю/нижнюю грань листового тела, содержащую ребро.
MbFaceFindPairBendFace (const MbFace &face)
 Найти парную грань сгиба.
MbFaceGetPairPlanarFaceByEdge (const MbCurveEdge &curveEdge, const double begDistance, const double endDistance)
 Найти плоскую парную листовую грань по ребру.
MbFaceGetPairPlanarFaceByCurve (const MbFace &sheetFace, const MbCurve3D &curve)
 Найти плоскую парную листовую грань по трёхмерной кривой.
MbFaceGetPairPlanarFaceByContour (const MbFaceShell &shell, const MbFace &sheetFace, const MbPlacement3D &place, const RPArray< const MbCurve > &segments)
 Найти плоскую парную листовую грань по контуру.
MbFaceGetPairPlanarFace (const MbFaceShell *faceShell, const MbFace &sheetFace)
 Найти плоскую парную листовую грань.
double GetDistanceIfSameAndOpposite (const MbFace &face1, const MbFace *face2)
 Рассчитать расстояние между гранями.
void GetSimilarCylindricBends (const MbFaceShell &shell, PArray< MbSheetMetalBend > &bends)
 Найти подобные сгибы.
bool CalculateTangentPoint (const MbFace &face, const MbPlane &plane, MbCartPoint &tangentPoint)
 Рассчитать касательную точку для сгиба/разгиба.
bool CalculateConicAxisLine (const MbFace &face, MbLineSegment &axisLineSegment)
 Рассчитать осевую линию разогнутого конического сгиба.
bool GetParamsForCloseCorner (const RPArray< MbFace > &facesPlus, const RPArray< MbFace > &facesMinus, MbClosedCornerValues &parameters, MbCurveEdge *&edgePlus, MbCurveEdge *&edgeMinus)
 Рассчитать параметры для замыкания угла.
bool GetParamsForCloseCorner (const MbCurveEdge &selectedEdgePlus, const MbCurveEdge &selectedEdgeMinus, MbClosedCornerValues &parameters, MbCurveEdge *&edgePlus, MbCurveEdge *&edgeMinus)
 Рассчитать параметры для замыкания угла.
double CalculateSegmentationParameter (const MbCurve &curve, const MbeSegmentationMethod method, const double param, const MbeSegmentationMethod newMethod)
 Вычислить параметр сегментации кривой.
MbResultType SplitContourIntoSegments (const MbCurve &curve, const size_t segmNumb, MbContour *&resultContour)
 Аппроксимировать кривую (дугу) ломаной.
MbResultType SplitContoursIntoSegments (MbContour &contour1, SArray< double > &breaks1, MbContour &contour2, SArray< double > &breaks2, MbSNameMaker &names, const SArray< size_t > &segmNumbers1, const SArray< size_t > &segmNumbers2, const size_t defSegmNumb, const double gapValue)
 Аппроксимировать участки контуров (дуги) ломаной.
bool FillBendNamesArray (const MbContour &contour1, const MbPlacement3D &placement1, const SArray< double > &breaks1, const MbContour &contour2, const MbPlacement3D &placement2, const SArray< double > &breaks2, const MbSNameMaker &nameMaker, PArray< MbSMBendNames > &bendNames)
 Заполнить массив сгибов.
MbContour3DMakeContour (const MbPlacement3D &placement, const MbContour &contour, const SArray< double > &breaks, MbSNameMaker &names)
 Создать трехмерный контур по двумерному с учётом разбиения.
bool MakeSheetRiContourByTwoSides (const MbCurveEdge &bendEdge, const double bendAngle, const double l1, const double l2, const double phi, const double rad, const bool dir, const double t, MbPlacement3D &placement, MbContour &contour)
 Создать контур ребра жесткости по двум сторонам.
bool MakeSheetRiContourBySideAndAngle (const MbCurveEdge &bendEdge, const double bendAngle, const double l1, const double a, const double phi, const double rad, const bool dir, const double t, MbPlacement3D &placement, MbContour &contour)
 Создать контур ребра жесткости по стороне и углу.
bool MakeSheetRiContourByDepthAndAngle (const MbCurveEdge &bendEdge, const double bendAngle, const double h, const double a, const double phi, const double rad, const bool dir, const double t, MbPlacement3D &placement, MbContour &contour)
 Создать контур ребра жесткости по глубине и углу.
MbResultType SheetRibSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, size_t index, SheetRibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Создание тела с листовым ребром жесткости.
MbResultType BendAnySolid (MbSolid &solid, const MbeCopyMode sameShell, const MbPlane &cutPlane, const SArray< MbAnyBend > &bends, const MbSNameMaker &nameMaker, MbSolid *&result)
 Разрезать тело секущими плоскостями и согнуть получившиеся сегменты согласно заданным параметрам.
MbResultType SimplifyFlatPattern (MbSolid &solid, const MbeCopyMode sameShell, const MbSimplifyFlatPatternValues &params, const MbSNameMaker &nameMaker, MbSolid *&result)
 Упростить развёртку листового тела.
MbCreatorCreateSimplifiedFlatPattern (MbFaceShell &initialShell, const MbeCopyMode sameShell, const MbSimplifyFlatPatternValues &params, const MbSNameMaker &nameMaker, MbResultType &res, MbFaceShell *&shell)
 Упростить развёртку листового тела.

Перечисления

Способ сегментации эскиза.

Элементы перечислений:
sm_Quantity 

По количеству сегментов.

sm_Length 

По длине сегментов.

sm_Angle 

По углу.

sm_Height 

По величине отклонения от хорды.

Способ задания ширины сгиба.

Элементы перечислений:
bwt_KFactor 

Ширина сгиба рассчитывается через коэффициент нейтрального слоя.

bwt_Allowance 

Ширина сгиба задана непосредственно.

bwt_Deduction 

Задано уменьшение сгиба.

bwt_Table 

Ширина сгиба рассчитывается по таблице.


Функции

MbResultType BendSheetSolidOverSegment ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbFace > &  bendingFaces,
MbCurve3D curve,
bool  unbended,
const MbBendOverSegValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Линией может быть отрезок, лежащий на плоских гранях bendingFaces, либо прямая. Грани bendingFaces располагаются на общей для них плоскости.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]bendingFaces- Изгибаемые грани.
[in]curve- Прямолинейная кривая, вдоль которой гнуть.
[in]unbended- Флаг построения элемента в разогнутом состоянии.
[in]params- Параметры листового тела.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SheetSolidJog ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbFace > &  bendingFaces,
MbCurve3D curve,
bool  unbended,
const MbJogValues jogParams,
const MbBendValues secondBendParams,
MbSNameMaker nameMaker,
RPArray< MbFace > &  firstBendFaces,
RPArray< MbFace > &  secondBendFaces,
MbSolid *&  result 
)

Линией может быть отрезок, лежащий на плоских гранях bendingFaces, либо прямая. Грани bendingFaces располагаются на общей для них плоскости. Подсечка выполняется в виде двух смещённых друг относительно друга сгиба по линии. Формируемые при этом листовые грани сгибов возвращаются в массивах:
firstBendFaces - грани сгибов, примыкающие к неподвижной части базовых граней,
secondBendFaces - грани сгибов, поднятых над базовыми гранями.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]bendingFaces- Изгибаемые грани.
[in]curve- Прямолинейная кривая, вдоль которой гнуть.
[in]unbended- Флаг построения элемента в разогнутом состоянии.
[in]jogParams- Параметры подсечки и первого сгиба.
[in]secondBendParams- Параметры второго сгиба.
[in]nameMaker- Именователь.
[out]firstBendFaces- Грани первого сгиба подсечки.
[out]secondBendFaces- Грани второго сгиба подсечки.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType BendSheetSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbSheetMetalBend > &  bends,
const MbFace fixedFace,
const MbCartPoint fixedPoint,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Сгибаются разогнутые сгибы bends относительно неподвижной грани fixedFace. Если fixedFace - это листовая грань, принадлежащая одному из сгибов bends, то сгиб осуществляется так, чтобы неподвижной осталась плоскость, касательная к поверхности, лежащей под fixedFace, в точке fixedPoint.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]bends- Множество сгибов, состоящих из пар граней - внутренней и внешней граней сгиба.
[in]fixedFace- Грань, остающаяся неподвижной.
[in]fixedPoint- Точка в параметрической области поверхности, лежащей под гранью fixedFace, в случае, если она сгибовая.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType UnbendSheetSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbSheetMetalBend > &  bends,
const MbFace fixedFace,
const MbCartPoint fixedPoint,
MbSNameMaker nameMaker,
MbSolid *&  result,
RPArray< MbContour3D > *  ribContours = NULL 
)

Разгибаются сгибы bends относительно неподвижной грани fixedFace. Если fixedFace - это листовая грань, принадлежащая одному из сгибов bends, то разгиб осуществляется так, чтобы неподвижной осталась плоскость, касательная к поверхности, лежащей под fixedFace, в точке fixedPoint.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]bends- Множество сгибов, состоящих из пар граней - внутренней и внешней граней сгиба.
[in]fixedFace- Грань, остающаяся неподвижной.
[in]fixedPoint- Точка в параметрической области грани fixedFace, в случае, если она сгибовая.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
[out]ribContours- Набор контуров содержащих кривые границ ребер жесткости(при их наличии) в разогнутом виде.
Возвращает:
- Код результата операции.
MbResultType CreateSheetSolid ( const MbPlacement3D placement,
RPArray< MbContour > &  contours,
bool  unbended,
const MbSheetMetalValues params,
PArray< MbSNameMaker > *  nameMakers,
PArray< MbSMBendNames > &  resultBends,
MbSolid *&  result 
)

Листовое тело создаётся выдавливанием одного незамкнутого контура или нескольких замкнутых контуров.
В случае замкнутых контуров, один контур должен быть внешним, а остальные внутренними, и выдавливание производится на толщину листового тела.
В случае незамкнутого контура, ему придаётся толщина листового тела в ту или иную в зависимости от параметров сторону, а затем результат выдавливается на заданные расстояния.

Аргументы:
[in]placement- Плейсмент эскиза.
[in]contours- Контуры листового тела.
[in]unbended- Флаг построения элемента в разогнутом состоянии.
[in]params- Параметры листового тела.
[in]nameMakers- Именователи.
[out]resultBends- Формируемые сгибы.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SheetSolidPlate ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D placement,
RPArray< MbContour > &  contours,
const MbSheetMetalValues params,
PArray< MbSNameMaker > *  nameMakers,
MbSolid *&  result 
)

Пластина строится по одному или нескольким замкнутым непересекающимся контурам, Причём среди них может быть несколько внешних.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]placement- Локальная система координат эскиза.
[in]contours- Замкнутый контур пластины.
[in]params- Параметры листового тела.
[in]nameMakers- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SheetSolidHole ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D placement,
RPArray< MbContour > &  contours,
const MbSheetMetalValues params,
bool  diff,
PArray< MbSNameMaker > *  nameMakers,
MbSolid *&  result 
)

Вырез строится по замкнутому контуру.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]placement- Плейсмент эскиза.
[in]contours- Замкнутый контур выреза/пересечения.
[in]params- Параметры листового тела.
[in]diff- Отверстие (diff = true), пересечение (diff = false).
[in]nameMakers- Именователи.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType BendSheetSolidByEdges ( MbSolid solid,
const MbeCopyMode  sameShell,
const RPArray< MbCurveEdge > &  edges,
const bool  unbended,
const MbBendByEdgeValues params,
MbSNameMaker nameMaker,
PArray< MbSMBendNames > &  resultBends,
MbSolid *&  result 
)

Сгиб строится на одном или нескольких рёбрах, принадлежащих плоской листовой грани, согласно заданным параметрам.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]edges- Рёбра сгибов.
[in]unbended- Флаг построения элемента в разогнутом состоянии.
[in]params- Параметры сгибов.
[in]nameMaker- Именователь.
[in,out]resultBends- Параметры формируемых сгибов и имена созданных граней.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SheetSolidJointBend ( MbSolid solid,
const MbeCopyMode  sameShell,
const MbPlacement3D placement,
const MbContour contour,
const RPArray< MbCurveEdge > &  edges,
const bool  unbended,
const MbJointBendValues params,
MbSNameMaker nameMaker,
PArray< PArray< MbSMBendNames > > &  resultBends,
MbSolid *&  result 
)

Комбинированный сгиб листового тела или другими словами сгиб по эскизу может строиться на одном или нескольких соседних прямолинейных рёбрах одной листовой грани или нескольких, расположенных через сгиб. Эскиз, состоящий из отрезков и дуг должен лежать в плоскости, перпендикулярной одному из рёбер построения и одним концом располагаться на его проекции на эту плоскость. Данный эскиз применяется к каждому ребру, участвующему в построении. По нему и его копиям для всех рёбер строятся листовые тела со скруглениями негладких стыковок прямолинейных сегментов контура и гладкой стыковкой к базовой листовой грани. Построенные тела объединяются с базовым (исходным) телом, и затем осуществляются замыкания углов согласно заданным параметрам. После выполнения операции в массиве resultBends записаны все созданные ей сгибы.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]placement- Плейсмент контура сгиба.
[in]contour- Контур сгиба.
[in]edges- Рёбра сгиба.
[in]unbended- Флаг построения элемента в разогнутом состоянии.
[in]params- Параметры сгиба.
[in]nameMaker- Именователь.
[out]resultBends- Формируемые сгибы.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType CloseCorner ( MbSolid solid,
MbeCopyMode  sameShell,
MbCurveEdge curveEdgePlus,
MbCurveEdge curveEdgeMinus,
const MbClosedCornerValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Если на соседних рёбрах листовой грани построены два сгиба, то между ними образуется угол, который можно затянуть материалом, расширив соответствующие стороны этих сгибов, что и осуществляет данная операция. В параметрах можно выставить величину зазора и виды замыкания отдельно для сгибов и отдельно для их плоских продолжений.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]curveEdgePlus- Ребро сгиба, условно принятое за положительное.
[in]curveEdgeMinus- Ребро сгиба, условно принятое за отрицательное.
[in]params- Параметры замыкания.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType Stamp ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const MbContour contour,
const MbStampingValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Штамповка строится по одному замкнутому или незамкнутому контуру, лежащему на плоской листовой грани. Замкнутый эскиз может лежать на листовой грани полностью или частично, а незамкнутый должен начинаться и заканчиваться за пределами грани. Штамповка подрезается границами листовой грани, на которой располагается эскиз.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]face- Грань штамповки.
[in]placement- Локальная система координат контура.
[in]contour- Контур штамповки.
[in]params- Параметры штамповки.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SphericalStamp ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const MbStampingValues params,
const MbCartPoint center,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Штамповка строится по параметрам и центру, лежащему на плоской листовой грани. Штамповка подрезается границами листовой грани, на которой располагается центр.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]face- Грань штамповки.
[in]placement- Локальная система координат центра штамповки.
[in]params- Параметры штамповки.
[in]center- Центр сферической штамповки.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType CreateBead ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const RPArray< MbContour > &  contours,
const SArray< MbCartPoint > &  centers,
const MbBeadValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Буртик строится по одному или нескольким замкнутым или незамкнутым эскизам, лежащим на плоской листовой грани, а также по точкам. Если эскиз выходит за пределы этой грани, то буртик подрезается её границами. Буртик по незамкнутому эскизу на в начале и конце имеет законцовки, вид которых задаётся в параметрах операции. Буртик по точке имеет вид сферической штамповки.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]face- Грань буртика.
[in]placement- Локальная система координат контуров.
[in]contours- Контуры буртика.
[in]centers- Центры сферических штамповок.
[in]params- Параметры буртика.
[in]nameMaker- Имена контуров.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType CreateJalousie ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const RPArray< MbLineSegment > &  segments,
const MbJalousieValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Жалюзи строятся на одном или нескольких отрезках, лежащих на плоской листовой грани. Жалюзи не могут выходить за пределы грани и пересекаться сами с собой. Жалюзи бывают двух видов: вытяжка и подрезка. Вытяжка имеет вид половины, разрезанного вдоль прямолинейного буртика, а подрезка имеет вид отогнутой пластины.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]face- Грань жалюзи.
[in]placement- Локальная система координат отрезка.
[in]segments- Отрезки жалюзи.
[in]params- Параметры жалюзи.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType CreateRuledSolid ( MbRuledSolidValues parameters,
const MbSNameMaker nameMaker,
PArray< MbSMBendNames > &  resultBends,
MbContour *&  resultContour,
MbSolid *&  resultSolid 
)

Обечайка строится по одному плоскому контуру выдавливанием с уклоном до, в общем случае, линейчатой поверхности и дальнейшим приданием её толщины.

Аргументы:
[in]parameters- Параметры обечайки.
[in]nameMaker- Именователь с главным именем операции.
[out]resultBends- Формируемые сгибы.
[out]resultContour- Contour, скруглённый по параметрам из resultBends.
[out]resultSolid- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SheetSolidUnion ( MbSolid solid1,
const MbeCopyMode  sameShell1,
MbSolid solid2,
const MbeCopyMode  sameShell2,
const MbSNameMaker names,
MbSolid *&  result 
)

Объединяет два листовых тела, если они касаются друг друга одной единственной боковинкой.

Аргументы:
[in]solid1- Первое листовое тело.
[in]sameShell1- Способ использования первого листового тела.
[in]solid2- Второе листовое тело.
[in]sameShell2- Способ использования второго листового тела.
[in]names- Именователь с версией операции.
[out]result- Объединённое листовое тело.
Возвращает:
- Код результата операции.
bool CanUnionSheetSolids ( const MbSolid solid1,
const MbSolid solid2 
)

Функция завершается успешно, если находит единственную совпадающую в пространстве пару боковинок первого и второго тела.

Аргументы:
[in]solid1- Первое листовое тело.
[in]solid2- Второе листовое тело.
Возвращает:
- true, если листовые тела можно объединить, false - в противном случае.
MbResultType RestoreSideEdges ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbFace > &  outerFaces,
const bool  strict,
PArray< MbSheetMetalBend > &  bends,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Операция служит для восстановления боковых границ сгибов после построений, которые могли их удалить, таких как вырез или скругление.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]outerFaces- Внешние грани сгибов, у которых восстанавливаем боковые рёбра.
[in]strict- При false - восстанавливаем боковые рёбра только там, где возможно без сообщений об ошибке.
[out]bends- Сгибы, у которых восстановили боковые рёбра.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
bool SeparateBendsBySubshells ( const MbSolid solid,
const RPArray< MbSheetMetalBend > &  bends,
const MbName fixedFaceName,
PArray< RPArray< MbSheetMetalBend > > &  bendsGroups,
RPArray< const MbFace > &  fixedFaces 
)

Сгибы из bends группируются по принадлежности разным подоболочкам листового тела solid. В результате работы функции формируется взаимно однозначное соответствие групп сгибов и соответствующих этим группам неподвижных граней.

Аргументы:
[in]solid- Листовое тело.
[in]bends- Сгибы.
[in]fixedFaceName- Имя неподвижной грани.
[out]bendsGroups- Сгибы, разделённые на группы по принадлежности разным подоболочкам.
[out]fixedFaces- Соответствующие этим подоболочкам неподвижные грани.
Возвращает:
true - в случае успеха операции, false - в противном случае.
bool CollectBends ( const MbFaceShell faceShell,
const RPArray< MbFace > &  innerFaces,
const RPArray< MbFace > &  outerFaces,
PArray< MbSheetMetalBend > &  result 
)

Ищутся составляющие сгиб внутренняя и внешняя грань среди неупорядоченного набора внешних и внутренних граней сгибов, по ним формируется сгиб, который добавляется в массив bends.

Аргументы:
[in]faceShell- Набор граней листового тела.
[in]innerFaces- Внутренние грани сгибов.
[in]outerFaces- Внешние грани сгибов.
[out]result- Найденные пары граней, составляющие сгибы.
Возвращает:
true - в случае успеха операции, false - в противном случае.
bool IsSuitableForFixed ( const MbFace face)

Проверяется, что указанная грань при сгибе/разгибе всех сгибов не изменится.

Аргументы:
[in]-Проверяемая грань.
Возвращает:
true - грань может быть выбрана в качестве фиксированной, false - в противном случае.
void FindCurveFaces ( const RPArray< MbFace > &  faces,
const MbCurve3D curve,
RPArray< MbFace > &  result 
)

Кривая curve должна быть прямолинейной.

Аргументы:
[in]faces- Набор граней для поиска.
[in]curve- Кривая, лежащая на некоторых из них.
[out]result- Грани, на которых лежит кривая curve.
MbFace* FindSheetFace ( const MbCurveEdge edge)

Поиск среди двух стыкующихся в ребре edge граней верхней или нижней грани листового тела.

Аргументы:
[in]edge- Неориентированное ребро листовой грани.
Возвращает:
Найденную листовую грань.
MbFace* FindPairBendFace ( const MbFace face)

Поиск по листовой грани сгиба противоположной ей листовой грани.

Аргументы:
[in]face- Листовая грань сгиба.
Возвращает:
Искомую парную ей грань.
MbFace* GetPairPlanarFaceByEdge ( const MbCurveEdge curveEdge,
const double  begDistance,
const double  endDistance 
)

Функция поиска парной листовой грани для операции сгиб на ребре. Применяется для многотолщинных листовых тел в условиях, когда выбранной листовой грани соответствует несколько парных ей граней, находящихся на разном расстоянии от неё. Положительные расстояния begDistance и endDistance означают отступ наружу от ребра, а отрицательные - внутрь.

Аргументы:
[in]curveEdge- Ребро, по которому искать.
[in]begDistance- Расстояние от начала ребра.
[in]endDistance- Расстояние от конца ребра.
Возвращает:
Искомую грань.
MbFace* GetPairPlanarFaceByCurve ( const MbFace sheetFace,
const MbCurve3D curve 
)

Функция поиска парной листовой грани для операции сгиб по линии. Применяется для многотолщинных листовых тел в условиях, когда выбранной листовой грани соответствует несколько парных ей граней, находящихся на разном расстоянии от неё.

Аргументы:
[in]sheetFace- Плоская листовая грань.
[in]curve- Лежащая на ней прямолинейная кривая.
Возвращает:
Искомую грань.
MbFace* GetPairPlanarFaceByContour ( const MbFaceShell shell,
const MbFace sheetFace,
const MbPlacement3D place,
const RPArray< const MbCurve > &  segments 
)

Функция поиска парной листовой грани для операций базирующихся на контурах. Применяется для многотолщинных листовых тел в условиях, когда выбранной листовой грани соответствует несколько парных ей граней, находящихся на разном расстоянии от неё.

Аргументы:
[in]shell- Оболочка листового тела.
[in]sheetFace- Базовая листовая грань.
[in]place- Локальная система координат, лежащая на грани sheetFace.
[in]segments- Кривые, лежащие в плоскости XY локальной системы координат placement.
Возвращает:
Искомую грань.
MbFace* GetPairPlanarFace ( const MbFaceShell faceShell,
const MbFace sheetFace 
)

Поиск осуществляется сначала через рёбра внешнего цикла грани sheetFace, в случае неудачи - через вершины этого цикла, и если грань не найдена, то перебором по всем связным граням или граням из набора faceShell. В последнем случае предпочтение отдаётся более близко расположенным граням.

Аргументы:
[in]faceShell- Набор граней для поиска.
[in]sheetFace- Исходная плоская грань.
Возвращает:
- Искомую плоскую грань.
double GetDistanceIfSameAndOpposite ( const MbFace face1,
const MbFace face2 
)

Определяет расстояние между парой подобных граней. Подобными считаются пары плоских, цилиндрических и конических граней, у которых нормали коллинеарны и противоположно направлены. Расстояние считается положительным, если грани располагаются со стороны, противоположной направлению нормали, и отрицательным в противном случае. В случае ошибки возвращается 0.0.

Аргументы:
[in]face1- Первая грань.
[in]face2- Вторая грань.
Возвращает:
- Значение расстояния между гранями.
void GetSimilarCylindricBends ( const MbFaceShell shell,
PArray< MbSheetMetalBend > &  bends 
)

В листовом теле shell ищутся согнутые цилиндрические/конические сгибы, которые надо добавить к сгибам из bends, чтобы они могли разогнуться, то есть сгибы разгибаемые только совместно.

Аргументы:
[in]shell- Набор граней поиска.
[in,out]bends- Множество подобных сгибов.
bool CalculateTangentPoint ( const MbFace face,
const MbPlane plane,
MbCartPoint tangentPoint 
)

В точке tangentPoint либо координаты точки касания внутри грани, то есть 0.0<=x<=1.0 и 0.0<=y<=1.0, или за её пределами. В первом случае точка касания пересчитывается в координаты лежащей под гранью поверхности, во втором находится одна из точек касания поверхности, лежащей под гранью face и плоскости plane.

Аргументы:
[in]face- Грань, содержащая точку касания.
[in]plane- Касательная плоскость.
[in,out]tangentPoint- Точка касания.
Возвращает:
true - в случае успеха операции, false - в противном случае.
bool CalculateConicAxisLine ( const MbFace face,
MbLineSegment axisLineSegment 
)

Возвращает осевую линию в координатах параметрической области плоскости, лежащей под гранью face.

Аргументы:
[in]face- Листовая грань разогнутого конического сгиба.
[out]axisLineSegment- Искомая осевая линия.
Возвращает:
true - в случае успеха операции, false - в противном случае.
bool GetParamsForCloseCorner ( const RPArray< MbFace > &  facesPlus,
const RPArray< MbFace > &  facesMinus,
MbClosedCornerValues parameters,
MbCurveEdge *&  edgePlus,
MbCurveEdge *&  edgeMinus 
)

Находит общее ребро угла или пару рёбер для замыканий через сгиб. Рассчитывает параметры замыкания для данных пар граней.

Аргументы:
[in]facesPlus- Выбранные торцевые грани стороны угла, условно принятой за положительную.
[in]facesMinus- Выбранные торцевые грани стороны угла, условно принятой за отрицательную.
[out]parameters- Параметры замыкания.
[out]edgePlus- Ребро сгиба, условно принятое за положительное.
[out]edgeMinus- Ребро сгиба, условно принятое за отрицательное.
Возвращает:
true - в случае успеха операции, false - в противном случае.
bool GetParamsForCloseCorner ( const MbCurveEdge selectedEdgePlus,
const MbCurveEdge selectedEdgeMinus,
MbClosedCornerValues parameters,
MbCurveEdge *&  edgePlus,
MbCurveEdge *&  edgeMinus 
)

Находит общее ребро угла или пару рёбер для замыканий через сгиб.

Аргументы:
[in]selectedEdgePlus- Выбранное ребро стороны угла, условно принятой за положительную.
[in]selectedEdgeMinus- Выбранное ребро стороны угла, условно принятой за отрицательную.
[out]parameters- Параметры замыкания.
[out]edgePlus- Ребро сгиба, условно принятое за положительное.
[out]edgeMinus- Ребро сгиба, условно принятое за отрицательное.
Возвращает:
true - в случае успеха операции, false - в противном случае.
double CalculateSegmentationParameter ( const MbCurve curve,
const MbeSegmentationMethod  method,
const double  param,
const MbeSegmentationMethod  newMethod 
)

Вычислить параметр сегментации для заданного метода. При изменении метода результат сегментации не меняется.

Аргументы:
[in]curve- Кривая (дуга).
[in]method- Метод сегментации.
[in]param- Параметр сегментации.
[in]newMethod- Метод сегментации, для которого нужно вычислить значение параметра.
Возвращает:
newParam - Вычисленный параметр.
MbResultType SplitContourIntoSegments ( const MbCurve curve,
const size_t  segmNumb,
MbContour *&  resultContour 
)

Аппроксимировать кривую (дугу) ломаной.

Аргументы:
[in]contour- Кривая (дуга).
[in]segmNumber- Количество сегментов аппроксимации.
[out]resultContour- Аппроксимированный отрезками контур.
Возвращает:
- Код результата операции.
MbResultType SplitContoursIntoSegments ( MbContour contour1,
SArray< double > &  breaks1,
MbContour contour2,
SArray< double > &  breaks2,
MbSNameMaker names,
const SArray< size_t > &  segmNumbers1,
const SArray< size_t > &  segmNumbers2,
const size_t  defSegmNumb,
const double  gapValue 
)

Аппроксимировать участки контуров (дуги) ломаной.

Аргументы:
[in]contour1- Первый контур.
[in]breaks1- Массив параметров разбиения первого контура.
[in]contour2- Второй контур.
[in]breaks2- Массив параметров разбиения второго контура.
[in]segmNumber- Количество сегментов аппроксимации.
Возвращает:
- Код результата операции.
bool FillBendNamesArray ( const MbContour contour1,
const MbPlacement3D placement1,
const SArray< double > &  breaks1,
const MbContour contour2,
const MbPlacement3D placement2,
const SArray< double > &  breaks2,
const MbSNameMaker nameMaker,
PArray< MbSMBendNames > &  bendNames 
)

Заполнить массив сгибов.

Аргументы:
[in]contour1- Первый контур.
[in]placement1- ЛСК первого контура.
[in]breaks1- Массив параметров разбиения первого контура.
[in]contour2- Второй контур.
[in]placement2- ЛСК второго контура.
[in]breaks2- Массив параметров разбиения второго контура.
[in]nameMaker- Массив имён граней линейчатой поверхности.
[out]bendNames- Массив параметров сгибов.
Возвращает:
true - в случае успеха операции, false - в противном случае.
MbContour3D* MakeContour ( const MbPlacement3D placement,
const MbContour contour,
const SArray< double > &  breaks,
MbSNameMaker names 
)

Разбивает присланный контур точками, заданными параметрами breaks, и по нему создаёт трёхмерный контур, лежащий на плоскости, заданной ЛСК placement.

Аргументы:
[in]placement- ЛСК контура.
[in]contour- Контур.
[in]breaks- Массив параметров разбиения контура.
[in,out]names- Массив имён сегментов контура.
Возвращает:
Разбитый с помощью массива breaks на сегменты трёхмерный контур.
bool MakeSheetRiContourByTwoSides ( const MbCurveEdge bendEdge,
const double  bendAngle,
const double  l1,
const double  l2,
const double  phi,
const double  rad,
const bool  dir,
const double  t,
MbPlacement3D placement,
MbContour contour 
)

Создать двумерный контур ребра жесткости и его ЛСК по двум сторонам.
Начало координат ЛСК лежит на прямой пересечения плоских внутренних сторон сгиба.

Аргументы:
[in]bendEdge- Ребро на внутренней грани сгиба.
[in]bendAngle- Угол сгиба листового тела.
[in]l1- Длина отступа вдоль первой стороны угла профиля.
[in]l2- Длина отступа вдоль второй стороны угла профиля.
[in]phi- Угол прогиба профиля.
[in]rad- Радиус скругления при прогибе профиля.
[in]dir- Направление выбора первой стороны угла профиля.
[in]t- Параметр точки на ребре сгиба.
[out]placement- ЛСК контура.
[out]contour- Контур листового ребра усиления.
Возвращает:
True - в случае успеха операции, false - в противном случае.
bool MakeSheetRiContourBySideAndAngle ( const MbCurveEdge bendEdge,
const double  bendAngle,
const double  l1,
const double  a,
const double  phi,
const double  rad,
const bool  dir,
const double  t,
MbPlacement3D placement,
MbContour contour 
)

Создать двумерный контур ребра жесткости и его ЛСК по стороне и углу наклона.
Начало координат ЛСК лежит на прямой пересечения плоских внутренних сторон сгиба.

Аргументы:
[in]bendEdge- Ребро на внутренней грани сгиба.
[in]bendAngle- Угол сгиба листового тела.
[in]l1- Длина отступа вдоль первой стороны угла профиля.
[in]a- Угол наклона профиля.
[in]phi- Угол прогиба профиля.
[in]rad- Радиус скругления при прогибе профиля.
[in]dir- Направление выбора первой стороны угла профиля.
[in]t- Параметр точки на ребре сгиба.
[out]placement- ЛСК контура.
[out]contour- Контур листового ребра усиления.
Возвращает:
True - в случае успеха операции, false - в противном случае.
bool MakeSheetRiContourByDepthAndAngle ( const MbCurveEdge bendEdge,
const double  bendAngle,
const double  h,
const double  a,
const double  phi,
const double  rad,
const bool  dir,
const double  t,
MbPlacement3D placement,
MbContour contour 
)

Создать двумерный контур ребра жесткости и его ЛСК по глубине и углу наклона.
Начало координат ЛСК лежит на прямой пересечения плоских внутренних сторон сгиба.

Аргументы:
[in]bendEdge- Ребро на внутренней грани сгиба.
[in]bendAngle- Угол сгиба листового тела.
[in]h- Глубина профиля ребра.
[in]a- Угол наклона профиля.
[in]phi- Угол прогиба профиля.
[in]rad- Радиус скругления при прогибе профиля.
[in]dir- Направление выбора первой стороны угла профиля.
[in]t- Параметр точки на ребре сгиба.
[out]placement- ЛСК контура.
[out]contour- Контур листового ребра усиления.
Возвращает:
True - в случае успеха операции, false - в противном случае.
MbResultType SheetRibSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D place,
const MbContour contour,
size_t  index,
SheetRibValues pars,
const MbSNameMaker names,
MbSolid *&  result 
)

Создать тело с листовым ребром жёсткости.
По заданному контуру функция строит ребро жёсткости и объединяет его с исходным телом. Сегмент контура с указанным номером устанавливает вектор уклона.

Аргументы:
[in]solid- Исходное листовое тело.
[in]sameShell- Режим копирования входного тела.
[in]place- Система координат образующего контура.
[in]contour- Формообразующий контур на плоскости XY системы координат place.
[in]index- Номер сегмента в контуре.
[in]pars- Параметры листового ребра жёсткости.
[in]names- Именователь.
[out]result- Построенное тело.
Возвращает:
Возвращает код результата операции.
MbResultType BendAnySolid ( MbSolid solid,
const MbeCopyMode  sameShell,
const MbPlane cutPlane,
const SArray< MbAnyBend > &  bends,
const MbSNameMaker nameMaker,
MbSolid *&  result 
)


Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]bends- Множество сгибов, состоящих из секущей плоскости и параметров сгиба.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbResultType SimplifyFlatPattern ( MbSolid solid,
const MbeCopyMode  sameShell,
const MbSimplifyFlatPatternValues params,
const MbSNameMaker nameMaker,
MbSolid *&  result 
)

Упростить развёртку листового тела.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]params- Параметры операции.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
MbCreator* CreateSimplifiedFlatPattern ( MbFaceShell initialShell,
const MbeCopyMode  sameShell,
const MbSimplifyFlatPatternValues params,
const MbSNameMaker nameMaker,
MbResultType res,
MbFaceShell *&  shell 
)

Упростить развёртку листового тела.

Аргументы:
[in]solid- Исходное тело.
[in]sameShell- Флаг удаления оболочки исходного тела.
[in]params- Параметры операции.
[in]nameMaker- Именователь.
[out]result- Результирующее тело.
Возвращает:
- Код результата операции.
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы