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

Functions

MbResultType ExtrusionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbVector3D &direction, const ExtrusionValues &params, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result)
 Create a shell by extrusion of planar contours. More...
 
MbResultType RevolutionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbAxis3D &axis, const RevolutionValues &params, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result)
 Create a shell by revolution of planar contours. More...
 
void CreateExtrusionCutSurfaces (const MbSurface &surface, const c3d::PlaneContoursSPtrVector &contours, const MbVector3D &direction, ExtrusionValues &params, VERSION version, MbResultType &resType, std::vector< std::pair< c3d::SurfaceSPtr, int >> &surfAndDir)
 Create cutter surfaces for extrusion of planar contours. More...
 
MbResultType OffsetPhantom (const MbSolid &solid, RPArray< MbFace > &outFaces, RPArray< MbFace > &offFaces, SArray< double > &offDists, const SweptValues &params, const MbSNameMaker &operNames, MbFaceShell *&result, size_t *hpShellFaceInd=nullptr)
 Create phantom offset surfaces for faces of a shell. More...
 
MbResultType LocalCubePhantom (const MbSolid &solid, const MbLocalCubePhantomParams &params, c3d::SolidSPtr &result)
 Create a phantom of a bounding box in local coordinate system. More...
 
MbResultType PatchShell (const MbPatchShellParams &params, c3d::SolidSPtr &result)
 Create a patch. More...
 
MbResultType LoftedShell (const MbLoftedPointsShellParams &params, c3d::SolidSPtr &result)
 Create an open solid given a set of point groups. More...
 
MbResultType LoftedShell (const MbLoftedCurvesShellParams &params, c3d::SolidSPtr &result)
 Create an open solid from a set of curves. More...
 
MbResultType OffsetShell (MbSolid &solid, MbeCopyMode sameShell, RPArray< MbFace > &initFaces, bool checkFacesConnection, SweptValues &p, const MbSNameMaker &operNames, bool copyFaceAttrs, MbSolid *&result)
 Create an open offset solid. More...
 
MbResultType NurbsSurfacesShell (NurbsSurfaceValues &params, const MbSNameMaker &operNames, bool isPhantom, MbSolid *&result, IProgressIndicator *progBar)
 Create an open solid from a point set. More...
 
MbResultType NurbsSurfacesShell (MbNurbsSurfacesShellParams &params, c3d::SolidSPtr &result, IProgressIndicator *progBar)
 Create an open solid from a point set. More...
 
MbResultType MeshShell (MeshSurfaceValues &pars, const MbSNameMaker &operNames, bool isPhantom, MbSolid *&result)
 Create an open solid from a set of curves. More...
 
MbResultType MeshShell (const MbMeshShellParameters &params, c3d::SolidSPtr &result)
 Create a solid from a set of curves. More...
 
MbResultType TruncateShell (MbSolid &initSolid, SArray< size_t > &selIndices, MbeCopyMode initCopyMode, const MbSNameMaker &operNames, RPArray< MbSpaceItem > &truncatingItems, SArray< bool > &truncatingOrients, bool truncatingSplitMode, MbeCopyMode truncatingCopyMode, const MbMergingFlags &mergeFlags, MbSolid *&result, MbPlacement3D *&resultPlace)
 Truncate an open solid. More...
 
MbResultType ExtensionShell (MbSolid &solid, MbeCopyMode sameShell, MbFace &face, const RPArray< MbCurveEdge > &edges, const ExtensionValues &params, const MbSNameMaker &operNames, MbSolid *&result)
 Create an extension of an open solid by extrusion. More...
 
MbResultType ExtensionShell (MbSolid &solid, MbeCopyMode sameShell, const MbExtensionShellParams &params, c3d::SolidSPtr &result)
 Create an extension of an open solid by extrusion. More...
 
MbResultType RuledShell (RuledSurfaceValues &pars, const MbSNameMaker &operNames, bool isPhantom, MbSolid *&result)
 Create an open ruled solid. More...
 
MbResultType RuledShell (const MbRuledShellParams &ruledParams, MbRuledShellResult &outParams)
 Create an open ruled solid. More...
 
void CheckRuledCurve (const MbCurve3D &curve0, const MbCurve3D &curve1, bool &isInverted1, bool &isShifted1, VERSION version)
 Check the curve for a ruled solid creation. More...
 
bool CheckRuledParams (const MbCurve3D &curve, SArray< double > &params, bool isAscending)
 Check the curve parameters for creation of a ruled solid. More...
 
MbResultType JoinShell (MbSurfaceCurve &curve1, MbSurfaceCurve &curve2, JoinSurfaceValues &parameters, const MbSNameMaker &operNames, MbSolid *&result)
 Create a joint solid from two curves. More...
 
