C3D Toolkit
Kernel - 117982, Vision - 2.9.2.2
|
Functions for creation of solids, operations on solids. More...
#include <templ_s_array.h>
#include <mb_cart_point3d.h>
#include <space_item.h>
#include <op_boolean_flags.h>
#include <op_shell_parameter.h>
#include <op_swept_parameter.h>
#include <topology_faceset.h>
#include <mb_operation_result.h>
#include <op_duplication_parameter.h>
Functions | |
MbResultType | ElementarySolid (const MbElementarySolidParams ¶ms, c3d::SolidSPtr &result) |
Create an elementary solid. More... | |
MbResultType | ElementarySolid (const MbElementarySolidParams ¶ms, MbElementarySolidResults &results) |
Create an elementary solid. More... | |
MbResultType | MeshSolid (const MbMesh &mesh, const MbGridShellParams ¶ms, c3d::SolidSPtr &result) |
Create a solid on the basis of a polygonal geometric object. More... | |
MbResultType | GridSolid (const MbGrid &grid, const MbGridShellParams ¶ms, c3d::SolidSPtr &result) |
Create a solid on the basis of a triangulation. More... | |
MbResultType | CollectionSolid (const MbCollection &collection, const MbGridShellParams ¶ms, c3d::SolidSPtr &result) |
Create a solid on the basis of collection of elements. More... | |
MbSolid * | CreateSolid (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 ¶ms, const MbSNameMaker &operNames, const RPArray< MbSNameMaker > &contoursNames, MbSolid *&result) |
Create an extrusion solid. More... | |
MbResultType | RevolutionSolid (const MbSweptData &sweptData, const MbAxis3D &axis, const RevolutionValues ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶meters, 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... | |
MbCurve3D * | TrimClosedSpine (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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, 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 ¶ms, MbShellPartResults &result) |
Extract the specified part of a decomposing solid. More... | |
MbResultType | DuplicationSolid (const MbSolid &solid, const MbDuplicationSolidParams ¶ms, 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 ¶ms, c3d::SolidSPtr &resIngot) |
Create an ingot solid from the specified objects. More... | |
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()).