C3D Toolkit  Kernel - 118069, Vision - 2.16.7.1844
+ Collaboration diagram for Shell Modeling:

Classes

class  MbFaceFilletMaker
 Maker of faces fillets. More...
 

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 DrapeShell (const MbDrapeShellParams &params, MbDrapeShellResults &results)
 Drap a shell with fabric. 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 (MbNurbsSurfacesShellParams &params, c3d::SolidSPtr &result, IProgressIndicator *progBar)
 Create an open solid from a point set. More...
 
MbResultType MeshShell (const MbMeshShellParameters &params, MbMeshShellResults &result)
 Create a solid from a set of curves. More...
 
MbResultType TruncateShell (MbSolid &initSolid, MbeCopyMode copyMode, const MbTruncateShellParams &params, MbTruncateShellResults &results)
 Truncate an open solid. 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 (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 (const MbJoinShellParams &parameters, MbJoinShellResults &result)
 Create a joint solid from parameters. 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 MbSectionData &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 SurfaceShell (const MbSurfaceShellParams &params, c3d::SolidSPtr &result)
 Create a solid given a surface. 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 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 MbOctaLatticeParams &params, c3d::SolidSPtr &result)
 Create a lattice shell. More...
 
MbResultType SectionShell (const c3d::SolidSPtr &solid, MbeCopyMode sameShell, const MbSectionData &data, MbSectionResults &opResult)
 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.

◆ DrapeShell()

MbResultType DrapeShell ( const MbDrapeShellParams &  params,
MbDrapeShellResults &  results 
)

Drap a shell with fabric.

Drap a shell with fabric.

Parameters
[in]params- The parameters.
[out]results- Results.
Returns
Returns the operation result code, rt_Success if drape is successful.
Warning
Under development.

◆ 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()

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

MbResultType MeshShell ( const MbMeshShellParameters &  params,
MbMeshShellResults &  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- Operation results.
Returns
Returns operation result code.

◆ TruncateShell()

MbResultType TruncateShell ( MbSolid &  initSolid,
MbeCopyMode  copyMode,
const MbTruncateShellParams &  params,
MbTruncateShellResults &  results 
)

Truncate an open solid.

Create an open solid by truncation the initial solid.

Parameters
[in]initSolid- The initial shell.
[in]copyMode- Whether to copy the initial shells.
[in]params- The operation parameters.
[out]results- The operation results.
Returns
Returns operation result code.
Warning
Under development.

◆ ExtensionShell()

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

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

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

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

MbResultType FacesFillet ( const MbSectionData &  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() [1/2]

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 face uses the sent surface without creating a copy of it. 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.

◆ SurfaceShell() [2/2]

MbResultType SurfaceShell ( const MbSurfaceShellParams &  params,
c3d::SolidSPtr &  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]params- Parameters for creating the shell by a surface.
[out]result- The resultant shell.
Returns
Returns operation result code.

◆ CutShellSilhouetteContour()

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

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.

◆ 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()

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

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.

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