C3D Kernel  104598
Classes | Enumerations | Functions
Sheet Metal Modeling
Geometric Construction Methods
Collaboration diagram for Sheet Metal Modeling:

Classes

class  MbJointBendUtils
 Auxiliary functions for a composite bend (a bend from a sketch). More...
class  MbBeadParamCalculator
 The calculator of the dependent parameter of a bead. More...
class  MbKCalculator
 Calculator of the neutral layer coefficient. More...
class  MbDisplacementCalculator
 The bend displacement calculator. More...
class  MbJalousieParamCalculator
 The calculator of trimmed jalousie parameters. More...
class  MbCloseCornerGapHotPointCalc
 Calculator of hot point location for the gap of corner closure. More...
class  MbRuledShellGapCalc
 Calculator of hot point location for the gap of corner closure. More...
class  MbSheetRibHotPointCalculator
 Calculator of hot point location for the sheet rib. More...

Enumerations

enum  MbeSegmentationMethod { sm_Quantity, sm_Length, sm_Angle, sm_Height }
 The method of contour segmentation. More...
enum  MbeBendWidthType { bwt_KFactor, bwt_Allowance, bwt_Deduction, bwt_Table }
 The method of bend width definition. More...

Functions

MbResultType BendSheetSolidOverSegment (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbFace > &bendingFaces, MbCurve3D &curve, bool unbended, const MbBendOverSegValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 The bend of a sheet solid along a line.
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)
 A jog.
MbResultType BendSheetSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbSheetMetalBend > &bends, const MbFace &fixedFace, const MbCartPoint &fixedPoint, MbSNameMaker &nameMaker, MbSolid *&result)
 Rebend the sheet solid bends.
MbResultType UnbendSheetSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbSheetMetalBend > &bends, const MbFace &fixedFace, const MbCartPoint &fixedPoint, MbSNameMaker &nameMaker, MbSolid *&result, RPArray< MbContour3D > *ribContours=NULL)
 Unbend the bends of a sheet solid.
MbResultType CreateSheetSolid (const MbPlacement3D &placement, RPArray< MbContour > &contours, bool unbended, const MbSheetMetalValues &params, RPArray< MbSNameMaker > *nameMakers, RPArray< MbSMBendNames > &resultBends, MbSolid *&result)
 Create a sheet solid.
MbResultType SheetSolidPlate (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &placement, RPArray< MbContour > &contours, const MbSheetMetalValues &params, RPArray< MbSNameMaker > *nameMakers, MbSolid *&result)
 Addition of a plate to the sheet solid.
MbResultType SheetSolidHole (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &placement, RPArray< MbContour > &contours, const MbSheetMetalValues &params, bool diff, RPArray< MbSNameMaker > *nameMakers, MbSolid *&result)
 Create a hole in a sheet solid.
MbResultType BendSheetSolidByEdges (MbSolid &solid, const MbeCopyMode sameShell, const RPArray< MbCurveEdge > &edges, const bool unbended, const MbBendByEdgeValues &params, MbSNameMaker &nameMaker, RPArray< MbSMBendNames > &resultBends, MbSolid *&result)
 A bend on an edge.
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, RPArray< RPArray< MbSMBendNames > > &resultBends, MbSolid *&result)
 A composite bend of a sheet solid.
MbResultType CloseCorner (MbSolid &solid, MbeCopyMode sameShell, MbCurveEdge *curveEdgePlus, MbCurveEdge *curveEdgeMinus, const MbClosedCornerValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 A corner enclosure.
MbResultType Stamp (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const MbContour &contour, const MbStampingValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Stamping.
MbResultType SphericalStamp (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const MbStampingValues &params, const MbCartPoint &center, MbSNameMaker &nameMaker, MbSolid *&result)
 Spherical stamping.
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)
 A bead.
MbResultType CreateJalousie (MbSolid &solid, MbeCopyMode sameShell, const MbFace &face, const MbPlacement3D &placement, const RPArray< MbLineSegment > &segments, const MbJalousieValues &params, MbSNameMaker &nameMaker, MbSolid *&result)
 Jalousie.
MbResultType CreateRuledSolid (MbRuledSolidValues &parameters, const MbSNameMaker &nameMaker, RPArray< MbSMBendNames > &resultBends, MbContour *&resultContour, MbSolid *&resultSolid)
 A ruled shell from a contour.
MbResultType SheetSolidUnion (MbSolid &solid1, const MbeCopyMode sameShell1, MbSolid &solid2, const MbeCopyMode sameShell2, const MbSNameMaker &names, MbSolid *&result)
 A union of sheet solids by a side face.
bool CanUnionSheetSolids (const MbSolid &solid1, const MbSolid &solid2)
 Checks that solids are sheet and they can be connected by a side face.
MbResultType RestoreSideEdges (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbFace > &outerFaces, const bool strict, RPArray< MbSheetMetalBend > &bends, MbSNameMaker &nameMaker, MbSolid *&result)
 Restore the side edges of the bends.
bool SeparateBendsBySubshells (const MbSolid &solid, const RPArray< MbSheetMetalBend > &bends, const MbName &fixedFaceName, RPArray< RPArray< MbSheetMetalBend > > &bendsGroups, RPArray< const MbFace > &fixedFaces)
 Disjoint the bends by the common subshells.
bool CollectBends (const MbFaceShell &faceShell, const RPArray< MbFace > &innerFaces, const RPArray< MbFace > &outerFaces, RPArray< MbSheetMetalBend > &result)
 Collect the pairs of faces of the bends.
bool IsSuitableForFixed (const MbFace &face)
 Determine whether a face can be chosen as a fixed face for bending/unbending.
void FindCurveFaces (const RPArray< MbFace > &faces, const MbCurve3D &curve, RPArray< MbFace > &result)
 Find the faces containing the specified curve.
MbFaceFindSheetFace (const MbCurveEdge &edge)
 Find the upper/lower face of a sheet solid that contains the specified edge.
MbFaceFindPairBendFace (const MbFace &face)
 Find the pair face of a bend.
MbFaceGetPairPlanarFaceByEdge (const MbCurveEdge &curveEdge, const double begDistance, const double endDistance)
 Find a planar pair sheet face given en edge.
MbFaceGetPairPlanarFaceByCurve (const MbFace &sheetFace, const MbCurve3D &curve)
 Find a planar pair sheet face given a three-dimensional curve.
MbFaceGetPairPlanarFaceByContour (const MbFaceShell &shell, const MbFace &sheetFace, const MbPlacement3D &place, const RPArray< const MbCurve > &segments)
 Find a planar pair sheet face given a contour.
MbFaceGetPairPlanarFace (const MbFaceShell *faceShell, const MbFace &sheetFace)
 Find the planar pair sheet face.
double GetDistanceIfSameAndOpposite (const MbFace &face1, const MbFace *face2)
 Compute the distance between faces.
void GetSimilarCylindricBends (const MbFaceShell &shell, RPArray< MbSheetMetalBend > &bends)
 Find the similar bends.
bool CalculateTangentPoint (const MbFace &face, const MbPlane &plane, MbCartPoint &tangentPoint)
 Compute a tangent point for bend/unbend.
bool CalculateConicAxisLine (const MbFace &face, MbLineSegment &axisLineSegment)
 Calculate the centerline of an unbended conic bend.
bool BuildBends3DAxisLines (const MbSolid &solid, RPArray< MbLineSegment3D > &axisLineSegments)
 Calculate the centerline of an unbent bend.
bool GetParamsForCloseCorner (const RPArray< MbFace > &facesPlus, const RPArray< MbFace > &facesMinus, MbClosedCornerValues &parameters, MbCurveEdge *&edgePlus, MbCurveEdge *&edgeMinus)
 Calculate the parameters for the corner closure.
bool GetParamsForCloseCorner (const MbCurveEdge &selectedEdgePlus, const MbCurveEdge &selectedEdgeMinus, MbClosedCornerValues &parameters, MbCurveEdge *&edgePlus, MbCurveEdge *&edgeMinus)
 Calculate the parameters for the corner closure.
double CalculateSegmentationParameter (const MbCurve &curve, const MbeSegmentationMethod method, const double param, const MbeSegmentationMethod newMethod)
 Calculate parameter of segmentation.
MbResultType SplitContourIntoSegments (const MbCurve &curve, const size_t segmNumb, MbContour *&resultContour)
 Split a curve (an arc) into segments.
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)
 Split a part of a contours (an arc) into segments.
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, RPArray< MbSMBendNames > &bendNames)
 Fill the array of MbSMBendNames.
MbContour3DMakeContour (const MbPlacement3D &placement, const MbContour &contour, const SArray< double > &breaks, MbSNameMaker &names)
 To create 3D contour by 2D contour with splitting.
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)
 Create the contour of rib by side distances.
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)
 Create the contour of rib by distance and slope angle.
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)
 Create the contour of rib by depth and slope angle.
MbResultType SheetRibSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, size_t index, SheetRibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Create a sheet solid with rib.
MbResultType BendAnySolid (MbSolid &solid, const MbeCopyMode sameShell, const MbPlane &cutPlane, const SArray< MbAnyBend > &bends, const MbSNameMaker &nameMaker, MbSolid *&result)
 Cut the solid with the cutting planes and bend the resulting parts according to given parameters.
MbResultType SimplifyFlatPattern (MbSolid &solid, const MbeCopyMode sameShell, const MbSimplifyFlatPatternValues &params, const MbSNameMaker &nameMaker, MbSolid *&result)
 Simplify flattened sheet solid.
MbCreatorCreateSimplifiedFlatPattern (MbFaceShell &initialShell, const MbeCopyMode sameShell, const MbSimplifyFlatPatternValues &params, const MbSNameMaker &nameMaker, MbResultType &res, MbFaceShell *&shell)
 Simplify flattened sheet solid.

Enumeration Type Documentation

The method of contour segmentation.

Enumerator:
sm_Quantity 

By quantity of segments.

sm_Length 

By length of segments.

sm_Angle 

By angle.

sm_Height 

By the deviation from the chord.

The method of bend width definition.

Enumerator:
bwt_KFactor 

The bending width is computed using neutral layer coefficient.

bwt_Allowance 

The bend width is defined explicitly.

bwt_Deduction 

The bend tapering is defined.

bwt_Table 

The bend width is computed from a table.


Function Documentation

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

The line is a line segment on the planar faces bendingFaces or a line. Faces bendingFaces lies on the common plane.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]bendingFaces- The faces to bend.
[in]curve- A straight line along which to bend.
[in]unbended- Whether to construct the element unbended.
[in]params- A sheet solid parameters.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
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 
)

The line is a line segment on the planar faces bendingFaces or a line. Faces bendingFaces lies on the common plane. A jog is performed as two bends by a line shifted relative to each other. The sheet faces of bends generated during this operation are returned in the arrays:
firstBendFaces - the bend faces adjacent to the fixed part of the base faces,
secondBendFaces - the bend faces raised above the base faces.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]bendingFaces- The faces to bend.
[in]curve- A straight line along which to bend.
[in]unbended- Whether to construct the element unbended.
[in]jogParams- The parameters of a jog and the first bend.
[in]secondBendParams- The second bend parameters.
[in]nameMaker- An object for naming the new objects.
[out]firstBendFaces- The faces of the first bend of the jog.
[out]secondBendFaces- The faces of the second bend of the jog.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType BendSheetSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbSheetMetalBend > &  bends,
const MbFace fixedFace,
const MbCartPoint fixedPoint,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

The unbended bends 'bends' are bended relative to the fixed face 'fixedFace'. If 'fixedFace' is a sheet face that belongs to one of bends 'bends', then bending is performed such that the plane tangent to the underlying surface of 'fixedFace' at point 'fixedPoint' remains fixed.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]bends- An array of bends which consist of face pairs - inner and outer faces of the bend.
[in]fixedFace- The face that remains fixed.
[in]fixedPoint- A point in the domain of the underlying surface of face 'fixedFace' if this face is a face of the bend.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
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 'bends' are to be unbended relative to the fixed face 'fixedFace'. If 'fixedFace' is a sheet face that belongs to one of bends 'bends', unbending is performed such that the plane tangent to the underlying surface of 'fixedFace' at point 'fixedPoint' remains fixed.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]bends- An array of bends which consist of face pairs - inner and outer faces of the bend.
[in]fixedFace- The face that remains fixed.
[in]fixedPoint- A point in the domain of face 'fixedFace' if it is a face of the bend.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
[out]ribContours- The set of contours, which are containing edges of stamp rib in unfolded state.
Returns:
- The operation result code.
MbResultType CreateSheetSolid ( const MbPlacement3D placement,
RPArray< MbContour > &  contours,
bool  unbended,
const MbSheetMetalValues params,
RPArray< MbSNameMaker > *  nameMakers,
RPArray< MbSMBendNames > &  resultBends,
MbSolid *&  result 
)

