C3D Toolkit
Kernel - 117982, Vision - 2.9.2.2
|
Functions for operating with curves, surfaces, shells and solids. More...
#include <math_define.h>
#include <templ_rp_array.h>
#include <op_shell_parameter.h>
#include <op_swept_parameter.h>
#include <mb_operation_result.h>
Functions | |
bool | IsMultiShell (const MbFaceShell *shell, bool checkNesting=true) |
Check if the shell can be subdivided into separate parts. More... | |
size_t | DetachShells (MbFaceShell &shell, RPArray< MbFaceShell > &parts, bool sort, c3d::IndicesVector *partIndices=nullptr) |
Separate parts from a shell. More... | |
size_t | DetachShells (MbFaceShell &shell, c3d::ShellsVector &parts, bool sort, c3d::IndicesVector *partIndices=nullptr) |
Separate parts from a shell. More... | |
size_t | DetachShells (MbFaceShell &shell, c3d::ShellsSPtrVector &parts, bool sort, c3d::IndicesVector *partIndices=nullptr) |
Separate parts from a shell. More... | |
template<class ShellsVector > | |
size_t | CreateShells (const MbFaceShell &shell, ShellsVector &parts, bool sort=true) |
Separate parts from a shell. More... | |
MbResultType | ExtrusionShell (const MbSurface &surface, RPArray< MbContour > &contours, const MbVector3D &direction, const ExtrusionValues ¶ms, 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 ¶ms, const MbSNameMaker &operNames, RPArray< MbSNameMaker > &cNames, MbFaceShell *&result) |
Create a shell by revolution of planar contours. More... | |
bool | UnifyOwnComplanarFaces (MbFaceShell &shell, const MbSNameMaker &nameMaker, bool checkBaseSurfaces) |
Unite complanar faces. More... | |
void | FacePropagate (const MbeFacePropagation fp, RPArray< MbFace > &face_set, const MbVector3D &dir) |
Capture the faces in one of proposed methods. More... | |
void | MouldCavitySolids (RPArray< MbSolid > &solids, MbCartPoint3D *fixedPoint, double deltaX, double deltaY, double deltaZ) |
Scale cavities of a mold. More... | |
bool | IsSolidsIntersection (const MbSolid &solid1, const MbSolid &solid2, const MbSNameMaker &snMaker) |
Check intersection of solids. More... | |
bool | IsSolidsIntersection (const MbSolid &solid1, const MbMatrix3D &matr1, const MbSolid &solid2, const MbMatrix3D &matr2, bool checkTangent, bool getIntersectionSolids, bool checkTouchPoints, RPArray< MbShellsIntersectionData > &intData) |
Check intersection of solids in an assembly. More... | |
bool | MinimumSolidsDistance (const MbSolid &solid1, const MbMatrix3D &matr1, bool isMultipleUseSolid1, const MbSolid &solid2, const MbMatrix3D &matr2, bool isMultipleUseSolid2, double lowerLimitDistance, bool tillFirstLowerLimit, std::vector< MbShellsDistanceData > &shellsDistanceData) |
Determine the minimum distance between solids in an assembly. More... | |
void | MultipleSolidsClassification (const RPArray< MbSolid > &solids, const RPArray< MbSolid > &relativeSolids, std::vector< MbUnitInfo > &info) |
Classify a set of solids relative to another set of solids. More... | |
void | GetDistanceToSurface (const MbPlacement3D &pl, const MbCurve *curve, const MbSurface *surf, double &lPlus, double &lMinus) |
Find the distances from a contour on a plane to a surface. More... | |
void | CreateExtrusionCutSurfaces (const MbSurface &surface, const c3d::PlaneContoursSPtrVector &contours, const MbVector3D &direction, ExtrusionValues ¶ms, VERSION version, MbResultType &resType, std::vector< std::pair< c3d::SurfaceSPtr, int >> &surfAndDir) |
Create cutter surfaces for extrusion of planar contours. More... | |
void | GetDistanceToCube (const MbSurface &surface, const MbVector3D &direction, const MbCurve &curve, const MbCube &cube, double &lPlus, double &lMinus, MbResultType &resType) |
Find the distances from a contour on a surface to the bounding box of a shell. More... | |
void | GetDistanceToCube (const MbSurface &surface, const MbVector3D &direction, const RPArray< MbCurve > &curves, const MbCube &cube, double &lPlus, double &lMinus, MbResultType &resType) |
Find the distances from curves on a surface to the bounding box of a shell. More... | |
bool | GetDistanceToCube (const MbPlacement3D &pl, const MbFaceShell *shell, double &dPlus, double &dMinus, bool findMax=true) |
Find the distances from a plane to the bounding box of a shell. More... | |
void | GetRangeToCubeOrSurface (const MbCurve3D &curve, const MbVector3D &direction, const MbAxis3D &axis, const bool rotation, bool operationDirection, const MbCube *toCube, const MbSurface *toSurface, SweptValuesAndSides ¶ms, MbResultType &resType) |
Find the distances/angles from a contour to a bounding box or to a surface. More... | |
bool | GetNearestSolid (const MbNearestSolidParams ¶ms, MbNearestSolidResult &result) |
Find the nearest solids while extruding with option 'up to the nearest object'. More... | |
bool | GetNearestSolid (const MbPlacement3D &pl, RPArray< MbContour > &c, MbSweptLayout::Direction direction, RPArray< MbSolid > &solids, size_t &nPlus, size_t &nMinus) |
Find the nearest solids while extruding with option 'up to the nearest object'. More... | |
bool | GetNearestSolid (RPArray< MbCurve3D > &curves, const MbVector3D &direction, MbSweptLayout::Direction operationDirection, RPArray< MbSolid > &solids, size_t &nPlus, size_t &nMinus) |
Find the nearest solids while extruding with option 'up to the nearest object'. More... | |
MbResultType | CheckNurbsShell (const NurbsSurfaceValues ¶ms, const MbSolid &nsSolid, IProgressIndicator *progBar) |
Check a shell or a solid that consists of NURBS surfaces. More... | |
bool | AddTruncatingSketch (const MbPlacement3D &sketchPlace, RPArray< MbCurve > &sketchCurves, RPArray< MbSpaceItem > &items) |
Add a sketch to the array of truncating objects. More... | |
void | AddTruncatingCurve (const MbCurve3D &curve, RPArray< MbSpaceItem > &items) |
Add a curve to the array of truncating objects. More... | |
void | CheckShellingFaces (const SweptValues ¶ms, RPArray< MbFace > &faces) |
Check the correctness of shelling faces for creation of a thin-walled solid. More... | |
bool | ProjectVectorOn (const MbVector3D &v3d, const MbSurface &surface, const MbCartPoint &p2d, MbVector &v2d) |
Calculate the components of projection of a vector defined at a point on the surface. More... | |
MbSurface * | GetExtendedSurfaceCopy (MbCube &gabarit, const MbSurface &surf, const MbShellCuttingParams::ProlongState &prolongState, VERSION version) |
Extend a surface for cutting a solid. More... | |
bool | CreateFaces (const MbPlacement3D &place, const MbContour &contour, const MbVector3D &der, bool sense, const MbSNameMaker &n, RPArray< MbFace > &faces, bool useAddCount=false) |
Create a set of faces with topology of a prism. More... | |
bool | CreateFaces (const MbPlacement3D &place, const MbContour &contour, const MbVector3D &der, bool sense, const MbSNameMaker &n, c3d::FacesSPtrVector &faces, bool useAddCount=false) |
Create a set of faces with topology of a prism. More... | |
void | GetAutoReference (MbFaceShell &shell, const MbPlacement3D &place, const MbContour &contour, ptrdiff_t index, RibValues::ExtrudeSide &side, MbCartPoint3D &origin, MbVector3D &dir3D) |
Estimate parameters of extrusion for a rib. More... | |
MbCurve * | GetProjCurveOnSurface (const MbSurfaceIntersectionCurve &intersectCurve, bool first) |
Create a curve in the parameter space of a surface. More... | |
bool | IsSameSpineDirection (const MbCurve3D &curve, VERSION srcVersion, VERSION dstVersion) |
Check the invariance of the vector of spine direction in different versions. More... | |
MbeItemLocation | SecondContourLocation (const MbContour &contour1, const MbContour &contour2, double xEpsilon, double yEpsilon) |
Classify the position of the second contour relative to the first one. More... | |
bool | IsSpaceNear (const MbCurve &curve1, const MbCurve &curve2, double xEpsilon, double yEpsilon, double devSag=5.0 *Math::deviateSag) |
Determine whether the first curve is close to the second curve. More... | |
bool | IsSpaceNear (const MbCurve3D &curv, const MbSurface &surf, bool surfExt, double mEps, double devSag=5.0 *Math::deviateSag) |
Determine whether a curve is close to a surface. More... | |
bool | SurfaceFace (const MbSurface &surface, SPtr< MbFace > &face) |
Create the face on the base of arbitrary surface. More... | |
MbGrid * | SpaceGrid (const MbPlacement3D &place, const MbPlanarGrid &planarGrid, bool exact=false) |
Creating a three-dimensional grid on a two-dimensional grid. More... | |
MbItem * | ReplaceByInstance (MbItem *item, double ratioThreashhold=-1.0, bool makeCopy=false) |
Replace an item by an instance if the length from it's bounding box to the world origin is greater than it's diagonal by specified factor. More... | |
MbResultType | FloodFillResult (MbSolid &vessel, MbeCopyMode sameShell, const MbSweptData &bungData, const MbCartPoint3D &origin, const MbSNameMaker &names, MbSolid *&result) |
The construction of a "flood fill" volume located between the inner surface of the vessel and the bounding surface or body. More... | |
MbResultType | CreateFastener (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCartPoint3D &point, const FastenersValues ¶ms, const MbSNameMaker &names, RPArray< MbSolid > &results) |
Create fastener using 3D point. More... | |
MbResultType | CreateFasteners (const RPArray< MbSolid > &solids, MbeCopyMode sameShell, const MbCurve3D &curve, size_t number, const FastenersValues ¶ms, const MbSNameMaker &names, RPArray< MbSolid > &results) |
Create an array of fastener elements using 3d curve. More... | |
MbResultType | CreateMerging (MbSolid &solid, MbeCopyMode sameShell, c3d::FacesVector &faces, const MbNurbsParameters &uParam, const MbNurbsParameters &vParam, double tolerance, const MbSNameMaker &names, bool prolong, MbSolid *&result) |
Create a solid with one face instead selected faces. More... | |
bool | FindTouchedFaces (const MbSolid &solid1, const MbSolid &solid2, double precision, c3d::IndicesPairsVector &facesNumbers) |
To find contacted faces of bodies. More... | |
bool | SplitTouchedFaces (MbSolid &solid1, MbSolid &solid2, double precision, c3d::IndicesPairsVector &facesNumbers) |
To find contacted faces of bodies. More... | |
MbResultType | TouchedSolidsMerging (MbSolid &solid1, MbeCopyMode sameShell1, MbSolid &solid2, MbeCopyMode sameShell2, const MbSNameMaker &names, double precision, MbSolid *&result) |
The function performs unite the bodies with contacted faces. More... | |
MbResultType | SolidRepairing (MbSolid &solid, double accuracy) |
Solid repairing. More... | |
void | FindFilletFaces (const RPArray< MbFace > &faces, double accuracy, RPArray< MbFace > &filletFaces) |
Find fillet and chamfer faces. More... | |
bool | IsFilletFace (const MbFace &face, double accuracy) |
Recognize fillet face. More... | |
c3d::SolidSPtr | GetTransformedSolid (c3d::SolidSPtr &solid, MbeCopyMode ©Mode, const MbMatrix3D &matr, SimpleName transformedMainName=ct_TransformedSolid) |
Get transformed copy of a solid. More... | |
template<class Item > | |
SPtr< Item > | GetTransformedItem (SPtr< Item > &item, const MbMatrix3D &matr, MbRegDuplicate *iDupReg=nullptr, MbRegTransform *iTransReg=nullptr) |
Get transformed copy of object. More... | |
Functions for operating with curves, surfaces, shells and solids.