C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2
action_solid.h File Reference

Functions for creation of solids, operations on solids. More...

Functions

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...
 
bool GetSweptValue (const MbSweptData &sweptData, const MbAxis3D &axis, const MbVector3D &direction, const bool rotation, const bool operationDirection, const MbCartPoint3D &point, double &value)
 Compute the extrusion depth or the rotation angle. More...
 
void GetSweptImagePosition (const MbCurve3D &generatrix, const MbSurface &surface, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, MbCartPoint &imagePosition, MbResultType &resType)
 Get the initial approximation for image calculation while rotating/extruding. More...
 
void GetRangeToSurface (const MbSurface &surface, const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, const bool operationDirection, const MbCartPoint &imagePosition, double range[2], MbRect &rectOnSurface, MbResultType &resType)
 Calculate the distances/angles from generating curve to the surface while rotating/extruding. More...
 
double AreaSign (const MbCurve3D &curve, const MbAxis3D &axis, const MbVector3D &direction, bool rotation)
 Compute the area of a curve projection onto a virtual coordinate plane. More...
 
void AnalyzeSurfaceRelationToSweptOperation (const MbSurface &cuttingSurface, const MbCartPoint &imagePosition, const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, bool operationDirection, bool &relativeSense, MbResultType &resType)
 Determine the orientation of a cutting surface relative to the extrusion/revolution solid. More...
 
void FindPolesAndSeamsInContour (const MbSurface &surface, const MbContour &contour, c3d::IndicesVector &seamsAndPoles)
 Find contour segments corresponding to the seams and poles. 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 EvolutionNormalize (const MbSurface &surface, const RPArray< MbContour > &contours, const MbCurve3D &guide, const EvolutionValues &parameters, MbAxis3D &axis, double &angle, VERSION version, MbMatrix3D *matrix=nullptr)
 Determine the orientation for a generating contour and for a guide curve of kinematics (evolution). More...
 
MbCurve3DTrimClosedSpine (const MbCurve3D &curve, double t)
 Create a trimmed closed curve on a curve copy. 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...
 

Detailed Description

Functions for creation of solids, operations on solids.

The process of solids creation in geometric modeling is similar to the process of the modeled object manufacturing. Firstly solids of a simple form are created, and then a set of operations are performed to obtain a more complex solids from solids of a simple form. Auxiliary objects are created if necessary. The similar solids can be edited and created by modifying of the parameters and further repeating the process of the solids creation.

All of the function contain input parameter MbSNameMaker, providing the naming of faces, edges and vertices. The first parameter to the constructor MbSNameMaker is the main name of the function. You can determine which function is born one or the other face, edge, vertex by main name. GetMainName() gives the main name of the function (face.GetMainName(), edge.GetMainName(), vertex.GetMainName()).