A sheet solid is created by extrusion of one open contour or several closed contours.
In the case of several closed contours one contour should be outer, the others should be inner; extrusion is performed by a distance equal to the sheet solid thickness.
In the case of open contour it is supplied with the sheet solid thickness in one or another direction subject to the parameters, then the result is extruded by the specified distances.

Parameters:
[in]placement- A sketch placement.
[in]contours- The sheet solid contours.
[in]unbended- Whether to construct the element unbended.
[in]params- A sheet solid parameters.
[in]nameMakers- Objects for naming the new objects.
[out]resultBends- The resultant bends.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType SheetSolidPlate ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D placement,
RPArray< MbContour > &  contours,
const MbSheetMetalValues params,
RPArray< MbSNameMaker > *  nameMakers,
MbSolid *&  result 
)

A plate is constructed from one or several closed non-intersecting contours; And several contours can be outer.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]placement- The local coordinate system of the sketch.
[in]contours- The closed contour of the plate.
[in]params- A sheet solid parameters.
[in]nameMakers- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType SheetSolidHole ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D placement,
RPArray< MbContour > &  contours,
const MbSheetMetalValues params,
bool  diff,
RPArray< MbSNameMaker > *  nameMakers,
MbSolid *&  result 
)

A hole is constructed by a closed contour.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]placement- A sketch placement.
[in]contours- A closed contour of a hole/intersection.
[in]params- A sheet solid parameters.
[in]diff- The hole (diff = true), the intersection (diff = false).
[in]nameMakers- Objects for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType BendSheetSolidByEdges ( MbSolid solid,
const MbeCopyMode  sameShell,
const RPArray< MbCurveEdge > &  edges,
const bool  unbended,
const MbBendByEdgeValues params,
MbSNameMaker nameMaker,
RPArray< MbSMBendNames > &  resultBends,
MbSolid *&  result 
)

A bend is constructed on one or several edges that belong to a planar sheet face from the specified parameters.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]edges- The edges of bends.
[in]unbended- Whether to construct the element unbended.
[in]params- The bends parameters.
[in]nameMaker- An object for naming the new objects.
[in,out]resultBends- Bends parameters and names of the bends faces.
[out]result- The resultant solid.
Returns:
- The operation result code.
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,
RPArray< RPArray< MbSMBendNames > > &  resultBends,
MbSolid *&  result 
)

A composite bend of a sheet solid or, in the other words, a bend from a sketch can be constructed on one or several neighboring linear edges of one or several sheet faces from the different sides of the bend. A sketch consisting of line segments and arcs should lie on a plane perpendicular to one of edges of the construction; one of its ends should lie on the edge projection onto this plane. The specified sketch is applied to each edge involved in the construction. From this sketch and its copies for all the edges sheet solids are created with rounding of non-smooth (G0) joints of line segments of the contour and smoothly connecting with the base sheet face. The constructed faces are united with the base (source) solid, and, then the corners are to be closed according to the specified parameters. After finishing the operation all the created edges are stored in array 'resultBends'.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]placement- The bend contour placement.
[in]contour- The bend contour.
[in]edges- The bend edges.
[in]unbended- Whether to construct the element unbended.
[in]params- The bend parameters.
[in]nameMaker- An object for naming the new objects.
[out]resultBends- The resultant bends.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType CloseCorner ( MbSolid solid,
MbeCopyMode  sameShell,
MbCurveEdge curveEdgePlus,
MbCurveEdge curveEdgeMinus,
const MbClosedCornerValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

If two bends are created on the neighboring edges of a sheet face, a corner appears between them which can be covered by the material by extending the corresponding sides of these bends, that's what the operation does. The specified parameters can include a gap size and types of enclosure separately for the bends and for their planar extensions.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]curveEdgePlus- The bend edge assumed to be positive.
[in]curveEdgeMinus- The bend edge assumed to be negative.
[in]params- The enclosure parameters.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType Stamp ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const MbContour contour,
const MbStampingValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

The stamping is created from one closed or open contour lying on a flat sheet face. A closed sketch can lie on the sheet face entirely or partially, and an open sketch must have the start and the end points outside the face. The stamping is trimmed by the boundary of the sheet face which contains the sketch.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]face- The face for stamping.
[in]placement- A local coordinate system of the contour.
[in]contour- The stamping contour.
[in]params- The parameters of stamping.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType SphericalStamp ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const MbStampingValues params,
const MbCartPoint center,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