MbResultType JoinShell (const RPArray< MbCurveEdge > &edges1, const SArray< bool > &orients1, const RPArray< MbCurveEdge > &edges2, const SArray< bool > &orients2, const MbMatrix3D &matr1, const MbMatrix3D &matr2, JoinSurfaceValues &parameters, const MbSNameMaker &operNames, MbSolid *&result, bool isPhantom=false)
 Create a joint solid from two sets of edges. More...
 
MbResultType JoinShell (const MbJoinShellParams &parameters, MbJoinShellResults &result)
 Create a joint solid from parameters. More...
 
MbResultType DivideShell (MbSolid &solid, MbeCopyMode sameShell, const RPArray< MbCurveEdge > &edges, const MbSNameMaker &operNames, MbSolid *&result)
 Divide a shell into parts using a given set of edges. More...
 
MbResultType DivideShell (MbSolid &solid, MbeCopyMode sameShell, const MbDivideShellParams &params, c3d::SolidSPtr &resSolid)
 Divide a shell into parts using a given set of edges. More...
 
void CheckJoinedCurve (const MbCurve3D &curve1, const MbCurve3D &curve2, bool &isInverted1, bool &isShifted1, VERSION version)
 Check a curve for creation a joint solid. More...
 
MbResultType FacesFillet (const MbSolid &solid1, const MbFace &face1, const MbSolid &solid2, const MbFace &face2, const SmoothValues &params, const MbSNameMaker &names, MbSolid *&result)
 Create a solid of two non-connected faces. More...
 
MbResultType FacesFillet (const MbFilletData &params, c3d::SolidSPtr &result)
 Create a solid of two non-connected faces. More...
 
MbResultType ElementaryShell (const MbSurface &surface, const MbSNameMaker &names, MbSolid *&result)
 Create a solid given an elementary surface. More...
 
MbResultType SurfaceShell (const MbSurface &surface, const MbSNameMaker &names, MbSolid *&result)
 Create a solid given a surface. More...
 
MbResultType CutShellSilhouetteContour (MbSolid &solid, MbeCopyMode sameShell, const MbVector3D &eye, const MbSNameMaker &operNames, c3d::SpaceCurvesSPtrVector &outlineCurves, RPArray< MbSolid > &cutSolids)
 Cut a solid by a silhouette contour. More...
 
MbResultType CutShellSilhouetteContour (const MbCutShellSilhouetteParams &params, MbCutShellSilhouetteResult &result)
 Cut a solid by a silhouette contour. More...
 
MbeStitchResType StitchShells (const c3d::SolidsSPtrVector &initialSolids, const MbShellStitchParams &stitchParams, c3d::SolidSPtr &resultSolid)
 Stitch faces of several solids into single solid. More...
 
MbResultType LatheCurves (const MbLatheCurvesParams &params, MbLatheCurvesResult &result)
 Search for lathe axis and construction of lathe elements for the solid. More...
 
MbResultType LatheCurves (const MbSolid &solid, const MbAxis3D *axis, double angle, MbPlacement3D &position, RPArray< MbCurve > &curves)
 Search for lathe axis and construction of lathe elements for the solid. More...
 
MbResultType LatheCurve (const MbCurve3D &generatrix, const MbPlacement3D &position, RPArray< MbCurve > &curves)
 Building of curves for lathe section for given curve. More...
 
MbResultType MedianShell (MbSolid &solid, MbeCopyMode sameShell, const MbMedianShellParams &params, MbMedianShellResults &result)
 Create a median shell by solid faces, based on equidistant surfaces. More...
 
MbResultType OctaLattice (const MbCartPoint3D &point0, const MbCartPoint3D &point1, const MbCartPoint3D &point2, double xRadius, double yRadius, double zRadius, size_t xCount, size_t yCount, size_t zCount, const MbSNameMaker &names, MbSolid *&result)
 Create a lattice shell. More...
 
MbResultType OctaLattice (const MbOctaLatticeParams &params, c3d::SolidSPtr &result)
 Create a lattice shell. More...
 
MbResultType SectionShell (const c3d::SolidSPtr &solid, MbeCopyMode sameShell, const MbSectionData &data, c3d::SolidSPtr &result)
 Create a shell on swept mutable section surface. More...
 
MbResultType SectionShell (const c3d::SolidSPtr &solid, MbeCopyMode sameShell, const MbSectionData &data, MbSectionResults &opResult)
 Create a shell on swept mutable section surface. More...
 
MbResultType SectionShell (MbSolid *solid, MbeCopyMode sameShell, const MbSectionData &data, const MbSNameMaker &operNames, MbSolid *&result)
 Create a shell on swept mutable section surface. More...
 
MbResultType ExtractBeamElement (const MbSolid &solid, const MbBeamElementParams &params, MbBeamElementResults &results)
 Create a shell-based beam model with constant cross section. 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...
 
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 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...
 

Detailed Description

Function Documentation

◆ ExtrusionShell()

MbResultType ExtrusionShell ( const MbSurface surface,
RPArray< MbContour > &  contours,
const MbVector3D direction,
const ExtrusionValues params,
const MbSNameMaker operNames,
RPArray< MbSNameMaker > &  cNames,
MbFaceShell *&  result 
)

Create a shell by extrusion of planar contours.

Create a shell by extrusion of planar contours.

Parameters
[in]surface- A surface that contains the contours.
[in]contours- A set of planar contours.
[in]direction- An extrusion direction.
[in]params- Parameters of a shell creation.
[in]operNames- An object defining names generation in the operation.
[in]cNames- A set of objects defining names of the contours.
[out]result- Result of the operation - a shell.
Returns
Returns operation result code.

◆ RevolutionShell()

MbResultType RevolutionShell ( const MbSurface surface,
RPArray< MbContour > &  contours,
const MbAxis3D axis,
const RevolutionValues params,
const MbSNameMaker operNames,
RPArray< MbSNameMaker > &  cNames,
MbFaceShell *&  result 
)

Create a shell by revolution of planar contours.

Create a shell by revolution of planar contours.

Parameters
[in]surface- A surface that contains the contours.
[in]contours- A set of planar contours.
[in]axis- Rotation axis.
[in]params- Parameters of a shell creation.
[in]operNames- An object defining names generation in the operation.
[in]cNames- A set of objects defining names of the contours.
[out]result- Result of the operation - a shell.
Returns
Returns operation result code.

◆ CreateExtrusionCutSurfaces()

void CreateExtrusionCutSurfaces ( const MbSurface surface,
const c3d::PlaneContoursSPtrVector &  contours,
const MbVector3D direction,
ExtrusionValues params,
VERSION  version,
MbResultType resType,
std::vector< std::pair< c3d::SurfaceSPtr, int >> &  surfAndDir 
)

Create cutter surfaces for extrusion of planar contours.

Create cutter surfaces for extrusion of planar contours and define directions of extrusions.

Parameters
[in]surface- A surface that contains the contours.
[in]contours- A set of planar contours.
[in]direction- An extrusion direction.
[in]params- Parameters of a shell creation.
[in]version- The version of construction.
[out]resType- Operation result code.
[out]surfAndDir-Result of the operation - surfaces and directions relative to parameter direction.

◆ OffsetPhantom()

MbResultType OffsetPhantom ( const MbSolid solid,
RPArray< MbFace > &  outFaces,
RPArray< MbFace > &  offFaces,
SArray< double > &  offDists,
const SweptValues params,
const MbSNameMaker operNames,
MbFaceShell *&  result,
size_t *  hpShellFaceInd = nullptr 
)

Create phantom offset surfaces for faces of a shell.

Create phantom offset surfaces for faces of a shell,
except the faces with specified indices and store them in array 'surfaces'.
After finish working with the surfaces they should be deleted.

Parameters
[in]solid- The initial solid.
[in]outFaces- An array of shelling faces of the solid.
[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]operNames- An object for naming the new objects.
[out]result- The operation result.
[out]hpShellFaceInd- The face number in the initial shell for a hot-point creation.
Returns
Returns the creation result code.

◆ LocalCubePhantom()

MbResultType LocalCubePhantom ( const MbSolid solid,
const MbLocalCubePhantomParams params,
c3d::SolidSPtr result 
)

Create a phantom of a bounding box in local coordinate system.

Create a phantom of a bounding box in local coordinate system.

Parameters
[in]solid- The initial solid.
[in]params- List of parameters MbLocalCubePhantomParams.
[out]result- The local bounding box phantom.
Returns
Returns the creation result code.

◆ PatchShell()

MbResultType PatchShell ( const MbPatchShellParams params,
c3d::SolidSPtr result 
)

Create a patch.

Create a patch from the specified parameters.

Parameters
[in]params- Operation parameters.
[out]result- The required patch.
Returns
Returns operation result code.

◆ LoftedShell() [1/2]

MbResultType LoftedShell ( const MbLoftedPointsShellParams params,
c3d::SolidSPtr result 
)

Create an open solid given a set of point groups.

Create an open lofted solid whose profiles are defined by splines created from the specified groups of points.

Parameters
[in]params- Operation parameters. Contains information about points, object defining names generation in the operation, identifier.
[out]result- The required shell.
Returns
Returns operation result code.

◆ LoftedShell() [2/2]

MbResultType LoftedShell ( const MbLoftedCurvesShellParams params,
c3d::SolidSPtr result 
)

Create an open solid from a set of curves.

Create an open lofted solids whose profiles are defined by the curves.

Parameters
[in]params- Operation parameters. Contains information about curves, object defining names generation in the operation, identifier.
[out]result- The required shell.
Returns
Returns operation result code.

◆ OffsetShell()

MbResultType OffsetShell ( MbSolid solid,
MbeCopyMode  sameShell,
RPArray< MbFace > &  initFaces,
bool  checkFacesConnection,
SweptValues p,
const MbSNameMaker operNames,
bool  copyFaceAttrs,
MbSolid *&  result 
)

Create an open offset solid.

Create an open offset solid on the basis of the faces 'initFaces'.

Parameters
[in]solid- The initial solid.
[in]sameShell- Whether to copy the solid.
[in]initFaces- Faces of the initial solid for construction.
[in]checkFacesConnection- Whether to check connectivity of the specified faces.
[in]p- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]copyFaceAttrs- Copy attributes of initial faces to offset faces.
[out]result- The offset shell.
Returns
Returns operation result code.

◆ NurbsSurfacesShell() [1/2]

MbResultType NurbsSurfacesShell ( NurbsSurfaceValues params,
const MbSNameMaker operNames,
bool  isPhantom,
MbSolid *&  result,
IProgressIndicator progBar 
)

Create an open solid from a point set.

Create an open solid from a point set specified in parameters.

Deprecated:
The function is deprecated, instead use NurbsSurfacesShell with the parameter list MbNurbsSurfacesShellParams.
Parameters
[in,out]params- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]isPhantom- Create in the phantom mode.
[out]result- The required shell.
[in,out]progBar- A progress indicator of the operation.
Returns
Returns operation result code.

◆ NurbsSurfacesShell() [2/2]

MbResultType NurbsSurfacesShell ( MbNurbsSurfacesShellParams params,
c3d::SolidSPtr result,
IProgressIndicator progBar 
)

Create an open solid from a point set.

Create an open solid from a point set specified in parameters.

Parameters
[in,out]params- The operation parameters.
[out]result- The required shell.
[in,out]progBar- A progress indicator of the operation.
Returns
Returns operation result code.

◆ MeshShell() [1/2]

MbResultType MeshShell ( MeshSurfaceValues pars,
const MbSNameMaker operNames,
bool  isPhantom,
MbSolid *&  result 
)

Create an open solid from a set of curves.

Create an open solid from a set of curves specified in the parameters.

Deprecated:
The function is deprecated, instead use MeshShell with the parameter list MbMeshShellParameters.
Parameters
[in]pars- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]isPhantom- Create in the phantom mode.
[out]result- The required shell.
Returns
Returns operation result code.

◆ MeshShell() [2/2]

MbResultType MeshShell ( const MbMeshShellParameters params,
c3d::SolidSPtr result 
)

Create a solid from a set of curves.

Create a solid from a set of curves specified in the parameters.

Parameters
[in]params- The operation parameters.
[out]result- The required shell.
Returns
Returns operation result code.

◆ TruncateShell()

MbResultType TruncateShell ( MbSolid initSolid,
SArray< size_t > &  selIndices,
MbeCopyMode  initCopyMode,
const MbSNameMaker operNames,
RPArray< MbSpaceItem > &  truncatingItems,
SArray< bool > &  truncatingOrients,
bool  truncatingSplitMode,
MbeCopyMode  truncatingCopyMode,
const MbMergingFlags mergeFlags,
MbSolid *&  result,
MbPlacement3D *&  resultPlace 
)

Truncate an open solid.

Create an open solid by truncation the initial solid.

Parameters
[in]initSolid- The initial shell.
[in]selIndices- The numbers of selected faces (if the array is empty, the whole shell is selected).
[in]initCopyMode- Whether to copy the initial shells.
[in]operNames- An object for naming the new objects.
[in]truncatingItems- Truncating objects.
[in]truncatingOrients- The truncating objects orientation.
[in]truncatingSplitMode- The curves are used as parting lines.
[in]truncatingCopyMode- Whether to copy the truncating shells.
[in]mergeFlags- Control flags of shell items merging.
[out]result- The truncated shell.
[out]resultPlace- A phantom direction of truncation.
Returns
Returns operation result code.

◆ ExtensionShell() [1/2]

MbResultType ExtensionShell ( MbSolid solid,
MbeCopyMode  sameShell,
MbFace face,
const RPArray< MbCurveEdge > &  edges,
const ExtensionValues params,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Create an extension of an open solid by extrusion.

Create an extension of an open solid by extension of specified boundary edges of the solid.
An extension can be performed in the following ways: The specified faces can be extended on the given distance. A smoothly connected face can be added to the given face. A face obtained by extrusion of a boundary edge in the given direction can be added to the specified face.

Parameters
[in]solid- The initial shell.
[in]sameShell- Whether to copy the shell.
[in]face- One of the face of the initial shell to be extended.
[in]edges- An array of boundary edges through which to extend the face.
[in]params- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use ExtensionShell with the parameter list MbExtensionShellParams.

◆ ExtensionShell() [2/2]

MbResultType ExtensionShell ( MbSolid solid,
MbeCopyMode  sameShell,
const MbExtensionShellParams params,
c3d::SolidSPtr result 
)

Create an extension of an open solid by extrusion.

Create an extension of an open solid by extension of specified boundary edges of the solid.
An extension can be performed in the following ways: The specified faces can be extended on the given distance. A smoothly connected face can be added to the given face. A face obtained by extrusion of a boundary edge in the given direction can be added to the specified face.

Parameters
[in]solid- The initial shell.
[in]sameShell- Whether to copy the shell.
[in]params- Parameters of extension shell.
[out]result- The required shell.
Returns
Returns operation result code.

◆ RuledShell() [1/2]

MbResultType RuledShell ( RuledSurfaceValues pars,
const MbSNameMaker operNames,
bool  isPhantom,
MbSolid *&  result 
)

Create an open ruled solid.

Create an open ruled solid from two curves specified in parameters.

Parameters
[in,out]pars- The operation parameters.
[in]operNames- An object for naming the new objects.
[in]isPhantom- Create in the phantom mode.
[out]result- The required shell.
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use RuledShell with the parameter list MbRuledShellParams.

◆ RuledShell() [2/2]

MbResultType RuledShell ( const MbRuledShellParams ruledParams,
MbRuledShellResult outParams 
)

Create an open ruled solid.

Create an open ruled solid from two curves specified in parameters.

Parameters
[in]ruledParams- The operation parameters for the creation an open ruled solid.
[out]outParams- Output operation parameters.
Returns
Returns operation result code.

◆ CheckRuledCurve()

void CheckRuledCurve ( const MbCurve3D curve0,
const MbCurve3D curve1,
bool &  isInverted1,
bool &  isShifted1,
VERSION  version 
)

Check the curve for a ruled solid creation.

Check the second curve for consistency with the first curve for creation of the open ruled solid and make the necessary modification of the second curve.

Parameters
[in]curve0- The first curve.
[in]curve1- The second curve.
[out]isInverted1- Whether the second curve was inverted.
[out]isShifted1- Whether the beginning of the first curve was shifted.
[in]version- The version of the operation.
Warning
An auxiliary function of operation 'RuledShell'.

◆ CheckRuledParams()

bool CheckRuledParams ( const MbCurve3D curve,
SArray< double > &  params,
bool  isAscending 
)

Check the curve parameters for creation of a ruled solid.

Check the curve parameters and perform the normalization of a closed curve parameters.

Parameters
[in]curve- The curve.
[in,out]params- An array of the curve parameters.
[in]isAscending- Whether the parameters are specified in the ascending order.
Returns
Returns true if the parameter array has been successfully normalized.
Warning
An auxiliary function of operation 'RuledShell'.

◆ JoinShell() [1/3]

MbResultType JoinShell ( MbSurfaceCurve curve1,
MbSurfaceCurve curve2,
JoinSurfaceValues parameters,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Create a joint solid from two curves.

Create an open joint solid from two curves on a surface.

Deprecated:
The function is deprecated, instead use JoinShell with the parameter list MbJoinShellParams.
Parameters
[in]curve1- The first curve on a surface.
[in]curve2- The second curve on a surface.
[in]parameters- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns
Returns operation result code.

◆ JoinShell() [2/3]

MbResultType JoinShell ( const RPArray< MbCurveEdge > &  edges1,
const SArray< bool > &  orients1,
const RPArray< MbCurveEdge > &  edges2,
const SArray< bool > &  orients2,
const MbMatrix3D matr1,
const MbMatrix3D matr2,
JoinSurfaceValues parameters,
const MbSNameMaker operNames,
MbSolid *&  result,
bool  isPhantom = false 
)

Create a joint solid from two sets of edges.

Create an open joint solid from two sets of edges.

Deprecated:
The function is deprecated, instead use JoinShell with the parameter list MbJoinShellParams.
Parameters
[in]edges1- The first group of edges.
[in]orients1- The edges senses in the first group.
[in]edges2- The second group of edges.
[in]orients2- The edges senses in the second group.
[in]matr1- The matrix of transformation of the first group of edges to the common coordinate system.
[in]matr2- The matrix of transformation of the second group of edges to the common coordinate system.
[in]parameters- The operation parameters.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
[in]isPhantom- The operation phantom mode.
Returns
Returns operation result code.

◆ JoinShell() [3/3]

MbResultType JoinShell ( const MbJoinShellParams parameters,
MbJoinShellResults result 
)

Create a joint solid from parameters.

Create an open joint solid from parameters.

Parameters
[in]parameters- The operation parameters.
[out]result- The operation results.
Returns
Returns operation result code.

◆ DivideShell() [1/2]

MbResultType DivideShell ( MbSolid solid,
MbeCopyMode  sameShell,
const RPArray< MbCurveEdge > &  edges,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Divide a shell into parts using a given set of edges.

Divide shell into parts using a given set of edges.

Parameters
[in]solid- A shell.
[in]sameShell- Whether to copy the shell.
[in]edges- Set of edges.
[in]operNames- An object for naming the new objects.
[out]result- The required shell.
Returns
Returns operation result code.
Deprecated:
The function is deprecated, instead use DivideShell with the parameter list MbDivideShellParams.

◆ DivideShell() [2/2]

MbResultType DivideShell ( MbSolid solid,
MbeCopyMode  sameShell,
const MbDivideShellParams params,
c3d::SolidSPtr resSolid 
)

Divide a shell into parts using a given set of edges.

Divide shell into parts using a given set of edges.
Dividing of the body\shell is performed by removing topological connections in the edges between adjacent faces. When the operation is completed, the entire result will be in the resulting shell. Use the CreateParts or DetachParts functions to separate the shell into parts.

Parameters
[in]solid- A shell.
[in]params- Parameters for the shell division.
[out]resSolid- The resulting shell.
Returns
Returns operation result code.

◆ CheckJoinedCurve()

void CheckJoinedCurve ( const MbCurve3D curve1,
const MbCurve3D curve2,
bool &  isInverted1,
bool &  isShifted1,
VERSION  version 
)

Check a curve for creation a joint solid.

Check the second curve for consistency with the first curve for creation of the open joint solid and make the necessary modification of the second curve.

Parameters
[in]curve1- The first curve.
[in]curve2- The second curve.
[out]isInverted1- Whether the second curve was inverted.
[out]isShifted1- Whether the beginning of the first curve was shifted.
[in]version- The version of the operation.
Warning
An auxiliary function of operation JoinShell.

◆ FacesFillet() [1/2]

MbResultType FacesFillet ( const MbSolid solid1,
const MbFace face1,
const MbSolid solid2,
const MbFace face2,
const SmoothValues params,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid of two non-connected faces.

Create an open solid that consists of a fillet face between two non-connected faces.

Parameters
[in]solid1- The first solid.
[in]face1- The first solid face to fillet.
[in]solid2- The second solid.
[in]face2- The second solid face to fillet.
[in]params- The operation parameters.
[in]names- An object for naming the new objects.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.
Deprecated:
The function is deprecated, use FacesFillet with MbFilletData instead.

◆ FacesFillet() [2/2]

MbResultType FacesFillet ( const MbFilletData params,
c3d::SolidSPtr result 
)

Create a solid of two non-connected faces.

Create an open solid that consists of a fillet face between two non-connected faces.

Parameters
[in]params- Operation parameters.
[out]result- The resultant shell (solid).
Returns
Returns operation result code.

◆ ElementaryShell()

MbResultType ElementaryShell ( const MbSurface surface,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid given an elementary surface.

Create a solid which consists of a face with the specified underlying elementary surface.

Parameters
[in]surface- The surface.
[in]names- An object for naming the new objects.
[out]result- The resultant shell.
Returns
Returns operation result code.

◆ SurfaceShell()

MbResultType SurfaceShell ( const MbSurface surface,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a solid given a surface.

Create a solid which consists of a face with the specified underlying surface. The surface should have no self-intersections, the bounding curves should be correctly oriented in case of surface MbCurveBoundedSurface.

Parameters
[in]surface- The surface.
[in]names- An object for naming the new objects.
[out]result- The resultant shell.
Returns
Returns operation result code.

◆ CutShellSilhouetteContour() [1/2]

MbResultType CutShellSilhouetteContour ( MbSolid solid,
MbeCopyMode  sameShell,
const MbVector3D eye,
const MbSNameMaker operNames,
c3d::SpaceCurvesSPtrVector &  outlineCurves,
RPArray< MbSolid > &  cutSolids 
)

Cut a solid by a silhouette contour.

Create solids as a result of cutting a solids by its silhouette contour.

Parameters
[in]solid- The solid.
[in]sameShell- Methods of transferring data while copying shells.
[in]eye- Eye's direction.
[in]operNames- An object defining the names with the version.
[out]outlineCurves- Curves of the silhouette contour.
[out]cutSolids- The resultant solids.
Returns

◆ CutShellSilhouetteContour() [2/2]

MbResultType CutShellSilhouetteContour ( const MbCutShellSilhouetteParams params,
MbCutShellSilhouetteResult result 
)

Cut a solid by a silhouette contour.

Create solids as a result of cutting a solids by its silhouette contour.

Parameters
[in]params- The solid, method of shell copying, the eye's direction, an object defining the names and the version.
[out]result- Curves of the silhouette contour and resultant solids.
Returns

◆ StitchShells()

MbeStitchResType StitchShells ( const c3d::SolidsSPtrVector &  initialSolids,
const MbShellStitchParams stitchParams,
c3d::SolidSPtr resultSolid 
)

Stitch faces of several solids into single solid.

Stitch faces of several solids with coincident edges into single solid. The faces orientation can be changed.

Parameters
[in]initialSolids- An array of solids for stitching.
[in]stitchParams- Shells stitch parameters.
[out]resultSolid- The resultant shell or solid (depends on the flag).
Returns
Returns operation result code.

◆ LatheCurves() [1/2]

MbResultType LatheCurves ( const MbLatheCurvesParams params,
MbLatheCurvesResult result 
)

Search for lathe axis and construction of lathe elements for the solid.

The function searches for lathe axis of rotation faces and builds the curves of lathe-section in a plane.

Parameters
[in]params- Parameters for looking the lathe axis and construction of lathe elements for the solid.
[out]result- The two-dimensional curves located in the XY plane of the local coordinate system.
Returns
Returns operation result code.

◆ LatheCurves() [2/2]

MbResultType LatheCurves ( const MbSolid solid,
const MbAxis3D axis,
double  angle,
MbPlacement3D position,
RPArray< MbCurve > &  curves 
)

Search for lathe axis and construction of lathe elements for the solid.

The function searches for lathe axis of rotation faces and builds the curves of lathe-section in a plane.

Parameters
[in]solid- Solid.
[in]axis- Lathe axis, may be null.
[in]angle- The angle, managing the construction of segments which perpendicular to the axis, recomended M_PI_4-M_PI.
[out]position- Plane position of section, axis X is a axis of section.
[out]curves- The curves of section located on plane XY of position.
Returns
Returns operation result code.

◆ LatheCurve()

MbResultType LatheCurve ( const MbCurve3D generatrix,
const MbPlacement3D position,
RPArray< MbCurve > &  curves 
)

Building of curves for lathe section for given curve.

The function builds the generatrix track in the XY plane of the local coordinate system as it rotates around the axis X.

Parameters
[in]generatrix- Curve
[in]position- Plane position of section, axis X is a axis of section.
[out]curves- The curve on plane XY of position will be added to container curves.
Returns
Returns operation result code.

◆ MedianShell()

MbResultType MedianShell ( MbSolid solid,
MbeCopyMode  sameShell,
const MbMedianShellParams params,
MbMedianShellResults result 
)

Create a median shell by solid faces, based on equidistant surfaces.

Construct a median shell between pair of faces, based on equidistant surfaces. Pair of faces are selected by user or are found by given distance between faces. The faces must belong to the same body.

Parameters
[in]solid- The initial solid.
[in]sameShell- Whether to copy the solid.
[in]params- The median shell parameters.
[out]result- The operation results.
Returns
Returns operation result code.

◆ OctaLattice() [1/2]

MbResultType OctaLattice ( const MbCartPoint3D point0,
const MbCartPoint3D point1,
const MbCartPoint3D point2,
double  xRadius,
double  yRadius,
double  zRadius,
size_t  xCount,
size_t  yCount,
size_t  zCount,
const MbSNameMaker names,
MbSolid *&  result 
)

Create a lattice shell.

Create a lattice shell on the three control points of the lattice parameters and the number of elements.

Deprecated:
The function is deprecated, instead use OctaLattice with the parameter list MbOctaLatticeParams.
Parameters
[in]point0- The origin of the surface local coordinate system.
[in]point1- A point specifying the direction of X-axis of the local system and the size of element.
[in]point2- A point specifying the direction of Y-axis of the local system.
[in]xRadius- The step along the first axis of the local coordinate system.
[in]yRadius- The step along the second axis of the local coordinate system.
[in]zRadius- The step along the third axis of the local coordinate system.
[in]xCount- The number of cells along a first axis of the local coordinate system.
[in]yCount- The number of cells along a second axis of the local coordinate system.
[in]zCount- The number of cells along a third axis of the local coordinate system.
[out]result- The constructed solid.
Returns
Returns operation result code.

◆ OctaLattice() [2/2]

MbResultType OctaLattice ( const MbOctaLatticeParams params,
c3d::SolidSPtr result 
)

Create a lattice shell.

Create a lattice shell on the three control points of the lattice parameters and the number of elements.

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

◆ SectionShell() [1/3]

MbResultType SectionShell ( const c3d::SolidSPtr solid,
MbeCopyMode  sameShell,
const MbSectionData data,
c3d::SolidSPtr result 
)

Create a shell on swept mutable section surface.

Create a face of shell by moving the generating curve along the spine curve and perform the Boolean operation with the shell if it is specified.
The function simultaneously creates the shell and its constructor.

Parameters
[in]solid- The shell the construction is complemented with respect to.
[in]sameShell- The method of copying faces of shell.
[in]data- Data about swept mutable section surface.
[out]result- The constructed shell.
Returns
Returns operation result code.

◆ SectionShell() [2/3]

MbResultType SectionShell ( const c3d::SolidSPtr solid,
MbeCopyMode  sameShell,
const MbSectionData data,
MbSectionResults opResult 
)

Create a shell on swept mutable section surface.

Create a face of shell by moving the generating curve along the spine curve and perform the Boolean operation with the shell if it is specified.
The function simultaneously creates the shell and its constructor.

Parameters
[in]solid- The shell the construction is complemented with respect to.
[in]sameShell- The method of copying faces of shell.
[in]data- Data about swept mutable section surface.
[out]opResult- Operation results.
Returns
Returns operation result code.

◆ SectionShell() [3/3]

MbResultType SectionShell ( MbSolid solid,
MbeCopyMode  sameShell,
const MbSectionData data,
const MbSNameMaker operNames,
MbSolid *&  result 
)

Create a shell on swept mutable section surface.

Create a face of shell by moving the generating curve along the spine curve and perform the Boolean operation with the shell if it is specified.
The function simultaneously creates the shell and its constructor.

Parameters
[in]solid- The shell the construction is complemented with respect to.
[in]sameShell- The method of copying faces of shell.
[in]data- Data about swept mutable section surface.
[in]operNames- Generating face names.
[out]result- The constructed shell.
Returns
Returns operation result code.

◆ ExtractBeamElement()

MbResultType ExtractBeamElement ( const MbSolid solid,
const MbBeamElementParams params,
MbBeamElementResults results 
)

Create a shell-based beam model with constant cross section.

Create a shell-based beam model with constant cross section.

Parameters
[in]solid- The solid, which beam elements are searched in.
[in]params- Input parameters.
[out]result- The operation result.
Returns
Returns operation result code.
Warning
Under development.

◆ GetSweptValue()

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.

Compute 'value' - the extrusion depth or the rotation angle (0.0 : M_PI2) for the further construction of a solid by extrusion or revolution of the generating curve.

Parameters
[in]sweptData- The generating curve data.
[in]axis- Rotation axis.
[in]direction- An extrusion direction.
[in]rotation- Rotation or extrusion.
[in]operationDirection- Forward or backward direction.
[in]point- The point to rotate or extrude the surface up to.
[out]value- The extrusion depth or the rotation angle.
Returns
Returns true if the value has been successfully calculated.
Warning
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.

◆ GetSweptImagePosition()

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.

Compute the position of a generating curve point image on a surface for further solid construction by extrusion or revolution of the generating curve up to the specified surface.

Parameters
[in]generatrix- The curve.
[in]surface- The surface to construct up to.
[in]direction- An extrusion direction.
[in]axis- Rotation axis.
[in]rotation- Rotation (true) or extrusion (false)
[out]imagePosition- The image point on the surface.
[out]resType- Operation result code.
Warning
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.

◆ GetRangeToSurface()

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.

Calculate the extrusion depths in forward and backward directions or the rotating angles in forward and backward directions for further solid construction by extrusion or revolution of the generating curve up to the specified surface; and also calculate the bounding box of the curve image.

Parameters
[in]surface- The surface to construct up to.
[in]curve- The generating curve.
[in]direction- An extrusion direction.
[in]axis- Rotation axis.
[in]rotation- Revolution (true) or extrusion (false).
[in]operationDirection- The motion direction: forward (true) or backward (false).
[out]imagePosition- A point on a surface part that contains the image.
[out]range- The distance to surface in the backward and the forward directions.
[out]rectOnSurface- The bounding box of image on the surface.
[out]resType- Operation result code.
Warning
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.

◆ AnalyzeSurfaceRelationToSweptOperation()

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.

Determine the orientation of a cutting surface relative to the solid which is to be constructed by extrusion or revolution the generation curve up to the specified surface.

Parameters
[in]cuttingSurface- A surface to analyze.
[in]imagePosition- An image location on the surface.
[in]curve- The generating curve.
[in]direction- An extrusion direction.
[in]axis- Rotation axis.
[in]rotation- Revolution (true) or extrusion (false).
[in]operationDirection- The motion direction: forward (true) or backward (false).
[out]relativeSense- The surface orientation relative to the operation.
[out]resType- Operation result code.
Warning
An auxiliary function of operations ExtrusionSolid, RevolutionSolid, ExtrusionResult and RevolutionResult.

◆ FindPolesAndSeamsInContour()

void FindPolesAndSeamsInContour ( const MbSurface surface,
const MbContour contour,
c3d::IndicesVector seamsAndPoles 
)

Find contour segments corresponding to the seams and poles.

Find contour segments corresponding to the seams and poles.

Parameters
[in]surface- Surface.
[in]contour- Contour.
[out]seamsAndPoles- Segment numbers corresponding to the seams and poles.

◆ EvolutionNormalize()

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

Orientate the generating contour and the guide curve for a sweeping solid construction.

Parameters
[in]surface- The surface.
[in]contours- Generating contours.
[in]guide- The spine curve.
[in]parameters- The operation parameters.
[out]axis- The axis for the generating curve additional turn.
[out]angle- The additional turn for generating line.
[in]version- The version of the operation.
[out]matrix- The pointer to matrix, which transform section to nearest end of spine curve.
Returns
Returns operation result code.
Warning
An auxiliary function of operations EvolutionSolid and EvolutionResult.