C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
+ Collaboration diagram for Solid Modeling:

Functions

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. More...
 
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. More...
 
MbResultType CreateMerging (MbSolid &solid, MbeCopyMode sameShell, c3d::FacesVector &faces, const MbNurbsParameters &uParam, const MbNurbsParameters &vParam, double tolerance, const MbSNameMaker &names, bool prolong, MbSolid *&result)
 Create a solid with one face instead selected faces. More...
 
MbResultType TouchedSolidsMerging (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, const MbSNameMaker &names, double precision, MbSolid *&result)
 The function performs unite the bodies with contacted faces. More...
 
MbResultType SolidRepairing (MbSolid &solid, double accuracy)
 Solid repairing. More...
 
void FindFilletFaces (const RPArray< MbFace > &faces, double accuracy, RPArray< MbFace > &filletFaces)
 Find fillet and chamfer faces. More...
 
bool IsFilletFace (const MbFace &face, double accuracy)
 Recognize fillet face. More...
 
MbResultType ElementarySolid (const MbElementarySolidParams &params, c3d::SolidSPtr &result)
 Create an elementary solid. More...
 
MbResultType ElementarySolid (const MbElementarySolidParams &params, MbElementarySolidResults &results)
 Create an elementary solid. More...
 
MbResultType MeshSolid (const MbMesh &mesh, const MbGridShellParams &params, c3d::SolidSPtr &result)
 Create a solid on the basis of a polygonal geometric object. More...
 
MbResultType GridSolid (const MbGrid &grid, const MbGridShellParams &params, c3d::SolidSPtr &result)
 Create a solid on the basis of a triangulation. More...
 
MbResultType CollectionSolid (const MbCollection &collection, const MbGridShellParams &params, c3d::SolidSPtr &result)
 Create a solid on the basis of collection of elements. More...
 
MbSolidCreateSolid (MbFaceShell &shell, const MbSNameMaker &names)
 Create a solid with a given shell. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
MbResultType EvolutionShell (const MbEvolutionShellParams &evolShellParams, c3d::SolidSPtr &result)
 Create a sweeping solid. More...
 
MbResultType LoftedSolid (const MbLoftedSolidParams &loftSolParams, c3d::SolidSPtr &result)
 Create a solid from a space sections. More...
 
MbResultType LoftedSolid (SArray< MbPlacement3D > &places, RPArray< MbContour > &planeConours, const MbCurve3D *spine, const LoftedValues &params, SArray< MbCartPoint3D > *guidePoints, const MbSNameMaker &operName, RPArray< MbSNameMaker > &contourNames, MbSolid *&result)
 Create a solid from a planar sections. More...
 
MbResultType LoftedSolid (SArray< MbPlacement3D > &places, RPArray< MbContour > &planeConours, const MbCurve3D *spine, const LoftedValues &params, RPArray< MbCurve3D > *guideCurves, SArray< MbCartPoint3D > *guidePoints, const MbSNameMaker &operName, RPArray< MbSNameMaker > &contourNames, MbSolid *&result)
 Create a solid from a space sections. More...
 
MbResultType LoftedSolid (RPArray< MbSurface > &surfaces, RPArray< MbContour > &planeConours, const MbCurve3D *spine, const LoftedValues &params, RPArray< MbCurve3D > *guideCurves, SArray< MbCartPoint3D > *guidePoints, const MbSNameMaker &operName, RPArray< MbSNameMaker > &contourNames, MbSolid *&result)
 Create a solid from a space sections. More...
 
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. More...
 
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. More...
 
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. More...
 
MbResultType EvolutionResult (const c3d::SolidSPtr &srcSolid, const MbeCopyMode copyMode, OperationType oType, const MbEvolutionShellParams &evShellParams, c3d::SolidSPtr &result)
 Create an evolution solid and perform a boolean operation. More...
 
MbResultType LoftedResult (const c3d::SolidSPtr &srcSolid, const MbeCopyMode copyMode, const MbLoftedSolidParams &loftSolParams, c3d::SolidSPtr &result)
 Create a solid from the planar sections and perform a boolean operation. More...
 
MbResultType LoftedResult (MbSolid &srcSolid, MbeCopyMode copyMode, SArray< MbPlacement3D > &places, RPArray< MbContour > &planeConours, const MbCurve3D *spine, const LoftedValues &params, OperationType oType, SArray< MbCartPoint3D > *guidePoints, const MbSNameMaker &operName, RPArray< MbSNameMaker > &contourNames, MbSolid *&result)
 Create a solid from the planar sections and perform a boolean operation. More...
 
MbResultType LoftedResult (MbSolid &srcSolid, MbeCopyMode copyMode, RPArray< MbSurface > &surfaces, RPArray< MbContour > &planeConours, const MbCurve3D *spine, const LoftedValues &params, OperationType oType, RPArray< MbCurve3D > *guideCurves, SArray< MbCartPoint3D > *guidePoints, const MbSNameMaker &operName, RPArray< MbSNameMaker > &contourNames, MbSolid *&result)
 Create a solid from the space sections and perform a boolean operation. More...
 
MbResultType BooleanResult (const c3d::SolidSPtr &solid1, MbeCopyMode sameShell1, const c3d::SolidSPtr &solid2, MbeCopyMode sameShell2, const MbBooleanOperationParams &params, c3d::SolidSPtr &result)
 Perform a Boolean operation. More...
 
MbResultType SolidCutting (const c3d::SolidSPtr &solid, MbeCopyMode sameShell, const MbShellCuttingParams &cuttingParams, c3d::SolidsSPtrVector &results)
 Cut a solid into parts. More...
 
MbResultType SymmetrySolid (MbSolid &solid, MbeCopyMode sameShell, const MbSymmetrySolidParams &symParams, c3d::SolidSPtr &result)
 Create a symmetric solid relative to a plane. More...
 
MbResultType RibSolid (MbSolid &solid, MbeCopyMode sameShell, const MbPlacement3D &place, const MbContour &contour, size_t index, const RibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Create a solid with a rib. More...
 
MbResultType RibSolid (MbSolid &solid, MbeCopyMode sameShell, const MbRibSolidParameters &pars, c3d::SolidSPtr &result)
 Create a solid with a rib. More...
 
MbResultType RibElement (const MbSolid &solid, const MbPlacement3D &place, MbContour &contour, size_t index, const RibValues &pars, const MbSNameMaker &names, MbSolid *&result)
 Create a separate rib. More...
 
MbResultType RibElement (const MbSolid &solid, const MbRibSolidParameters &pars, c3d::SolidSPtr &result)
 Create a separate rib. More...
 
MbResultType FilletSolid (MbSolid &solid, MbeCopyMode sameShell, const MbShellFilletValues &filletParams, c3d::SolidSPtr &result, IProgressIndicator *progInd=nullptr)
 Fillet edges of a solid. More...
 
MbResultType FullFilletSolid (MbSolid &solid, MbeCopyMode sameShell, const MbShellFullFilletParams &filletParams, c3d::SolidSPtr &result)
 Create a fillet of faces of the solid. More...
 
MbResultType ChamferSolid (MbSolid &solid, MbeCopyMode sameShell, const MbShellChamferParams &chamferParams, c3d::SolidSPtr &result)
 Create chamfers for edges of the solid. More...
 
MbResultType OffsetSolid (MbSolid &solid, MbeCopyMode sameShell, double offset, const MbSNameMaker &names, MbSolid *&result)
 Create а equidistant solid. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
MbResultType DraftSolid (MbSolid &solid, MbeCopyMode sameShell, const MbDraftSolidParams &draftParams, c3d::SolidSPtr &result)
 Slope the specified faces of the solid. More...
 
MbResultType DraftSolid (MbSolid &solid, MbeCopyMode sameShell, const MbDraftSolidParams &draftParams, MbDraftSolidResults &result)
 Slope the specified faces of the solid. More...
 
MbResultType UnionResult (MbSolid *solid, MbeCopyMode sameShell, RPArray< MbSolid > &solids, MbeCopyMode sameShells, OperationType oType, bool checkIntersect, const MbMergingFlags &mergeFlags, const MbSNameMaker &names, bool isArray, MbSolid *&result, RPArray< MbSolid > *notGluedSolids=nullptr)
 Perform the union of intersecting solids. More...
 
MbResultType UnionSolid (RPArray< MbSolid > &solids, MbeCopyMode sameShells, bool checkIntersect, const MbSNameMaker &names, bool isArray, MbSolid *&result, RPArray< MbSolid > *notGluedSolids=nullptr)
 Create a solid from the specified solids. More...
 
MbResultType UnionSolid (const RPArray< MbSolid > &solids, const MbSNameMaker &names, MbSolid *&result)
 Create a solid from the specified solids. More...
 
MbResultType UnionSolid (const c3d::SolidsVector &solids, const MbSNameMaker &names, MbSolid *&result)
 Create a solid from the specified solids. More...
 
MbResultType UnionSolid (const c3d::SolidsSPtrVector &solids, const MbSNameMaker &names, MbSolid *&result)
 Create a solid from the specified solids. More...
 
size_t DetachParts (MbSolid &solid, RPArray< MbSolid > &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t DetachParts (MbSolid &solid, c3d::SolidsVector &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t DetachParts (MbSolid &solid, c3d::SolidsSPtrVector &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t CreateParts (const MbSolid &solid, RPArray< MbSolid > &parts, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t CreateParts (const MbSolid &solid, c3d::SolidsVector &parts, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t CreateParts (const MbSolid &solid, c3d::SolidsSPtrVector &parts, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t CreateParts (const MbSolid &solid, RPArray< MbSolid > &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t CreateParts (const MbSolid &solid, c3d::SolidsVector &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
size_t CreateParts (const MbSolid &solid, c3d::SolidsSPtrVector &parts, bool sort, const MbSNameMaker &names)
 Split the solid into separate parts. More...
 
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. More...
 
MbResultType HoleSolid (const c3d::SolidSPtr &solid, MbeCopyMode sameShell, const MbHoleSolidParams &params, c3d::SolidSPtr &result)
 Create a hole, a pocket, a groove in the solid. More...
 
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. More...
 
MbResultType ShellPart (const MbSolid &solid, const MbShellPartParams &params, MbShellPartResults &result)
 Extract the specified part of a decomposing solid. More...
 
MbResultType DuplicationSolid (const MbSolid &solid, const MbDuplicationSolidParams &params, c3d::SolidSPtr &result)
 Duplicate the solid. More...
 
MbResultType IngotSolid (RPArray< MbItem > &solids, bool makeCopy, const MbSNameMaker &names, MbSolid *&ingotResult)
 Create an ingot solid from the specified objects. More...
 
MbResultType IngotSolid (bool makeCopy, const MbIngotSolidParams &params, c3d::SolidSPtr &resIngot)
 Create an ingot solid from the specified objects. More...
 
size_t MakeDetachShells (MbFaceShell &solid, RPArray< MbFaceShell > &partSolid, bool sort)
 Divide disconnected parts of a face set into connected sets of faces. More...
 
size_t MakeDetachShells (MbFaceShell &solid, c3d::ShellsVector &partSolid, bool sort)
 Divide disconnected parts of a face set into connected sets of faces. More...
 
size_t MakeDetachShells (MbFaceShell &solid, c3d::ShellsSPtrVector &partSolid, bool sort)
 Divide disconnected parts of a face set into connected sets of faces. More...
 
template<class ShellsVector >
MbCreatorCreateDetach (MbFaceShell &solid, ShellsVector &partSolid, bool sort, const MbSNameMaker &n, MbResultType &res)
 Divide disconnected parts of a face set into connected sets of faces. More...
 
MbCreatorCreateDuplication (const MbFaceShell &solid, const MbDuplicationSolidParams &params, MbResultType &res, c3d::ShellSPtr &resShell)
 Create a shell of duplication of original shell. More...
 
DEPRECATE_DECLARE MbCreatorCreateElementary (const MbElementarySolidParams &params, MbResultType &res, c3d::ShellSPtr &shell)
 Create a shell of an elementary solid. More...
 
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. More...
 
bool CreateShell (MbFaceShell *&shell, const RPArray< MbCreator > &creators, MbeCopyMode copyMode)
 Create a shell by history tree. More...
 
bool CreateShell (MbFaceShell *&shell, const std::vector< SPtr< MbCreator > > &creators, MbeCopyMode copyMode)
 Create a shell by history tree. More...
 

Detailed Description

Function Documentation

◆ CreateFastener()

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.

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.

◆ CreateFasteners()

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.

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.

◆ CreateMerging()

MbResultType CreateMerging ( MbSolid solid,
MbeCopyMode  sameShell,
c3d::FacesVector &  faces,
const MbNurbsParameters uParam,
const MbNurbsParameters vParam,
double  tolerance,
const MbSNameMaker names,
bool  prolong,
MbSolid *&  result 
)

Create a solid with one face instead selected faces.

To replace these smooth abutting faces to form a single geometrically matching face.

Parameters
[in]solid- The source solid.
[in]sameShell- Whether to copy the source solid.
[in]faces- The faces of solid to be merged.
[in]uParam- The operation parameters for common surface in u direction.
[in]vParam- The operation parameters for common surface in v direction.
[in]names- An object for naming the new objects.
[in]prolong- The parameter of adding prolong faces (prolong>0).
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ TouchedSolidsMerging()

MbResultType TouchedSolidsMerging ( MbSolid solid1,
MbeCopyMode  sameShell1,
MbSolid solid2,
MbeCopyMode  sameShell2,
const MbSNameMaker names,
double  precision,
MbSolid *&  result 
)

The function performs unite the bodies with contacted faces.

The function performs unite the bodies and removing the contacting faces.

Parameters
[in]solid1- The first solid.
[in]sameShell1- Method of copying the faces of the first solid.
[in]solid2- The second solid.
[in]sameShell2- Method of copying the faces of the second solid.
[in]precision- The precision of operation.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ SolidRepairing()

MbResultType SolidRepairing ( MbSolid solid,
double  accuracy 
)

Solid repairing.

Find defects and repair faces, edges, vertices of the solid.

Parameters
[in]solid- The initial solid.
[in]accuracy- The accuracy for finding defects of the solid.
Returns
Returns operation result code.

◆ FindFilletFaces()

void FindFilletFaces ( const RPArray< MbFace > &  faces,
double  accuracy,
RPArray< MbFace > &  filletFaces 
)

Find fillet and chamfer faces.

Find fillet and chamfer faces and add them into container.

Parameters
[in]faces- Faces for check.
[in]accuracy- The accuracy for finding.
[in]filletFaces- Found fillet and chamfer faces.

◆ IsFilletFace()

bool IsFilletFace ( const MbFace face,
double  accuracy 
)

Recognize fillet face.

If face is fillet, then recognize face.

Parameters
[in]face- Face for recognize.
[in]accuracy- The accuracy for recognize.
Returns
Returns true, if face is recognized as a fillet, else returns false.

◆ ElementarySolid() [1/2]

MbResultType ElementarySolid ( const MbElementarySolidParams params,
c3d::SolidSPtr result 
)

Create an elementary solid.

Create one of the elementary solids according to the specified parameters.

  1. 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), in the case of non-frustum cone, (4 points), in the case of frustum cone,
    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),
    solidType = et_Icosahedron - an icosahedron (3 points),
    solidType = et_Polyhedron - a polyhedron (3 points),
    solidType = et_Tetrapipe - a tetra-pipe (3 points),
    solidType = et_Octapipe - an octa-pipe (3 points).
  2. Create a solid from an elementary surface.
    The only acceptable surface types are cylinder, cone, sphere, torus.
    Parameters
    [in]params- Parameters of operation. ~
    [out]result- The resultant solid.
    Returns
    Returns operation result code.

◆ ElementarySolid() [2/2]

MbResultType ElementarySolid ( const MbElementarySolidParams params,
MbElementarySolidResults results 
)

Create an elementary solid.

Create one of the elementary solids according to the specified parameters.

  1. 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), in the case of non-frustum cone, (4 points), in the case of frustum cone,
    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),
    solidType = et_Icosahedron - an icosahedron (3 points),
    solidType = et_Polyhedron - a polyhedron (3 points),
    solidType = et_Tetrapipe - a tetra-pipe (3 points),
    solidType = et_Octapipe - an octa-pipe (3 points).
  2. Create a solid from an elementary surface.
    The only acceptable surface types are cylinder, cone, sphere, torus.
    Parameters
    [in]params- Parameters of operation. ~
    [out]results- The operation result.
    Returns
    Returns operation result code.

◆ MeshSolid()

MbResultType MeshSolid ( const MbMesh mesh,
const MbGridShellParams params,
c3d::SolidSPtr result 
)

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

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

Parameters
[in]mesh- The polygonal geometric object.
[in]params- The operation parameters (including a progress indicator).
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ GridSolid()

MbResultType GridSolid ( const MbGrid grid,
const MbGridShellParams params,
c3d::SolidSPtr result 
)

Create a solid on the basis of a triangulation.

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

Parameters
[in]grid- The polygonal geometric object.
[in]params- The operation parameters (including a progress indicator).
[in]names- An object for naming the new objects.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ CollectionSolid()

MbResultType CollectionSolid ( const MbCollection collection,
const MbGridShellParams params,
c3d::SolidSPtr result 
)

Create a solid on the basis of collection of elements.

Create a solid MbSolid on the basis of collection of elements MbCollection.

Parameters
[in]collection- The elements collection.
[in]params- Operation parameters.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ CreateSolid()

MbSolid* CreateSolid ( MbFaceShell shell,
const MbSNameMaker names 
)

Create a solid with a given shell.

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.

◆ ExtrusionSolid()

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.

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 names generation in 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.

◆ RevolutionSolid()

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.

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 names generation in 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.

◆ EvolutionSolid() [1/2]

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.

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 names generation in 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.

◆ EvolutionSolid() [2/2]

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.

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

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 names generation in 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.

◆ EvolutionShell()

MbResultType EvolutionShell ( const MbEvolutionShellParams evolShellParams,
c3d::SolidSPtr result 
)

Create a sweeping solid.

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

Parameters
[in]evolShellParams- The source data to make the operation.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.

◆ LoftedSolid() [1/4]

MbResultType LoftedSolid ( const MbLoftedSolidParams loftSolParams,
c3d::SolidSPtr result 
)

Create a solid from a space sections.

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

Parameters
[in]loftSolParams- The source data to make the operation.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.

◆ LoftedSolid() [2/4]

MbResultType LoftedSolid ( SArray< MbPlacement3D > &  places,
RPArray< MbContour > &  planeConours,
const MbCurve3D spine,
const LoftedValues params,
SArray< MbCartPoint3D > *  guidePoints,
const MbSNameMaker operName,
RPArray< MbSNameMaker > &  contourNames,
MbSolid *&  result 
)

Create a solid from a planar sections.

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

Parameters
[in]places- An array of generating contours coordinate systems.
[in]planeConours- An array of generating contours.
[in]spine- A guide curve (can be nullptr).
[in]params- The operation parameters.
[in]guidePoints- A point array on the generating contours which determines the start points of the contours.
[in]operName- An object defining names generation in the operation.
[in]contourNames- The objects defining the names of generating contours.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use LoftedSolid with the parameter list MbLoftedSolidParams.

◆ LoftedSolid() [3/4]

MbResultType LoftedSolid ( SArray< MbPlacement3D > &  places,
RPArray< MbContour > &  planeConours,
const MbCurve3D spine,
const LoftedValues params,
RPArray< MbCurve3D > *  guideCurves,
SArray< MbCartPoint3D > *  guidePoints,
const MbSNameMaker operName,
RPArray< MbSNameMaker > &  contourNames,
MbSolid *&  result 
)

Create a solid from a space sections.

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

Parameters
[in]places- An array of generating contours coordinate systems.
[in]planeConours- An array of generating contours.
[in]spine- A guide curve (can be nullptr).
[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]guidePoints- A point array on the generating contours which determines the corresponding points of the contours (chains of points).
[in]operName- An object defining names generation in the operation.
[in]contourNames- The objects defining the names of generating contours.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use LoftedSolid with the parameter list MbLoftedSolidParams.

◆ LoftedSolid() [4/4]

MbResultType LoftedSolid ( RPArray< MbSurface > &  surfaces,
RPArray< MbContour > &  planeConours,
const MbCurve3D spine,
const LoftedValues params,
RPArray< MbCurve3D > *  guideCurves,
SArray< MbCartPoint3D > *  guidePoints,
const MbSNameMaker operName,
RPArray< MbSNameMaker > &  contourNames,
MbSolid *&  result 
)

Create a solid from a space sections.

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

Parameters
[in]surfaces- An array of surfaces of generating contours.
[in]planeConours- An array of generating contours.
[in]spine- A guide curve (can be nullptr).
[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]guidePoints- A point array on the generating contours which determines the corresponding points of the contours (chains of points).
[in]operName- An object defining names generation in the operation.
[in]contourNames- The objects defining the names of generating contours.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use LoftedSolid with the parameter list MbLoftedSolidParams.

◆ ExtrusionResult()

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.

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 names generation in the operation.
[in]contoursNames- The objects defining the names of generating lines.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ RevolutionResult()

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.

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 names generation in the operation.
[in]contoursNames- The objects defining the names of generating lines.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ EvolutionResult() [1/2]

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.

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 sweeping 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.

◆ EvolutionResult() [2/2]

MbResultType EvolutionResult ( const c3d::SolidSPtr srcSolid,
const MbeCopyMode  copyMode,
OperationType  oType,
const MbEvolutionShellParams evShellParams,
c3d::SolidSPtr result 
)

Create an evolution solid and perform a boolean operation.

Create an evolution solid and perform a boolean operation with "srcSolid" solid. Following types of Boolean operation are supported:

  • bo_Union - union,
  • bo_Intersect - intersection,
  • bo_Difference - subtraction.
    Parameters
    [in]srcSolid- The first solid for a boolean operation.
    [in]copyMode- Whether to copy the solid.
    [in]oType- A boolean operation type.
    [in]evShellParams- The source data for making evolution solid.
    [out]result- The resultant solid.
    Returns
    Returns operation result code.

◆ LoftedResult() [1/3]

MbResultType LoftedResult ( const c3d::SolidSPtr srcSolid,
const MbeCopyMode  copyMode,
const MbLoftedSolidParams loftSolParams,
c3d::SolidSPtr result 
)

Create a solid from the planar sections and perform a boolean operation.

The source data to create a solid from the planar sections and after that to perform a boolean operation. Following types of Boolean operation are supported:

  • bo_Union - union,
  • bo_Intersect - intersection,
  • bo_Difference - subtraction.
    Parameters
    [in]srcSolid- The first solid for a boolean operation.
    [in]copyMode- Whether to copy the solid.
    [in]loftSolParams- The source data to make the operation.
    [out]result- The resultant solid.
    Returns
    Returns operation result code.

◆ LoftedResult() [2/3]

MbResultType LoftedResult ( MbSolid srcSolid,
MbeCopyMode  copyMode,
SArray< MbPlacement3D > &  places,
RPArray< MbContour > &  planeConours,
const MbCurve3D spine,
const LoftedValues params,
OperationType  oType,
SArray< MbCartPoint3D > *  guidePoints,
const MbSNameMaker operName,
RPArray< MbSNameMaker > &  contourNames,
MbSolid *&  result 
)

Create a solid from the planar sections and perform a boolean operation.

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]srcSolid- The first solid for a boolean operation.
[in]copyMode- Whether to copy the solid.
[in]places- An array of generating contours coordinate systems.
[in]planeConours- An array of generating contours.
[in]spine- A guide curve (can be nullptr).
[in]params- The operation parameters.
[in]oType- A boolean operation type.
[in]guidePoints- A point array on the generating contours which determines the start points of the contours.
[in]operName- An object defining names generation in the operation.
[in]contourNames- The objects defining the names of generating contours.
[out]result- The resultant solid.
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use LoftedResult with the parameter list MbLoftedSolidParams.

◆ LoftedResult() [3/3]

MbResultType LoftedResult ( MbSolid srcSolid,
MbeCopyMode  copyMode,
RPArray< MbSurface > &  surfaces,
RPArray< MbContour > &  planeConours,
const MbCurve3D spine,
const LoftedValues params,
OperationType  oType,
RPArray< MbCurve3D > *  guideCurves,
SArray< MbCartPoint3D > *  guidePoints,
const MbSNameMaker operName,
RPArray< MbSNameMaker > &  contourNames,
MbSolid *&  result 
)

Create a solid from the space sections and perform a boolean operation.

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]srcSolid- The first solid for a boolean operation.
[in]copyMode- Whether to copy the solid.
[in]surfaces- An array of generating contours surfaces.
[in]planeConours- An array of generating contours.
[in]spine- A guide curve (can be nullptr).
[in]params- The operation parameters.
[in]oType- A boolean operation type.
[in]guideCurves- An array of the guide curves.
[in]guidePoints- A point array on the generating contours which determines the start points of the contours.
[in]operName- An object defining names generation in the operation.
[in]contourNames- The objects defining the names of generating contours.
[out]result- The resultant solid.
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use LoftedResult with the parameter list MbLoftedSolidParams.

◆ BooleanResult()

MbResultType BooleanResult ( const c3d::SolidSPtr solid1,
MbeCopyMode  sameShell1,
const c3d::SolidSPtr solid2,
MbeCopyMode  sameShell2,
const MbBooleanOperationParams params,
c3d::SolidSPtr result 
)

Perform a Boolean operation.

The function performs the specified Boolean operation on two solids with faces and edges merging control.

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]params- A Boolean operation parameters.
[out]result- Constructed set of faces.
Returns
Returns operation result code.

◆ SolidCutting()

MbResultType SolidCutting ( const c3d::SolidSPtr solid,
MbeCopyMode  sameShell,
const MbShellCuttingParams cuttingParams,
c3d::SolidsSPtrVector &  results 
)

Cut a solid into parts.

Cut a solid into parts.

Parameters
[in]solid- The source solid.
[in]sameShell- The mode of copying of the source solid.
[in]cuttingParams- Operation parameters.
[out]results- The resultant solids.
Returns
Returns operation result code.

◆ SymmetrySolid()

MbResultType SymmetrySolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbSymmetrySolidParams symParams,
c3d::SolidSPtr result 
)

Create a symmetric solid relative to a plane.

Create a symmetric solid relative to XY-plane of a local coordinate system.
If symParams._side = bo_Difference, then 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. If symParams._side = bo_Unknown and sameShell = cm_Copy, then the function create a mirror copy of a solid relative to the XY-plane of a local coordinate system

Parameters
[in]solid- The source shell.
[in]sameShell- Whether to copy the shell.
[in]symParams- Parameters list.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.

◆ RibSolid() [1/2]

MbResultType RibSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbPlacement3D place,
const MbContour contour,
size_t  index,
const RibValues pars,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid with a rib.

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.

Deprecated:
The function is deprecated, instead use RibSolid with the parameter list MbRibSolidParameters.
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.

◆ RibSolid() [2/2]

MbResultType RibSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbRibSolidParameters pars,
c3d::SolidSPtr result 
)

Create a solid with a rib.

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]pars- Parameters of a rib.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ RibElement() [1/2]

MbResultType RibElement ( const MbSolid solid,
const MbPlacement3D place,
MbContour contour,
size_t  index,
const RibValues pars,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a separate rib.

Create a separate rib for source solid without gluing.

Deprecated:
The function is deprecated, instead use RibElement with the parameter list MbRibSolidParameters.
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.

◆ RibElement() [2/2]

MbResultType RibElement ( const MbSolid solid,
const MbRibSolidParameters pars,
c3d::SolidSPtr result 
)

Create a separate rib.

Create a separate rib for source solid without gluing.

Parameters
[in]solid- The source solid.
[in]pars- Parameters of a rib.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ FilletSolid()

MbResultType FilletSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbShellFilletValues filletParams,
c3d::SolidSPtr result,
IProgressIndicator progInd = nullptr 
)

Fillet edges of a solid.

Fillet the specified edges of the solid.
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.
Ways to fillet edges of a solid:

  • Fillet the specified edges of the solid with a constant radius.
  • 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.
  • Fillet the given edges of the solid with a variable radius specified by MbEdgeFunction.function. The parameters of the cross-section can vary by the specified law.
    The way of creating a fillet is determined by a set of parameters in MbShellChamferParams.
    Parameters
    [in]solid- The source solid.
    [in]sameShell- Whether to copy the input solid.
    [in]filletParams- The operation parameters.
    [out]result- The resultant shell (solid).
    Returns
    Returns operation result code.

◆ FullFilletSolid()

MbResultType FullFilletSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbShellFullFilletParams filletParams,
c3d::SolidSPtr result 
)

Create a fillet of faces of the solid.

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]filletParams- Parameters of fillet.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.

◆ ChamferSolid()

MbResultType ChamferSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbShellChamferParams chamferParams,
c3d::SolidSPtr result 
)

Create chamfers for edges of the solid.

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]chamferParams- The operation parameters.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.

◆ OffsetSolid()

MbResultType OffsetSolid ( MbSolid solid,
MbeCopyMode  sameShell,
double  offset,
const MbSNameMaker names,
MbSolid *&  result 
)

Create а equidistant solid.

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.

◆ ThinSolid() [1/3]

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.

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.

◆ ThinSolid() [2/3]

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.

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.

◆ SplitSolid() [1/2]

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.

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.

◆ SplitSolid() [2/2]

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.

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.

◆ DraftSolid() [1/3]

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.

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.

◆ DraftSolid() [2/3]

MbResultType DraftSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbDraftSolidParams draftParams,
c3d::SolidSPtr result 
)

Slope the specified faces of the solid.

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

Parameters
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]draftParams- Draft parameters.
[out]result- The resultant solid.
Returns
Returns operation result code.

◆ DraftSolid() [3/3]

MbResultType DraftSolid ( MbSolid solid,
MbeCopyMode  sameShell,
const MbDraftSolidParams draftParams,
MbDraftSolidResults result 
)

Slope the specified faces of the solid.

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

Parameters
[in]solid- The source solid.
[in]sameShell- Whether to copy the input solid.
[in]draftParams- Draft parameters.
[out]result- Results of creating a draft's solid.
Returns
Returns operation result code.

◆ UnionResult()

MbResultType UnionResult ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbSolid > &  solids,
MbeCopyMode  sameShells,
OperationType  oType,
bool  checkIntersect,
const MbMergingFlags mergeFlags,
const MbSNameMaker names,
bool  isArray,
MbSolid *&  result,
RPArray< MbSolid > *  notGluedSolids = nullptr 
)

Perform the union of intersecting solids.

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- Control flags of shell items merging.
[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.

◆ UnionSolid() [1/4]

MbResultType UnionSolid ( RPArray< MbSolid > &  solids,
MbeCopyMode  sameShells,
bool  checkIntersect,
const MbSNameMaker names,
bool  isArray,
MbSolid *&  result,
RPArray< MbSolid > *  notGluedSolids = nullptr 
)

Create a solid from the specified solids.

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.

◆ UnionSolid() [2/4]

MbResultType UnionSolid ( const RPArray< MbSolid > &  solids,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid from the specified solids.

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.

◆ UnionSolid() [3/4]

MbResultType UnionSolid ( const c3d::SolidsVector &  solids,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid from the specified solids.

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.

◆ UnionSolid() [4/4]

MbResultType UnionSolid ( const c3d::SolidsSPtrVector &  solids,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid from the specified solids.

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.

◆ DetachParts() [1/3]

size_t DetachParts ( MbSolid solid,
RPArray< MbSolid > &  parts,
bool  sort,
const MbSNameMaker names 
)

Split the solid into separate parts.

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.

◆ DetachParts() [2/3]

size_t DetachParts ( MbSolid solid,
c3d::SolidsVector &  parts,
bool  sort,
const MbSNameMaker names 
)

Split the solid into separate parts.

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.

◆ DetachParts() [3/3]

size_t DetachParts ( MbSolid solid,
c3d::SolidsSPtrVector &  parts,
bool  sort,
const MbSNameMaker names 
)

Split the solid into separate parts.

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.

◆ CreateParts() [1/6]

size_t CreateParts ( const MbSolid solid,
RPArray< MbSolid > &  parts,
const MbSNameMaker names 
)

Split the solid into separate parts.

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.

◆ CreateParts() [2/6]

size_t CreateParts ( const MbSolid solid,
c3d::SolidsVector &  parts,
const MbSNameMaker names 
)

Split the solid into separate parts.

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.

◆ CreateParts() [3/6]

size_t CreateParts ( const MbSolid solid,
c3d::SolidsSPtrVector &  parts,
const MbSNameMaker names 
)

Split the solid into separate parts.

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.

◆ CreateParts() [4/6]

size_t CreateParts ( const MbSolid solid,
RPArray< MbSolid > &  parts,
bool  sort,
const MbSNameMaker names 
)

Split the solid into separate parts.

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]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 created parts.

◆ CreateParts() [5/6]

size_t CreateParts ( const MbSolid solid,
c3d::SolidsVector &  parts,
bool  sort,
const MbSNameMaker names 
)

Split the solid into separate parts.

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]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 created parts.

◆ CreateParts() [6/6]

size_t CreateParts ( const MbSolid solid,
c3d::SolidsSPtrVector &  parts,
bool  sort,
const MbSNameMaker names 
)

Split the solid into separate parts.

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]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 created parts.

◆ ThinSolid() [3/3]

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.

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.

◆ HoleSolid()

MbResultType HoleSolid ( const c3d::SolidSPtr solid,
MbeCopyMode  sameShell,
const MbHoleSolidParams params,
c3d::SolidSPtr result 
)

Create a hole, a pocket, a groove in the solid.

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

Parameters
[in]solid- The source solid.
[in]sameShell- Whether to copy the solid.
[in]params- Parameters for creating a shell with a hole.
[out]result- The operation results.
Returns
Returns operation result code.

◆ ShellPart() [1/2]

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.

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

Deprecated:
The function is deprecated, instead use ShellPart with the parameter list MbShellPartParams.
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.

◆ ShellPart() [2/2]

MbResultType ShellPart ( const MbSolid solid,
const MbShellPartParams params,
MbShellPartResults result 
)

Extract the specified part of a decomposing solid.

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]params- Parameters for decomposing solid to a separate solid.
[out]result- The operation results.
Returns
Returns operation result code.

◆ DuplicationSolid()

MbResultType DuplicationSolid ( const MbSolid solid,
const MbDuplicationSolidParams params,
c3d::SolidSPtr result 
)

Duplicate the solid.

Duplicate the solid according to the parameters and unite copies into a single solid.

Parameters
[in]solid- The source solid.
[in]params- The parameters of duplication.
[out]result- The result solid.
Returns
Returns the resulting operation code.

◆ IngotSolid() [1/2]

MbResultType IngotSolid ( RPArray< MbItem > &  solids,
bool  makeCopy,
const MbSNameMaker names,
MbSolid *&  ingotResult 
)

Create an ingot solid from the specified objects.

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.

Deprecated:
The method is deprecated. Use instead IngotSolid with the parameters MbIngotSolidParams.
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.

◆ IngotSolid() [2/2]

MbResultType IngotSolid ( bool  makeCopy,
const MbIngotSolidParams params,
c3d::SolidSPtr resIngot 
)

Create an ingot solid from the specified objects.

Create an ingot solid from the specified objects without their modification.
The input objects may include MbSolid, MbInstance and MbAssembly. The function constructs the singular solid which appearence matches the input objects and which serves as a simplified substitute for their external parameters.

Parameters
[in]params- The operation parameters.
[out]result- The resulting solid.
Returns
Returns the operation result code.

◆ MakeDetachShells() [1/3]

size_t MakeDetachShells ( MbFaceShell solid,
RPArray< MbFaceShell > &  partSolid,
bool  sort 
)

Divide disconnected parts of a face set into connected sets of faces.

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.

◆ MakeDetachShells() [2/3]

size_t MakeDetachShells ( MbFaceShell solid,
c3d::ShellsVector &  partSolid,
bool  sort 
)

Divide disconnected parts of a face set into connected sets of faces.

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.

◆ MakeDetachShells() [3/3]

size_t MakeDetachShells ( MbFaceShell solid,
c3d::ShellsSPtrVector &  partSolid,
bool  sort 
)

Divide disconnected parts of a face set into connected sets of faces.

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.

◆ CreateDetach()

template<class ShellsVector >
MbCreator* CreateDetach ( MbFaceShell solid,
ShellsVector &  partSolid,
bool  sort,
const MbSNameMaker n,
MbResultType res 
)

Divide disconnected parts of a face set into connected sets of faces.

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.

◆ CreateDuplication()

MbCreator* CreateDuplication ( const MbFaceShell solid,
const MbDuplicationSolidParams params,
MbResultType res,
c3d::ShellSPtr resShell 
)

Create a shell of duplication of original 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.
[out]res- Operation result code.
[out]resShell- Constructed set of faces.
Returns
Returns the constructor if the operation has been successfully performed.

◆ CreateElementary()

DEPRECATE_DECLARE MbCreator* CreateElementary ( const MbElementarySolidParams params,
MbResultType res,
c3d::ShellSPtr shell 
)

Create a shell of an elementary solid.

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

Parameters
[in]params- Parameters of operation. ~
[out]res- Operation result code.
[out]shell- Shell - the result of operation.
Returns
Returns the shell constructor.

◆ RestoreSideEdges()

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 side edges of bends.

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.

◆ CreateShell() [1/2]

bool CreateShell ( MbFaceShell *&  shell,
const RPArray< MbCreator > &  creators,
MbeCopyMode  copyMode 
)

Create a shell by history tree.

Create a shell by history tree.

◆ CreateShell() [2/2]

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

Create a shell by history tree.

Create a shell by history tree.