The stamping is created by the parameters and a center lying on a flat sheet face. The stamping is trimmed by the boundary of the sheet face which contains the sketch.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]face- The face for stamping.
[in]placement- A local coordinate system of the center.
[in]params- The parameters of stamping.
[in]center- The center of the stamping.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
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 
)

A bead is created from one or several closed or open sketches lying on a flat sheet face, as well as by points. If the sketch goes out of the face, the bead is trimmed by its boundary. A bead from an open sketch has two tips at the start and at the end points; the tips type is specified in the operation parameters. The beed by point looks like spherical stamp.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]face- The bead face.
[in]placement- The local coordinate system of the contours.
[in]contours- The bead contours.
[in]centers- The spherical stamps centers.
[in]params- The bead parameters.
[in]nameMaker- The contours names.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType CreateJalousie ( MbSolid solid,
MbeCopyMode  sameShell,
const MbFace face,
const MbPlacement3D placement,
const RPArray< MbLineSegment > &  segments,
const MbJalousieValues params,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

Jalousie are crated from one or several line segments on a flat sheet face. Jalousie can't go out of the face boundary and can't crossed with itself. Jalousie can be of two types: stretch and cutting. A stretch looks like a half of a linear bead splitted lengthwise, and a cutting looks like a deflected slice.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]face- A face of jalousie.
[in]placement- A local coordinate system of the segment.
[in]segments- The segments of jalousie.
[in]params- The parameters of jalousie.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType CreateRuledSolid ( MbRuledSolidValues parameters,
const MbSNameMaker nameMaker,
RPArray< MbSMBendNames > &  resultBends,
MbContour *&  resultContour,
MbSolid *&  resultSolid 
)

A ruled shell is created from a planar contour by extrusion with a slope to form a ruled surface in the general case, and then by supplying it with a thickness.

Parameters:
[in]parameters- A ruled shell parameters.
[in]nameMaker- An object defining the main name of the operation.
[out]resultBends- The resultant bends.
[out]resultContour- 'Contour' rounded according to the parameters from 'resultBends'.
[out]resultSolid- The resultant solid.
Returns:
- The operation result code.
MbResultType SheetSolidUnion ( MbSolid solid1,
const MbeCopyMode  sameShell1,
MbSolid solid2,
const MbeCopyMode  sameShell2,
const MbSNameMaker names,
MbSolid *&  result 
)

Connects the two sheet solids, if they touch each other by an only side face.

Parameters:
[in]solid1- The first sheet solid.
[in]sameShell1- Whether to delete the shell of the first source solid.
[in]solid2- The second sheet solid.
[in]sameShell2- Whether to delete the shell of the second source solid.
[in]names- An object defining the main name of the operation.
[out]result- The resultant solid.
Returns:
- The operation result code.
bool CanUnionSheetSolids ( const MbSolid solid1,
const MbSolid solid2 
)

The function completed successfully if it finds an only overlapping in space pair of side faces belonging to the first and the second solids.

Parameters:
[in]solid1- The first sheet solid.
[in]solid2- The second sheet solid.
Returns:
- true if the sheet solids can be connected, false - otherwise.
MbResultType RestoreSideEdges ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbFace > &  outerFaces,
const bool  strict,
RPArray< MbSheetMetalBend > &  bends,
MbSNameMaker nameMaker,
MbSolid *&  result 
)

The operation is used for restoring of the side boundaies of bends after the constructions which could delete them, such as cutting or fillet.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]outerFaces- The external faces whose side edges are to be restored.
[in]strict- If 'strict' = false, the side edges are to be restored only when the error message is not generated during the operation.
[out]bends- The bends for which the side edges has been restored.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
bool SeparateBendsBySubshells ( const MbSolid solid,
const RPArray< MbSheetMetalBend > &  bends,
const MbName fixedFaceName,
RPArray< RPArray< MbSheetMetalBend > > &  bendsGroups,
RPArray< const MbFace > &  fixedFaces 
)

The bends form 'bends' are grouped by belonging to different subshells of sheet solid 'solid'. As a result of the function a one-to-one correspondence is formed for the groups of bends and fixed faces corresponding to the groups.

Parameters:
[in]solid- A sheet solid.
[in]bends- The bends.
[in]fixedFaceName- A fixed face name.
[out]bendsGroups- The bends subdivided into groups by belonging to different subshells.
[out]fixedFaces- The fixed faces corresponding to these subshells.
Returns:
True if the operation succeeded, otherwise false.
bool CollectBends ( const MbFaceShell faceShell,
const RPArray< MbFace > &  innerFaces,
const RPArray< MbFace > &  outerFaces,
RPArray< MbSheetMetalBend > &  result 
)

The inner and the outer faces of a bend are searched among unordered set of external and internal faces of the bends; given these faces a bend is constructed and added to array 'bends'.

Parameters:
[in]faceShell- A face set of the sheet solid.
[in]innerFaces- The inner faces of the bends.
[in]outerFaces- The outer faces of the bends.
[out]result- The face pairs forming the bends.
Returns:
True if the operation succeeded, otherwise false.
bool IsSuitableForFixed ( const MbFace face)

The specified face is checked to be invariant while bending/unbending of all the bends.

Parameters:
[in]-A face to check.
Returns:
True - the face can be chosen as a fixed face, false - otherwise.
void FindCurveFaces ( const RPArray< MbFace > &  faces,
const MbCurve3D curve,
RPArray< MbFace > &  result 
)

The curve 'curve' should be linear.

Parameters:
[in]faces- A face set for search.
[in]curve- A curve lying on some of the faces.
[out]result- The faces containing the curve.
MbFace* FindSheetFace ( const MbCurveEdge edge)

Find the upper or the lower face of a sheet solid among two faces adjacent by edge 'edge'.

Parameters:
[in]edge- A non-oriented edge of a sheet face.
Returns:
A sheet face that has been found.
MbFace* FindPairBendFace ( const MbFace face)

Find a sheet face opposite to the specified sheet face of a bend.

Parameters:
[in]face- A sheet face of a bend.
Returns:
The required pair face.
MbFace* GetPairPlanarFaceByEdge ( const MbCurveEdge curveEdge,
const double  begDistance,
const double  endDistance 
)

The function of searching of a pair sheet face for the bend-on-edge operation. It is applied for multithickness sheet faces if the specified face corresponds to several pair faces at the different distances from it. The positive distances 'begDistance' and 'endDistance' mean that the distance is measured outside the edge, the negative ones means the distance inside the edge.

Parameters:
[in]curveEdge- The edge for which to search.
[in]begDistance- The distance from the beginning of the edge.
[in]endDistance- The distance from the edge end.
Returns:
The required face.
MbFace* GetPairPlanarFaceByCurve ( const MbFace sheetFace,
const MbCurve3D curve 
)

The function of searching of a pair sheet face for the bend-along-a-line operation. It is applied for multithickness sheet faces if the specified face corresponds to several pair faces at the different distances from it.

Parameters:
[in]sheetFace- A planar sheet face.
[in]curve- A linear curve lying on the face.
Returns:
The required face.
MbFace* GetPairPlanarFaceByContour ( const MbFaceShell shell,
const MbFace sheetFace,
const MbPlacement3D place,
const RPArray< const MbCurve > &  segments 
)

The function of searching of a pair sheet face for the operations based on contours. It is applied for multithickness sheet faces if the specified face corresponds to several pair faces at the different distances from it.

Parameters:
[in]shell- A shell of a sheet solid.
[in]sheetFace- A base sheet face.
[in]place- A local coordinate system on the face sheetFace.
[in]segments- Curves on XY-plane of the local coordinate system 'placement'.
Returns:
The required face.
MbFace* GetPairPlanarFace ( const MbFaceShell faceShell,
const MbFace sheetFace 
)

The search is firstly performed among the faces adjacent by the edges of outer loop of face 'sheetFace', and, if it fails, among the faces adjacent by the vertices of the loop, and, if the face is not found again, the search among all the connected faces or faces from set 'faceShell' is used. In the last case the closest faces are preferable.

Parameters:
[in]faceShell- A face set for search.
[in]sheetFace- The source planar face.
Returns:
- The required planar face.
double GetDistanceIfSameAndOpposite ( const MbFace face1,
const MbFace face2 
)

Determines the distance between a pair of a similar faces. Similar faces is a pair of a planar, cylindrical or conic faces which normals are collinear and have the opposite directions. The distance is considered to be positive if the faces are located on the side opposite to the normal direction, and to be negative otherwise. If an error occurred, returns 0.0.

Parameters:
[in]face1- The first face.
[in]face2- The second face.
Returns:
- The distance between the faces.
void GetSimilarCylindricBends ( const MbFaceShell shell,
RPArray< MbSheetMetalBend > &  bends 
)

Bended cylindrical/conic bends are searched in sheet solid 'shell' which have to be added to bends 'bends' such that it will be possible to unbend the bends, i.e. the bends can be unbend only together.

Parameters:
[in]shell- The face set for the search.
[in,out]bends- An array of similar bends.
bool CalculateTangentPoint ( const MbFace face,
const MbPlane plane,
MbCartPoint tangentPoint 
)

The tangent point is inside the face, i.e. 0.0<=x<=1.0 and 0.0<=y<=1.0, or outside the face. In the first case the tangent point is recomputed in the coordinates of the underlying surface of the face, in the second case one of the touching points of underlying surface of face 'face' and plane 'plane' is calculated.

Parameters:
[in]face- The face containing the tangent point.
[in]plane- The tangent plane.
[in,out]tangentPoint- The tangent point.
Returns:
True if the operation succeeded, otherwise false.
bool CalculateConicAxisLine ( const MbFace face,
MbLineSegment axisLineSegment 
)

Returns the centerline in the coordinates of the parametric domain of the underlying plane of the face 'face'.

Parameters:
[in]face- A sheet face of the unbended conic bend.
[out]axisLineSegment- The required centerline.
Returns:
True if the operation succeeded, otherwise false.
bool BuildBends3DAxisLines ( const MbSolid solid,
RPArray< MbLineSegment3D > &  axisLineSegments 
)

Returns the 3D centerline that lies on the unbent face of the bend.

Parameters:
[in]solid- A sheet solid.
[out]axisLineSegments- The required centerline.
Returns:
True if the operation succeeded, otherwise false.
bool GetParamsForCloseCorner ( const RPArray< MbFace > &  facesPlus,
const RPArray< MbFace > &  facesMinus,
MbClosedCornerValues parameters,
MbCurveEdge *&  edgePlus,
MbCurveEdge *&  edgeMinus 
)

Find common edge for corner closure or two basic edges for corner closure across bend. Calculate the parameters for the corner closure of selected faces.

Parameters:
[in]facesPlus- Selected butt faces from the side of angle assumed to be positive.
[in]facesMinus- Selected butt faces from the side of angle assumed to be negative.
[out]parameters- The closure parameters.
[out]edgePlus- The bend edge assumed to be positive.
[out]edgeMinus- The bend edge assumed to be negative.
Returns:
True if the operation succeeded, otherwise false.
bool GetParamsForCloseCorner ( const MbCurveEdge selectedEdgePlus,
const MbCurveEdge selectedEdgeMinus,
MbClosedCornerValues parameters,
MbCurveEdge *&  edgePlus,
MbCurveEdge *&  edgeMinus 
)

Find common edge for corner closure or two basic edges for corner closure across bend.

Parameters:
[in]selectedEdgePlus- Selected edge from the side of angle assumed to be positive.
[in]selectedEdgeMinus- Selected edge from the side of angle assumed to be negative.
[out]parameters- The closure parameters.
[out]edgePlus- The bend edge assumed to be positive.
[out]edgeMinus- The bend edge assumed to be negative.
Returns:
True if the operation succeeded, otherwise false.
double CalculateSegmentationParameter ( const MbCurve curve,
const MbeSegmentationMethod  method,
const double  param,
const MbeSegmentationMethod  newMethod 
)

Calculate parameter of segmentation for the new method. Result of the segmentation doesn't change.

Parameters:
[in]curve- Curve (arc).
[in]method- Segmentation method.
[in]param- Segmentation parameter.
[in]newMethod- Segmentation method to calculate parameter for.
Returns:
newParam - Calculated parameter.
MbResultType SplitContourIntoSegments ( const MbCurve curve,
const size_t  segmNumb,
MbContour *&  resultContour 
)

Split a curve (an arc) into segments.

Parameters:
[in]contour- Curve (arc).
[in]segmNumber- Number of segments after splitting.
[out]resultContour- Segmented contour.
Returns:
- The operation result code.
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 
)

Split a part of a contours (an arc) into segments.

Parameters:
[in]contour1- First contour.
[in]breaks1- Parameters of a partition of the first contour.
[in]contour2- Second contour.
[in]breaks2- Parameters of a partition of the second contour.
[in]segmNumber- Number of segments after splitting.
Returns:
- The operation result code.
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,
RPArray< MbSMBendNames > &  bendNames 
)

Fill the array of MbSMBendNames.

Parameters:
[in]contour1- First contour.
[in]placement1- Placement if the first contour.
[in]breaks1- Parameters of a partition of the first contour.
[in]contour2- Second contour.
[in]placement2- Placement if the second contour.
[in]breaks2- Parameters of a partition of the second contour.
[in]nameMaker- Names of the faces of the ruled surface.
[out]bendNames- Array of the bends parameters.
Returns:
True if the operation succeeded, otherwise false.
MbContour3D* MakeContour ( const MbPlacement3D placement,
const MbContour contour,
const SArray< double > &  breaks,
MbSNameMaker names 
)

Splits the contour by points corresponding parameters breaks and makes 3D contour that lies on the placement.

Parameters:
[in]placement- Placement of the contour.
[in]contour- The contour.
[in]breaks- Parameters of a partition of the contour.
[in,out]names- Names of the segments of the contour.
Returns:
Splitted with array breaks 3D contour.
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 
)

Create the 2D contour of rib and placement by side distances.
The placement origin is placed on intersection of plane internal sides of bend.

Parameters:
[in]bendEdge- The edge on internal bend face.
[in]bendAngle- The bend anlge.
[in]l1- The lenght along first side of rib section.
[in]l2- The lenght along second side of rib section.
[in]phi- The contour bending angle.
[in]rad- The contour fillet radius.
[in]dir- Direction of first side of rib section.
[in]t- Parameter on internal bend edge.
[out]placement- Placement of the contour.
[out]contour- The contour of sheet rib solid.
Returns:
True if the operation succeeded, otherwise 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 
)

Create the 2D contour of rib and placement by distance and slope angle.
The placement origin is placed on intersection of plane internal sides of bend.

Parameters:
[in]bendEdge- The edge on internal bend face.
[in]bendAngle- The bend anlge.
[in]l1- The lenght along first side of rib section.
[in]a- The contour slope angle.
[in]phi- The contour bending angle.
[in]rad- The contour fillet radius.
[in]dir- Direction of first side of rib section.
[in]t- Parameter on internal bend edge.
[out]placement- Placement of the contour.
[out]contour- The contour of sheet rib solid.
Returns:
True if the operation succeeded, otherwise 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 
)

Create the 2D contour of rib and placement by depth and slope angle.
The placement origin is placed on intersection of plane internal sides of bend.

Parameters:
[in]bendEdge- The edge on internal bend face.
[in]bendAngle- The bend anlge.
[in]h- The depth of rib section.
[in]a- The contour slope angle.
[in]phi- The contour bending angle.
[in]rad- The contour fillet radius.
[in]dir- Direction of first side of rib section.
[in]t- Parameter on internal bend edge.
[out]placement- Placement of the contour.
[out]contour- The contour of sheet rib solid.
Returns:
True if the operation succeeded, otherwise false.
MbResultType SheetRibSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D place,
const MbContour contour,
size_t  index,
SheetRibValues pars,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a sheet solid with a sheet rib.
The function creates a rib from a given contour and unites it with the source solid. The segment of the contour with the given number determines the slope vector.

Parameters:
[in]solid- The source sheet solid.
[in]sameShell- Whether to copy the input solid.
[in]place- The generating contour coordinate system.
[in]contour- The generating contour on XY-plane of coordinate system 'place'.
[in]index- Index of a segment in the contour at which the inclination direction will be set.
[in]pars- Parameters of a sheet rib.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType BendAnySolid ( MbSolid solid,
const MbeCopyMode  sameShell,
const MbPlane cutPlane,
const SArray< MbAnyBend > &  bends,
const MbSNameMaker nameMaker,
MbSolid *&  result 
)


Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]bends- An array of bends which consist of cutting plane and bend parameters.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbResultType SimplifyFlatPattern ( MbSolid solid,
const MbeCopyMode  sameShell,
const MbSimplifyFlatPatternValues params,
const MbSNameMaker nameMaker,
MbSolid *&  result 
)

Simplify flattened sheet solid.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]params- The operation parameters.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
MbCreator* CreateSimplifiedFlatPattern ( MbFaceShell initialShell,
const MbeCopyMode  sameShell,
const MbSimplifyFlatPatternValues params,
const MbSNameMaker nameMaker,
MbResultType res,
MbFaceShell *&  shell 
)

Simplify flattened sheet solid.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to delete the shell of the source solid.
[in]params- The operation parameters.
[in]nameMaker- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
- The operation result code.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines