C3D Kernel  104598
Functions
Solid Modeling
Geometric Construction Methods
Collaboration diagram for Solid Modeling:

Functions

MbResultType ElementarySolid (const SArray< MbCartPoint3D > &points, ElementaryShellType solidType, const MbSNameMaker &names, MbSolid *&result)
 Create an elementary solid.
MbResultType ElementarySolid (const MbSurface &surface, const MbSNameMaker &names, MbSolid *&result)
 Create a solid from a surface.
MbResultType MeshSolid (const MbMesh &mesh, const GridsToShellValues &params, const MbSNameMaker &names, MbSolid *&result, IProgressIndicator *prog=NULL)
 Create a solid on the basis of a polygonal geometric object.
MbResultType GridSolid (const MbGrid &grid, const MbSNameMaker &names, MbSolid *&result, IProgressIndicator *prog=NULL)
 Create a solid on the basis of a triangulation.
MbResultType CollectionSolid (const MbCollection &grid, const MbSNameMaker &names, MbSolid *&result, IProgressIndicator *progBar=NULL)
 Create a solid on the basis of elements.
MbSolidCreateSolid (MbFaceShell &shell, const MbSNameMaker &names)
 Create a solid with a given shell.
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)
 Create an extrusion solid.
MbResultType RevolutionSolid (const MbSweptData &sweptData, const MbAxis3D &axis, const RevolutionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, MbSolid *&result)
 Create a solid of revolution.
MbResultType EvolutionSolid (const MbSweptData &sweptData, const MbCurve3D &spine, const EvolutionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, const MbSNameMaker &spineNames, MbSolid *&result)
 Create a sweeping solid.
MbResultType EvolutionSolid (const MbSweptData &sweptData, const MbSpine &spine, const EvolutionValues &params, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, const MbSNameMaker &spineNames, MbSolid *&result)
 Create a sweeping solid.
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)
 Create a solid from a planar sections.
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)
 Create a solid from a space sections.
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)
 Create a solid from a space sections.
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)
 Create an extrusion solid and perform a boolean operation.
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)
 Create a revolution solid and perform a boolean operation.
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)
 Create an evolution solid and perform a boolean operation.
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)
 Create a solid from the planar sections and perform a boolean operation.
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)
 Create a solid from the space sections and perform a boolean operation.
MbResultType BooleanResult (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, OperationType oType, const MbBooleanFlags &flags, const MbSNameMaker &operNames, MbSolid *&result)
 Perform a Boolean operation.
MbResultType BooleanSolid (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, OperationType oType, const MbSNameMaker &names, MbSolid *&result)
 Create a solid using a boolean operation.
MbResultType BooleanShell (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, OperationType oType, const MbSNameMaker &names, MbSolid *&result)
 Create a solid using a boolean operation.
MbResultType SolidCutting (MbSolid &solid, MbeCopyMode sameShell, const MbSurface &surface, int part, const MbSNameMaker &names, bool closed, const MbMergingFlags &flags, MbSolid *&result)
 Cut a part of a solid off by a surface.
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)
 Cut a part of a solid off with an extruded planar contour.
MbResultType SolidCutting (MbSolid &solid, MbeCopyMode sameShell, const MbSurface &surface, const MbSNameMaker &names, bool closed, const MbMergingFlags &flags, RPArray< MbSolid > &result)
 Cut a solid off by a surface.
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)
 Cut a solid off with an extruded planar contour.
MbResultType SymmetrySolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbSNameMaker &names, MbSolid *&result)
 Create a symmetric solid relative to a plane.
MbResultType MirrorSolid (const MbSolid &solid, const MbPlacement3D &place, const MbSNameMaker &names, MbSolid *&result)
 Create a mirror copy of a solid relative to a plane.
MbResultType RibSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, size_t index, RibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Create a solid with a rib.
MbResultType RibElement (const MbSolid &solid, const MbPlacement3D &place, MbContour &contour, size_t index, RibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Create a separate rib.
MbResultType FilletSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbCurveEdge > &initCurves, RPArray< MbFace > &initBounds, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Fillet edges with a constant radius.
MbResultType FilletSolid (MbSolid &solid, MbeCopyMode sameShell, SArray< MbEdgeFunction > &initCurves, RPArray< MbFace > &initBounds, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Fillet edges with a variable radius.
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)
 Create fillets on vertices and the edges adjacent to these vertices with a constant radius.
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)
 Create a fillet of faces of the solid.
MbResultType ChamferSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbCurveEdge > &initCurves, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Create chamfers for edges of the solid.
MbResultType OffsetSolid (MbSolid &solid, MbeCopyMode sameShell, double offset, const MbSNameMaker &names, MbSolid *&result)
 Create а equidistant solid.
MbResultType ThinSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbFace > &outFaces, SweptValues &params, const MbSNameMaker &names, bool copyFaceAttrs, MbSolid *&result)
 Create a thin-walled solid by exclusion of faces.
MbResultType ThinSolid (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbFace > &outFaces, RPArray< MbFace > &offFaces, SArray< double > &offDists, SweptValues &params, const MbSNameMaker &names, bool copyFaceAttrs, MbSolid *&result)
 Create a thin-walled solid by exclusion of faces.
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)
 Perform splitting of a shell faces.
MbResultType SplitSolid (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbSpaceItem > &spItems, bool spSame, RPArray< MbFace > &selFaces, const MbMergingFlags &flags, const MbSNameMaker &names, MbSolid *&result)
 Perform splitting of a shell faces.
MbResultType DraftSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &neutralPlace, double angle, const RPArray< MbFace > &faces, MbeFacePropagation fp, bool reverse, const MbSNameMaker &names, MbSolid *&result)
 Slope the specified faces of the solid.
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)
 Perform the union of intersecting solids.
MbResultType UnionSolid (RPArray< MbSolid > &solids, MbeCopyMode sameShells, bool checkIntersect, const MbSNameMaker &names, bool isArray, MbSolid *&result, RPArray< MbSolid > *notGluedSolids=NULL)
 Create a solid from the specified solids.
MbResultType UnionSolid (const RPArray< MbSolid > &solids, const MbSNameMaker &names, MbSolid *&result)
 Create a solid from the specified solids.
size_t DetachParts (MbSolid &solid, RPArray< MbSolid > &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts.
size_t CreateParts (const MbSolid &solid, RPArray< MbSolid > &parts, const MbSNameMaker &names)
 Split the solid into separate parts.
MbResultType ThinSolid (const MbSurface &surface, bool faceSense, SweptValues &params, const MbSNameMaker &names, SimpleName name, MbSolid *&result)
 Create a shell of the solid from a surface and a thickness.
MbResultType HoleSolid (MbSolid *solid, MbeCopyMode sameShell, const MbPlacement3D &place, const HoleValues &params, const MbSNameMaker &names, MbSolid *&result)
 Create a hole, a pocket, a groove in the solid.
MbResultType ShellPart (const MbSolid &solid, size_t id, const MbPath &path, const MbSNameMaker &names, MbPartSolidIndices &partIndices, MbSolid *&result)
 Extract the specified part of decomposing solid to a separate solid.
MbResultType DuplicationSolid (const MbSolid &solid, const DuplicationValues &params, const MbSNameMaker &names, MbSolid *&result)
 Duplicate the solid.
MbResultType IngotSolid (RPArray< MbItem > &solids, bool makeCopy, const MbSNameMaker &names, MbSolid *&result)
 Create an ingot solid from the specified objects.
MbResultType CreateFastener (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCartPoint3D &point, const FastenersValues &params, const MbSNameMaker &names, RPArray< MbSolid > &results)
 Create fastener using 3D point.
MbResultType CreateFasteners (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCurve3D &curve, size_t number, const FastenersValues &params, const MbSNameMaker &names, RPArray< MbSolid > &results)
 Create an array of fastener elements using 3d curve.
size_t MakeDetachShells (MbFaceShell &solid, RPArray< MbFaceShell > &partSolid, bool sort)
 Divide disconnected parts of a face set into connected sets of faces.
MbCreatorCreateDetach (MbFaceShell &solid, RPArray< MbFaceShell > &partSolid, bool sort, const MbSNameMaker &n, MbResultType &res)
 Divide disconnected parts of a face set into connected sets of faces.
MbCreatorCreateDuplication (const MbFaceShell &solid, const DuplicationValues &params, const MbSNameMaker &operNames, MbResultType &res, MbFaceShell *&shell)
 Create a shell of duplication of original shell.
MbCreatorCreateElementary (const SArray< MbCartPoint3D > &points, ElementaryShellType t, const MbSNameMaker &n, MbResultType &res, MbFaceShell *&shell)
 Create a shell of an elementary solid.
MbCreatorCreateElementary (const MbElementarySurface &surface, const MbSNameMaker &n, MbResultType &res, MbFaceShell *&shell)
 Create a shell of an elementary solid.
MbCreatorRestoreSideEdges (MbFaceShell &initialShell, const MbeCopyMode sameShell, const RPArray< MbFace > &outerFaces, const bool strict, RPArray< MbSheetMetalBend > &resultBends, const MbSNameMaker &nameMaker, MbResultType &res, MbFaceShell *&shell)
 Construct side edges of bends.
bool CreateShell (MbFaceShell *&shell, const RPArray< MbCreator > &creators, MbeCopyMode copyMode)
 Create a shell by history tree.
bool CreateShell (MbFaceShell *&shell, const std::vector< SPtr< MbCreator > > &creators, MbeCopyMode copyMode)
 Create a shell by history tree.

Function Documentation

MbResultType ElementarySolid ( const SArray< MbCartPoint3D > &  points,
ElementaryShellType  solidType,
const MbSNameMaker names,
MbSolid *&  result 
)

Create one of elementary solids from the specified points and type:
solidType = et_Sphere - a sphere (3 points),
solidType = et_Torus - a torus (3 points),
solidType = et_Cylinder - a cylinder (3 points),
solidType = et_Cone - a cone (3 points),
solidType = et_Block - a block (4 points),
solidType = et_Wedge - a wedge (4 points),
solidType = et_Prism - a prism (points count is equal to the base vertices count + 1),
solidType = et_Pyramid - a pyramid (points count is equal to the base vertices count + 1),
solidType = et_Plate - a plate (4 points).

Parameters:
[in]points- A point set.
points[0] determines a local coordinate system origin.
For a sphere, a torus, a cylinder or a cone:
points[1] determines the direction of Z-axis of a local coordinate system.
points[2] determines the direction of X-axis of a local coordinate system.
For a block, a plate or a wedge:
points[1] determines the direction of X-axis of a local coordinate system.
points[2] determines the direction of Y-axis of a local coordinate system.
Also,
points[1] determines the height of a cylinder or a cone, the major radius of a torus, the length of a block or a wedge.
points[2] determines the radius of a cylinder, cone angle as angle between vectors v1(points[0],points[1]) and v2(points[0],points[2]), radius of a sphere, the minor radius of a torus, the width of a block or a wedge.
In the case of the cone of the vector v1(points [0], points [1]) and v2(points [0], points [2]) must not be parallel or perpendicular to each other.
The last point determines the height of a block, a wedge or a plate, the vertex of a pyramid.
[in]solidType- The solid type.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType ElementarySolid ( const MbSurface surface,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid from an elementary surface.
The only acceptable surface types are cylinder, cone, sphere, torus.

Parameters:
[in]surface- The surface.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType MeshSolid ( const MbMesh mesh,
const GridsToShellValues params,
const MbSNameMaker names,
MbSolid *&  result,
IProgressIndicator prog = NULL 
)

Create a solid MbSolid on the basis of a polygonal geometric object MbMesh.

Parameters:
[in]mesh- The polygonal geometric object.
[in]params- Operation parameters.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType GridSolid ( const MbGrid grid,
const MbSNameMaker names,
MbSolid *&  result,
IProgressIndicator prog = NULL 
)

Create a solid MbSolid on the basis of a triangulation MbGrid.

Parameters:
[in]grid- The polygonal geometric object.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType CollectionSolid ( const MbCollection grid,
const MbSNameMaker names,
MbSolid *&  result,
IProgressIndicator progBar = NULL 
)

Create a solid MbSolid on the basis of elements MbCollection.

Parameters:
[in]grid- The elements collection.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbSolid* CreateSolid ( MbFaceShell shell,
const MbSNameMaker names 
)

Create a solid with a given shell without a history.

Parameters:
[in]shell- A shell.
[in]names- An object for naming the new objects.
Returns:
Returns a solid without the history.
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 
)

Create an extrusion solid.
solid1 and solid2 are used with option "Up to the closest faces" of these solids.

Parameters:
[in]sweptData- The generating curve data.
[in]direction- An extrusion direction.
[in]solid1- Up to the closest faces of this solid in the forward direction.
[in]solid2- Up to the closest faces of this solid in the backward direction.
[in]checkIntersection- Whether to union the solids solid1 and solid2 with the check for intersections.
[in,out]params- The extrusion parameters. Returns the information for construction of the up-to-surface operation array elements.
[in]operNames- An object defining a name of the operation.
[in]contoursNames- An objects defining a names of the generating contour segments.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType RevolutionSolid ( const MbSweptData sweptData,
const MbAxis3D axis,
const RevolutionValues params,
const MbSNameMaker operNames,
const RPArray< MbSNameMaker > &  contoursNames,
MbSolid *&  result 
)

Create a solid of revolution by the generating curve data.

Parameters:
[in]sweptData- The generating curve data.
[in]axis- Rotation axis.
[in,out]params- The revolution parameters. Returns the information for construction of the up-to-surface operation array elements.
[in]operNames- An object defining a name of the operation.
[in]contoursNames- An objects defining a names of the generating contour segments.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType EvolutionSolid ( const MbSweptData sweptData,
const MbCurve3D spine,
const EvolutionValues params,
const MbSNameMaker operNames,
const RPArray< MbSNameMaker > &  contoursNames,
const MbSNameMaker spineNames,
MbSolid *&  result 
)

Create a sweeping solid by moving the generating curve along the guide curve.

Parameters:
[in]sweptData- The generating curve data.
[in]spine- The spine curve.
[in]params- The operation parameters.
[in]operNames- An object defining a name of the operation.
[in]contoursNames- An object defining the names of generating curve contours.
[in]spineNames- An object defining the name of a guide curve.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType EvolutionSolid ( const MbSweptData sweptData,
const MbSpine spine,
const EvolutionValues params,
const MbSNameMaker operNames,
const RPArray< MbSNameMaker > &  contoursNames,
const MbSNameMaker spineNames,
MbSolid *&  result 
)

Create a sweeping solid by moving the generating curve along the guide curve.

Parameters:
[in]sweptData- The generating curve data.
[in]spine- The spine curve with additional data.
[in]params- The operation parameters.
[in]operNames- An object defining a name of the operation.
[in]contoursNames- An object defining the names of generating curve contours.
[in]spineNames- An object defining the name of a guide curve.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
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 
)

Create a solid from a planar sections with a guide curve.

Parameters:
[in]pl- An array of generating contours coordinate systems.
[in]c- An array of generating contours.
[in]spine- A guide curve (can be NULL).
[in]params- The operation parameters.
[in]ps- A point array on the generating contours which determines the start points of the contours.
[in]names- An object defining a name of the operation.
[in]ns- The objects defining the names of generating contours.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
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 
)

Create a solid from a space sections with a guide curve.

Parameters:
[in]pl- An array of generating contours coordinate systems.
[in]c- An array of generating contours.
[in]spine- A guide curve (can be NULL).
[in]params- The operation parameters.
[in]guideCurves- An array of the guide curves that determines the trajectories of the corresponding points of the contours.
[in]ps- A point array on the generating contours which determines the corresponding points of the contours (chains of points).
[in]names- An object defining a name of the operation.
[in]ns- The objects defining the names of generating contours.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
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 
)

Create a solid from a space sections with a guide curve.

Parameters:
[in]surfs- An array of surfaces of generating contours.
[in]c- An array of generating contours.
[in]spine- A guide curve (can be NULL).
[in]params- The operation parameters.
[in]guideCurves- An array of the guide curves that determines the trajectories of the corresponding points of the contours.
[in]ps- A point array on the generating contours which determines the corresponding points of the contours (chains of points).
[in]names- An object defining a name of the operation.
[in]ns- The objects defining the names of generating contours.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
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 
)

Create an extrusion solid and perform a boolean operation of type 'oType' with solid 'solid'. The possible values of 'OperationType' for solids:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.

Parameters:
[in]solid- The first solid for a boolean operation.
[in]sameShell- Whether to copy the solid.
[in]sweptData- The generating curve data.
[in]direction- An extrusion direction.
[in,out]params- The extrusion parameters. Returns the information for construction of the up-to-surface operation array elements.
[in]oType- A boolean operation type.
[in]operNames- An object defining a name of the operation.
[in]contoursNames- The objects defining the names of generating lines.
[out]result- The resultant solid.
Returns:
Returns operation result code.
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 
)

Create a revolution solid and perform a boolean operation of type oType with solid 'solid'. The possible values of 'OperationType' for solids:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.

Parameters:
[in]solid- The first solid for a boolean operation.
[in]sameShell- Whether to copy the solid.
[in]sweptData- The generating curve data.
[in]axis- Rotation axis.
[in,out]params- The revolution parameters. Returns the information for construction of the up-to-surface operation array elements.
[in]oType- A boolean operation type.
[in]operNames- An object defining a name of the operation.
[in]contoursNames- The objects defining the names of generating lines.
[out]result- The resultant solid.
Returns:
Returns operation result code.
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 
)

Create an evolution solid and perform a boolean operation of type oType with solid 'solid'. The possible values of 'OperationType' for solids:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.

Parameters:
[in]solid- The first solid for a boolean operation.
[in]sameShell- Whether to copy the solid.
[in]sweptData- The generating curve data.
[in]spine- The spine curve.
[in]params- Parameters of the sweepping operation.
[in]oType- A boolean operation type.
[in]operNames- An object for naming the new objects.
[in]contoursNames- An object defining the names of generating curve contours.
[in]spineNames- An object defining the name of a guide curve.
[out]result- The resultant solid.
Returns:
Returns operation result code.
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 
)

Create a solid from a planar sections and perform a boolean operation of type oType with solid 'solid'. The possible values of 'OperationType' for solids:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.

Parameters:
[in]solid- The first solid for a boolean operation.
[in]sameShell- Whether to copy the solid.
[in]pl- An array of generating contours coordinate systems.
[in]c- An array of generating contours.
[in]spine- A guide curve (can be NULL).
[in]params- The operation parameters.
[in]oType- A boolean operation type.
[in]ps- A point array on the generating contours which determines the start points of the contours.
[in]names- An object defining a name of the operation.
[in]ns- The objects defining the names of generating contours.
[out]result- The resultant solid.
Returns:
Returns operation result code.
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 
)

Create a solid from a space sections and perform a boolean operation of type oType with solid 'solid'. The possible values of 'OperationType' for solids:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.

Parameters:
[in]solid- The first solid for a boolean operation.
[in]sameShell- Whether to copy the solid.
[in]surfs- An array of generating contours surfaces.
[in]c- An array of generating contours.
[in]spine- A guide curve (can be NULL).
[in]params- The operation parameters.
[in]oType- A boolean operation type.
[in]guideCurves- An array of the guide curves.
[in]ps- A point array on the generating contours which determines the start points of the contours.
[in]names- An object defining a name of the operation.
[in]ns- The objects defining the names of generating contours.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType BooleanResult ( MbSolid solid1,
MbeCopyMode  sameShell1,
MbSolid solid2,
MbeCopyMode  sameShell2,
OperationType  oType,
const MbBooleanFlags flags,
const MbSNameMaker operNames,
MbSolid *&  result 
)

The function performs the specified Boolean operation on two solids.

Parameters:
[in]solid1- The set of faces of the first solid.
[in]sameShell1- Method of copying the faces of the first solid.
[in]solid2- The second solid face set.
[in]sameShell2- Method of copying the faces of the second solid.
[in]oType- A Boolean operation type.
[in]flags- Control flags of the Boolean operation.
[in]operNames- An object defining a name of the operation.
[out]result- Constructed set of faces.
Returns:
Returns operation result code.
MbResultType BooleanSolid ( MbSolid solid1,
MbeCopyMode  sameShell1,
MbSolid solid2,
MbeCopyMode  sameShell2,
OperationType  oType,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid by applying a boolean operation of type oType to solids 'solid1' and 'solid2'. The possible values of 'OperationType' for solids:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.
The function accepts only closed solids. The function performs a boolean operation of the same name with a point sets located inside the solids and on their boundary.

Parameters:
[in]solid1- The first solid.
[in]sameShell1- Whether to copy the first solid.
[in]solid2- The second solid.
[in]sameShell2- Whether to copy the second solid.
[in]oType- A boolean operation type.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType BooleanShell ( MbSolid solid1,
MbeCopyMode  sameShell1,
MbSolid solid2,
MbeCopyMode  sameShell2,
OperationType  oType,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid applying a boolean operation of type oType to shells 'solid1' and solid2'. One of the operands 'solid1' and 'solid2' should be an open shell. Possible values of 'OperationType' for a shells are:
bo_Variety - a union,
bo_Internal - an intersection,
bo_External - a subtraction.

Parameters:
[in]solid1- The first solid.
[in]sameShell1- Whether to copy the first solid.
[in]solid2- The second solid.
[in]sameShell2- Whether to copy the second solid.
[in]oType- A boolean operation type.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType SolidCutting ( MbSolid solid,
MbeCopyMode  sameShell,
const MbSurface surface,
int  part,
const MbSNameMaker names,
bool  closed,
const MbMergingFlags flags,
MbSolid *&  result 
)

Cut a part of a solid off by a surface that intersects the solid.
part = 1 - a part of solid above the surface is to be retained.
part = -1 - a part of solid below the surface is to be retained.

Parameters:
[in]solid- The source solid.
[in]sameShell- The mode of copying of the source solid.
[in]surface- A cutting plane.
[in]part- The direction of cutting off.
[in]names- An object for naming the new objects.
[in]closed- The flag of the cutting off mode: true - cut as a solid, false - cut as a shell.
[in]flags- Control flags of shell items merging.
[out]result- The resultant solid.
Returns:
Returns operation result code.
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 
)

Cut a part of a solid by a shell of planar contour extrusion.
part = 1 - a part of solid above the extrusion surface is to be retained.
part = -1 - a part of solid below the extrusion surface is to be retained.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]place- The generating contour coordinate system.
[in]contour- The generating contour.
[in]direction- An extrusion direction of the generating contour.
[in]part- The direction of cutting off.
[in]names- An object for naming the new objects.
[in]closed- The cutting off mode flag: true - cut as a solid, false - cut as a shell.
[in]flags- Control flags of shell items merging.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType SolidCutting ( MbSolid solid,
MbeCopyMode  sameShell,
const MbSurface surface,
const MbSNameMaker names,
bool  closed,
const MbMergingFlags flags,
RPArray< MbSolid > &  result 
)

Cut a solid off by a surface, keep all parts of the solid.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the source solid. Bbuilt bodies can not move relative to each other when sameShell != Vm_Copy.
[in]surface- A cutting plane.
[in]names- An object for naming the new objects.
[in]closed- The flag of the cutting off mode: true - cut as a solid, false - cut as a shell.
[in]flags- Control flags of shell items merging.
[out]result- The resultant solids.
Returns:
Returns operation result code.
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 
)

Cut a solid by a shell of planar contour extrusion, keep all parts of the solid.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the source solid. Bbuilt bodies can not move relative to each other when sameShell != Vm_Copy.
[in]place- The generating contour coordinate system.
[in]contour- The generating contour.
[in]direction- An extrusion direction of the generating contour.
[in]names- An object for naming the new objects.
[in]closed- The cutting off mode flag: true - cut as a solid, false - cut as a shell.
[in]flags- Control flags of shell items merging.
[out]result- The resultant solids.
Returns:
Returns operation result code.
MbResultType SymmetrySolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D place,
const MbSNameMaker names,
MbSolid *&  result 
)

Crate a symmetric solid relative to XY-plane of a local coordinate system.
The function creates a symmetric solid with the specified plane of symmetry in the following way. The source solid is cut off by the plane XY of the local coordinate system; a part of the source solid above the cutting plane is retained. A mirror copy of the chosen part is created and then is united with the chosen part of the source solid.

Parameters:
[in]solid- The source shell.
[in]sameShell- Whether to copy the shell.
[in]place- The symmetry plane coordinate system.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType MirrorSolid ( const MbSolid solid,
const MbPlacement3D place,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a mirror copy of a solid relative to the XY-plane of a local coordinate system.

Parameters:
[in]solid- The source shell.
[in]place- The symmetry plane coordinate system.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType RibSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D place,
const MbContour contour,
size_t  index,
RibValues pars,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid with a 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 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- The segment number in the contour.
[in]pars- Parameters of a rib.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType RibElement ( const MbSolid solid,
const MbPlacement3D place,
MbContour contour,
size_t  index,
RibValues pars,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a separate rib for source solid without gluing.

Parameters:
[in]solid- The source solid.
[in]place- The generating contour coordinate system.
[in]contour- The generating contour.
[in]index- The segment number in the contour.
[in]pars- Parameters of a rib.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType FilletSolid ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbCurveEdge > &  initCurves,
RPArray< MbFace > &  initBounds,
const SmoothValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Fillet the specified edges of the solid with a constant radius.
The function performs the replacement of the specified edges of the source solid by faces smoothly connecting the adjacent faces of the specified edges. The cross-section of the connecting faces can be of the form of a circle, an ellipse, a hyperbola or a parabola.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]initCurves- A set of edges of the solid to fillet.
[in]initBounds- A set of faces for trimming of the butt-ends.
[in]params- Parameters of edges fillet.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType FilletSolid ( MbSolid solid,
MbeCopyMode  sameShell,
SArray< MbEdgeFunction > &  initCurves,
RPArray< MbFace > &  initBounds,
const SmoothValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Fillet the given edges of the solid with a variable radius specified by MbEdgeFunction.function.
The function performs the replacement of the specified edges of the source solid by faces smoothly connecting the adjacent faces of the specified edges. The cross-section of the connecting faces can be of the form of a circle, an ellipse, a hyperbola or a parabola. The parameters of the cross-section can vary by the specified law.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]initCurves- An array of edges of the solid to fillet together with the radius laws.
[in]initBounds- A set of faces for trimming of the butt-ends.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
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 
)

Create fillets on vertices and the edges of the solid adjacent to these vertices with a constant radius.
Three edges must be incident to each vertex. The functions performs replacement of the specified vertices and edges of the source solid by faces of the solid smoothly connecting the faces adjacent to the specified vertices and edges. The cross-section of the connecting faces can be of the form of a circle, an ellipse, a hyperbola or a parabola.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]initCurves- A set of edges of the solid to fillet.
[in]initBounds- A set of faces for trimming of the butt-ends.
[in]initVertices- A set of vertices to fillet.
[in]params- Parameters of edges fillet.
[in]cornerData- Parameters of vertices fillet.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
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 
)

Create a fillet on the specified faces of the solid.
The function performs replacement of the specified faces of the source solid with faces smoothly connecting the faces adjacent to the specified faces. The cross-section of the connecting faces has a form of a circle arc tangent to three faces of the source solid.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]initFaces- A set of faces to fillet.
[in]initFacesLeft- A set of left bounding faces.
[in]initFacesRight- A set of right bounding faces.
[in]params- Parameters of fillet.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType ChamferSolid ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbCurveEdge > &  initCurves,
const SmoothValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Create chamfers for the specified edges of the solid.
The function performs replacement of the specified edges of the source solid with faces of chamfers.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]initCurves- An array of edges to create chamfer on.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType OffsetSolid ( MbSolid solid,
MbeCopyMode  sameShell,
double  offset,
const MbSNameMaker names,
MbSolid *&  result 
)

Create an offset solid by equidistant faces or create an equidistant shell.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]offset- The equidistant parameter.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType ThinSolid ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbFace > &  outFaces,
SweptValues params,
const MbSNameMaker names,
bool  copyFaceAttrs,
MbSolid *&  result 
)

Create a thin-walled solid by exclusion of faces outFaces
and supplying the rest of faces with the same thickness
or create an open shell.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]outFaces- Faces of the solid to open.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[in]copyFaceAttrs- Copy attributes of initial faces to offset faces.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType ThinSolid ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbFace > &  outFaces,
RPArray< MbFace > &  offFaces,
SArray< double > &  offDists,
SweptValues params,
const MbSNameMaker names,
bool  copyFaceAttrs,
MbSolid *&  result 
)

Create a thin-walled solid by exclusion of faces outFaces
and supplying the rest of faces with different thickness
or create an open shell.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]outFaces- Faces of the solid to open.
[in]offFaces- An array of faces for which the individual values of thickness are specified.
[in]offDists- An array of individual values of thickness (must be synchronized with the array 'offFaces').
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[in]copyFaceAttrs- Copy attributes of initial faces to offset faces.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
Warning:
The operation is NOT COMPLETELY IMPLEMENTED!
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 
)

Perform splitting of a shell faces with surfaces of the contours extrusion.
The function creates a copy of a solid and splits the specified faces with surfaces of the contours extrusion.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]spPlace- The coordinate system of the contours.
[in]spType- The extrusion direction.
[in]spContours- The contours of splitting.
[in]spSame- Whether to use the originals or copies of curves.
[in]selFaces- The chosen faces of the input solid.
[in]flags- Control flags of shell items merging.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType SplitSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbSpaceItem > &  spItems,
bool  spSame,
RPArray< MbFace > &  selFaces,
const MbMergingFlags flags,
const MbSNameMaker names,
MbSolid *&  result 
)

Perform splitting of the shell faces with space curves, surfaces and shells.
The function creates a copy of the solid and splits the specified faces with space curves, surfaces and shells.
The spatial elements of a splitting must not have complete or partial overlaps, and also self-intersections.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]spItems- A spatial elements of splitting.
[in]spSame- Whether to use the originals or copies of curves.
[in]selFaces- The chosen faces of the input solid.
[in]flags- Control flags of shell items merging.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType DraftSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D neutralPlace,
double  angle,
const RPArray< MbFace > &  faces,
MbeFacePropagation  fp,
bool  reverse,
const MbSNameMaker names,
MbSolid *&  result 
)

Slope the specified faces of the solid at the specified angle relative to the neutral isoplane.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]neutralPlace- The neutral plane.
[in]angle- The slope angle.
[in]faces- The faces of input solid to be sloped.
[in]fp- Whether to capture the faces smoothly connected with the faces being sloped.
[in]reverse- Whether to slope in the reverse direction.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
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 
)

Perform the union of intersecting solids and a boolean operation oType with solid 'solid' if it is not null:
bo_Union - union,
bo_Intersect - intersection,
bo_Difference - subtraction.
If the flag of intersection check checkIntersect == true, check for solids intersection is performed and the boolean operation of union the intersection solids of the specified set into one solid is performed. Otherwise the union of solids from the given set is performed by simple moving the faces of all the solids into a new solid.
If the flag of solid set regularity isArray == true, the solids are located at the nodes of rectangular or circular grid and positions of solids are specified in the names of faces.

Parameters:
[in]solid- A solid.
[in]sameShell- Whether to copy the solid.
[in]solids- An array of solids.
[in]sameShells- Whether to copy the solids.
[in]oType- The type of the boolean operation for the solid and the set of solids.
[in]checkIntersect- Whether to check the solids intersection.
[in]mergeFaces-
[in]names- An object for naming the new objects.
[in]isArray- A flag of solid set regularity.
[out]result- The resultant solid.
[out]notGluedSolids- An array of solids which was not glued.
Returns:
Returns operation result code.
MbResultType UnionSolid ( RPArray< MbSolid > &  solids,
MbeCopyMode  sameShells,
bool  checkIntersect,
const MbSNameMaker names,
bool  isArray,
MbSolid *&  result,
RPArray< MbSolid > *  notGluedSolids = NULL 
)

Create a solid with or without union of the intersecting solids.
If the flag of intersection check checkIntersect == true, check for solids intersection is performed and the boolean operation of union the intersection solids of the specified set into one solid is performed. Otherwise the union of solids from the given set is performed by simple moving the faces of all the solids into a new solid.
If the flag of solid set regularity isArray == true, the solids are located at the nodes of rectangular or circular grid and positions of solids are specified in the names of faces.

Parameters:
[in]solids- An array of solids.
[in]sameShells- Whether to copy the solids.
[in]checkIntersect- Whether to check the solids intersection.
[in]names- An object for naming the new objects.
[in]isArray- A flag of solid set regularity.
[out]result- The resultant solid.
[out]notGluedSolids- An array of solids which was not glued.
Returns:
Returns operation result code.
MbResultType UnionSolid ( const RPArray< MbSolid > &  solids,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid from the specified solids without the modification of the given solids.
The union of solids from the specified set is performed by simple moving the faces of all the solids into a new solid.

Parameters:
[in]solids- An array of solids.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
size_t DetachParts ( MbSolid solid,
RPArray< MbSolid > &  parts,
bool  sort,
const MbSNameMaker names 
)

If the source solid is decomposed, the greatest part remains in the source solid, and the other parts are put into the given array of solids.
If 'sort' == 'true', the part with the greatest bounding box will remain in the source solid, and separated parts will be sorted by bounding box size in descending order. Otherwise a part topologically connected with the first face will remain in the source solid and the separated parts will be sorted by the number of the initial face in the source solid.

Parameters:
[in,out]solid- The source solid to be modified.
[out]parts- The separated parts of the solid.
[in]sort- Whether to sort by the bounding box size in descending order.
[in]names- An object for naming the new objects.
Returns:
Returns the number of the separated parts.
size_t CreateParts ( const MbSolid solid,
RPArray< MbSolid > &  parts,
const MbSNameMaker names 
)

If the source solid is decomposed, all the parts of the solid will be put into the given array of solids.
The source solid remains unchanged.

Parameters:
[in]solid- The source solid.
[out]parts- The parts of the solid.
[in]names- An object for naming the new objects.
Returns:
Returns the number of created parts.
MbResultType ThinSolid ( const MbSurface surface,
bool  faceSense,
SweptValues params,
const MbSNameMaker names,
SimpleName  name,
MbSolid *&  result 
)

Create a solid by supplying the surface with a thickness.

Parameters:
[in]surface- The surface.
[in]faceSense- The surface normal orientation.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[in]name- The main simple name.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType HoleSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D place,
const HoleValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a hole, a pocket, a groove in the solid or create a drill, a boss if 'solid' == NULL.

Parameters:
[in]solid- The source solid.
[in]sameShell- Whether to copy the solid.
[in]place- A local coordinate system for the operation.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType ShellPart ( const MbSolid solid,
size_t  id,
const MbPath path,
const MbSNameMaker names,
MbPartSolidIndices partIndices,
MbSolid *&  result 
)

Create a solid from the specified part of decomposing solid. The source solid should consist of separate parts.

Parameters:
[in]solid- A decomposing solid.
[in]id- The number of selected part of the solid.
[in]path- An identifier for the selected part.
[in]names- An object for naming the new objects.
[in,out]partIndices- Indices of the parts of the solid.
[out]result- The resultant shell (solid).
Returns:
Returns operation result code.
MbResultType DuplicationSolid ( const MbSolid solid,
const DuplicationValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Duplicate the solid by the parameters and unite copies in one solid.

Parameters:
[in]solid- The source solid.
[in]params- The parameters of duplication.
[in]names- An object defining a name of the operation.
[out]result- The result solid.
Returns:
.
MbResultType IngotSolid ( RPArray< MbItem > &  solids,
bool  makeCopy,
const MbSNameMaker names,
MbSolid *&  result 
)

Create an ingot solid from the specified solids without the modification of the given solids.
Among the objects sent using the body, insert bodies and assembling bodies of which is built the same body, which in appearance coincides with the bodies had been sent and serves as a substitute for their simplistic external parameters.

Parameters:
[in]solids- An array of solids.
[in]names- An object for naming the new objects.
[in]makeCopy- The flag of the copying solid before using: true - copy solid, false - not copy.
[out]result- The resultant solid.
Returns:
Returns operation result code.
MbResultType CreateFastener ( const RPArray< MbSolid > &  solids,
MbeCopyMode  sameShell,
const MbCartPoint3D point,
const FastenersValues params,
const MbSNameMaker names,
RPArray< MbSolid > &  results 
)

Create fastener using 3D point.

Parameters:
[in]solids- An array of bodies to fasten.
[in]sameShell- Whether to copy the solids.
[in]point- 3d point.
[in]params- Fastener parameters ( type, diameter, etc. ).
[in]names- An object defining the name of a new faces.
[out]results- Array of bodies with a holes and fastener body.
Returns:
Returns operation result code.
MbResultType CreateFasteners ( const RPArray< MbSolid > &  solids,
MbeCopyMode  sameShell,
const MbCurve3D curve,
size_t  number,
const FastenersValues params,
const MbSNameMaker names,
RPArray< MbSolid > &  results 
)

Create an array of fastener elements using 3d curve.

Parameters:
[in]solids- Array of bodies with a hole and fastener body.
[in]sameShell- Whether to copy the solids.
[in]curve- 3D curve.
[in]number- Number of points on the curve. Points are uniformly located along the length of the curve.
[in]params- Fastener parameters ( type, diameter, etc. ).
[in]names- An object defining the name of a new faces.
[out]results- Array of bodies with a holes and fastener bodies.
Returns:
Returns operation result code.
size_t MakeDetachShells ( MbFaceShell solid,
RPArray< MbFaceShell > &  partSolid,
bool  sort 
)

Divide disconnected parts of a face set into connected sets of faces - shells. One connected shell (if sort=true, then it is the greatest by the bounding box diagonal) remains in the initial set of faces 'solid'. Separated face sets are put into container partSolid.

Parameters:
[in,out]solid- Initial face set, in output - one of the connected shells.
[out]partSolid- Set of all connected parts except one.
[in]sort- If true, then the shells should be sorted in partSolid by decreasing the bounding box diagonals.
Returns:
Number of shells in container partSolid.
MbCreator* CreateDetach ( MbFaceShell solid,
RPArray< MbFaceShell > &  partSolid,
bool  sort,
const MbSNameMaker n,
MbResultType res 
)

Divide disconnected parts of a face set into connected sets of faces - shells. The function simultaneously creates the shell and its constructor.

Parameters:
[in,out]solid- The initial shell.
[out]partSolid- Set of all the connected parts - shells.
[in]sort- If true, then the shells should be sorted in partSolid by decreasing the bounding box diagonals.
[in]n- An object for naming faces.
[out]res- Operation result code.
Returns:
Returns the constructor.
MbCreator* CreateDuplication ( const MbFaceShell solid,
const DuplicationValues params,
const MbSNameMaker operNames,
MbResultType res,
MbFaceShell *&  shell 
)

For a given shell and duplication parameters construct a shell as a result of a union of copies.
The function simultaneously constructs the shell and creates its constructor.

Parameters:
[in]solid- Original face set.
[in]params- Parameters of duplication.
[in]operNames- An object defining a name of the operation.
[out]duplSolid- Constructed set of faces.
[out]res- Operation result code.
Returns:
Returns the constructor if the operation has been successfully performed.
MbCreator* CreateElementary ( const SArray< MbCartPoint3D > &  points,
ElementaryShellType  t,
const MbSNameMaker n,
MbResultType res,
MbFaceShell *&  shell 
)

Create an elementary solid shell by a set of support points and type:
solidType = et_Sphere - a sphere (3 points),
solidType = et_Torus - a torus (3 points),
solidType = et_Cylinder - a cylinder (3 points),
solidType = et_Cone - a cone (3 points),
solidType = et_Block - a block (4 points),
solidType = et_Wedge - a wedge (4 points),
solidType = et_Prism - a prism (points count is equal to the base vertices count + 1),
solidType = et_Pyramid - a pyramid (points count is equal to the base vertices count + 1),
solidType = et_Plate - a plate (4 points).
The function simultaneously constructs the shell and creates its constructor.

Parameters:
[in]points- Set of support points.
[in]t- Eementary solid type.
[in]n- An object defining a name of the operation.
[out]res- Operation result code.
[out]shell- Shell - the result of construction.
Returns:
Returns the constructor.
MbCreator* CreateElementary ( const MbElementarySurface surface,
const MbSNameMaker n,
MbResultType res,
MbFaceShell *&  shell 
)

Create an elementary solid shell by an elementary surface.
The function simultaneously constructs the shell and creates its constructor.

Parameters:
[in]surface- Elementary surface.
The acceptable surface types are sphere, torus, cylinder, cone.
[in]n- An object defining a name of the operation.
[out]res- Operation result code.
[out]shell- Shell - the result of operation.
Returns:
Returns the constructor.
MbCreator* RestoreSideEdges ( MbFaceShell initialShell,
const MbeCopyMode  sameShell,
const RPArray< MbFace > &  outerFaces,
const bool  strict,
RPArray< MbSheetMetalBend > &  resultBends,
const MbSNameMaker nameMaker,
MbResultType res,
MbFaceShell *&  shell 
)

Construct a shell with restored side edges of bends.
The function simultaneously creates the shell and its constructor.

Parameters:
[in]initialShell- The initial shell.
[in]sameShell- Mode of copying the initial shell.
[in]outerFaces- Faces of bends.
[in]strict- Restore all edges.
[in]resultBends- Constructed bends names.
[in]nameMaker- An object for naming faces.
[out]res- Operation result code.
[out]shell- The resultant shell.
Returns:
Returns the shell constructor.
bool CreateShell ( MbFaceShell *&  shell,
const RPArray< MbCreator > &  creators,
MbeCopyMode  copyMode 
)

Create a shell by history tree.

bool CreateShell ( MbFaceShell *&  shell,
const std::vector< SPtr< MbCreator > > &  creators,
MbeCopyMode  copyMode 
)

Create a shell by history tree.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines