8c5bd7cfae
- C3d aggiornamento delle librerie ( 117952).
256 lines
20 KiB
C++
256 lines
20 KiB
C++
////////////////////////////////////////////////////////////////////////////////
|
|
/**
|
|
\file
|
|
\brief \ru Строитель оболочки из листового материала штамповкой телом-инструментом.
|
|
\en Constructor of a shell from the sheet material with stamping by a tool solid.
|
|
*/
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef __CR_STAMP_USER_SOLID_H
|
|
#define __CR_STAMP_USER_SOLID_H
|
|
|
|
|
|
#include <creator.h>
|
|
#include <sheet_metal_param.h>
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Строитель оболочки из листового материала штамповкой телом-инструментом.
|
|
\en Constructor of a shell from the sheet material with stamping by tool solid. \~
|
|
\details \ru Строитель оболочки из листового материала закрытой или открытой штамповкой телом-инструментом.
|
|
Тело-инструмент может являться пуансоном или матрицей.\n
|
|
Строятся штамповки двух типов: \n
|
|
закрытая - не указаны вскрываемые грани тела-инструмента, \n
|
|
открытая - когда лист пробит штамповкой насквозь, указаны вскрываемые грани. \n
|
|
\en Constructor of a shell from the sheet material by open or closed stamping by tool solid.
|
|
The tool solid may be a punch or a die. \n
|
|
Stamping of two types are constructed: \n
|
|
closed - pierce faces of tool solid are not specified, \n
|
|
open - when a sheet is punched through by stamping, pierce faces of tool solid are specified. \n \~
|
|
\ingroup Model_Creators
|
|
*/
|
|
// ---
|
|
class MATH_CLASS MbUserStampSolid : public MbCreator {
|
|
private:
|
|
MbItemIndex faceIndex; ///< \ru Индекс грани, на которой строится штамповка. \en Index of the face the stamping is constructed on.
|
|
MbItemIndex pairFaceIndex; ///< \ru Индекс грани парной к грани штамповки. \en Index of the face which is pair to the stamp face.
|
|
SArray<MbItemIndex> pierceIndices; ///< \ru Индексы граней для вырубки. \en Face indicies for opening.
|
|
RPArray<MbCreator> creators; ///< \ru Журнал построения оболочки тела-инструмента. \en History tree of the shell of the tool solid.
|
|
size_t countOne; ///< \ru Разделитель строителей тел-операндов. \en Separator of operand solids creators.
|
|
MbToolStampingValues parameters; ///< \ru Параметры штамповки. \en Stamping parameters.
|
|
double thickness; ///< \ru Толщина листа. \en The thickness of the sheet metal.
|
|
bool punch; ///< \ru Является тело-инструмент пуансоном или матрицей? \en Is tool body a punch or a die.
|
|
|
|
public :
|
|
MbUserStampSolid( const RPArray<MbCreator> & creatorsTool,
|
|
const bool sameTool,
|
|
const MbItemIndex & faceIndex,
|
|
const MbItemIndex & pairFaceIndex,
|
|
SArray<MbItemIndex> & pierceIndices,
|
|
const MbToolStampingValues & params,
|
|
const double thickness,
|
|
const bool isPunch,
|
|
const MbSNameMaker & names );
|
|
private:
|
|
MbUserStampSolid( const MbUserStampSolid &, MbRegDuplicate * iReg );
|
|
|
|
public:
|
|
virtual ~MbUserStampSolid();
|
|
|
|
// \ru Общие функции математического объекта. \en Common functions of the mathematical object.
|
|
|
|
MbeCreatorType IsA() const override; // \ru Тип элемента. \en A type of element.
|
|
MbCreator & Duplicate( MbRegDuplicate * = nullptr ) const override; // \ru Сделать копию. \en Create a copy.
|
|
|
|
bool IsSame ( const MbCreator & other, double accuracy ) const override; // \ru Являются ли объекты равными? \en Determine whether an object is equal?
|
|
bool IsSimilar( const MbCreator & item ) const override; // \ru Являются ли объекты подобными? \en Determine whether an object is similar?
|
|
bool SetEqual ( const MbCreator & ) override; // \ru Сделать равным. \en Make equal.
|
|
|
|
void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ) override; // \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix.
|
|
void Move ( const MbVector3D &, MbRegTransform * = nullptr ) override; // \ru Сдвиг. \en Translation.
|
|
void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ) override; // \ru Повернуть вокруг оси. \en Rotate around an axis.
|
|
|
|
void GetProperties ( MbProperties &properties ) override; // \ru Выдать свойства объекта. \en Get properties of the object.
|
|
void SetProperties ( const MbProperties &properties ) override; // \ru Записать свойства объекта. \en Set properties of the object.
|
|
MbePrompt GetPropertyName() override; // \ru Выдать заголовок свойства объекта. \en Get a name of object property.
|
|
|
|
// \ru Общие функции твердого тела. \en Common functions of solid.
|
|
|
|
bool CreateShell( MbFaceShell *&shell, MbeCopyMode sameShell,
|
|
RPArray <MbSpaceItem> *items = nullptr ) override; // \ru Построение оболочки штамповки. \en Construction of a stamping shell.
|
|
|
|
// \ru Получить параметры. \en Get the parameters.
|
|
void GetParameters( MbToolStampingValues & params ) const { params = parameters; }
|
|
// \ru Установить параметры. \en Set the parameters.
|
|
void SetParameters( const MbToolStampingValues & params ) { parameters = params; }
|
|
|
|
private:
|
|
OBVIOUS_PRIVATE_COPY( MbUserStampSolid )
|
|
DECLARE_PERSISTENT_CLASS_NEW_DEL( MbUserStampSolid )
|
|
}; // MbUserStampSolid
|
|
|
|
IMPL_PERSISTENT_OPS( MbUserStampSolid )
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Построить оболочку из листового материала штамповкой телом-инструментом.
|
|
\en Construct a shell form sheet material by tool body stamping. \~
|
|
\details \ru На базе исходной оболочки из листового материала построить оболочку методом закрытой или открытой штамповки. \n
|
|
Одновременно с построением оболочки функция создаёт её строитель.\n
|
|
\en A shell is to be constructed on the basis of the source shell by the method of closed or open stamping. \n
|
|
The function simultaneously creates the shell and its constructor.\n \~
|
|
\param[in] initialShell - \ru Исходная оболочка.
|
|
\en The source shell. \~
|
|
\param[in] sameShell - \ru Режим копирования исходной оболочки.
|
|
\en Mode of copying the source shell. \~
|
|
\param[in] targetFace - \ru Грань штамповки.
|
|
\en The face for stamping. \~
|
|
\param[in] creatorsTool - \ru Журнал построения инструмента.
|
|
\en A creator of the tool.
|
|
\param[in] toolShell - \ru Оболочка тела-инструмента.
|
|
\en A shell of tool solid. \~
|
|
\param[in] sameShellTool - \ru Режим копирования оболочки тела-инструмента.
|
|
\en Mode of copying the tool shell. \~
|
|
\param[in] isPunch - \ru Является тело-инструмент пуансоном или матрицей.
|
|
\en Is tool body a punch or a die. \~
|
|
\param[in] pierceFaces - \ru Вскрываемые для вырубки грани инструмента,
|
|
\en Pierce faces of tool body. \~
|
|
\param[in] params - \ru Параметры штамповки.
|
|
\en The parameters of stamping. \~
|
|
\param[in] nameMaker - \ru Именователь.
|
|
\en An object for naming the new objects. \~
|
|
\param[out] res - \ru - Код результата операции.
|
|
\en - The operation result code. \~
|
|
\param[out] resultShell - \ru Результирующее тело.
|
|
\en The resultant solid. \~
|
|
\result \ru Возвращает строитель оболочки.
|
|
\en Returns the shell constructor. \~
|
|
\deprecated \ru Функция устарела, взамен использовать #CreateUserStamp с набором параметров #MbStampWithToolParams.
|
|
\en The function is deprecated, instead use #CreateUserStamp with the parameter list #MbStampWithToolParams. \~
|
|
\ingroup Model_Creators
|
|
*/
|
|
// ---
|
|
DEPRECATE_DECLARE_REPLACE( CreateUserStamp with 'MbStampWithToolParams' argument )
|
|
MATH_FUNC (MbCreator *) CreateUserStamp( MbFaceShell * initialShell, // Исходная оболочка,
|
|
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
|
const MbFace & targetFace, // грань штамповки,
|
|
const RPArray<MbCreator> & creatorsTool, // журнал построения инструмента,
|
|
MbFaceShell & toolShell, // оболочка тела-инструмента,
|
|
const MbeCopyMode sameShellTool, // флаг способа использования оболочки инструмента,
|
|
bool isPunch, // является инструмент пуансоном или матрицей,
|
|
const RPArray<MbFace> & pierceFaces, // вскрываемые для вырубки грани инструмента,
|
|
const MbToolStampingValues & params, // параметры штамповки,
|
|
const MbSNameMaker & nameMaker, // именователь,
|
|
MbResultType & res, // флаг успешности операции,
|
|
SPtr<MbFaceShell> & resultShell ); // результирующая оболочка
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Построить оболочку из листового материала штамповкой телом-инструментом.
|
|
\en Construct a shell form sheet material by tool body stamping. \~
|
|
\details \ru На базе исходной оболочки из листового материала построить оболочку методом закрытой или открытой штамповки. \n
|
|
Одновременно с построением оболочки функция создаёт её строитель.\n
|
|
\en A shell is to be constructed on the basis of the source shell by the method of closed or open stamping. \n
|
|
The function simultaneously creates the shell and its constructor.\n \~
|
|
\param[in] initialShell - \ru Исходная оболочка.
|
|
\en The source shell. \~
|
|
\param[in] sameShell - \ru Режим копирования исходной оболочки.
|
|
\en Mode of copying the source shell. \~
|
|
\param[in] toolShell - \ru Оболочка тела-инструмента.
|
|
\en A shell of tool solid. \~
|
|
\param[in] sameShellTool - \ru Режим копирования оболочки тела-инструмента.
|
|
\en Mode of copying the tool shell. \~
|
|
\param[in] params - \ru Параметры штамповки.
|
|
\en The parameters of stamping. \~
|
|
\param[out] res - \ru - Код результата операции.
|
|
\en - The operation result code. \~
|
|
\param[out] resultShell - \ru Результирующее тело.
|
|
\en The resultant solid. \~
|
|
\result \ru Возвращает строитель оболочки.
|
|
\en Returns the shell constructor. \~
|
|
\ingroup Model_Creators
|
|
*/
|
|
// ---
|
|
MATH_FUNC( c3d::CreatorSPtr ) CreateUserStamp( c3d::ShellSPtr & initialShell, // Исходная оболочка,
|
|
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
|
MbFaceShell & toolShell, // оболочка тела-инструмента,
|
|
const MbeCopyMode sameShellTool, // флаг способа использования оболочки инструмента,
|
|
const c3d::CreatorsSPtrVector & creatorsTool, // журнал построения инструмента,
|
|
const MbStampWithToolParams & stParams, // параметры штамповки
|
|
MbResultType & res, // флаг успешности операции,
|
|
c3d::ShellSPtr & resultShell ); // результирующая оболочка
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Построение результирующей оболочки.
|
|
\en Construction of result shell. \~
|
|
\details \ru На базе исходной оболочки из листового материала построить оболочку методом закрытой или открытой штамповки. \n
|
|
Одновременно с построением оболочки функция создаёт её строитель.\n
|
|
\en A shell is to be constructed on the basis of the source shell by the method of closed or open stamping. \n
|
|
The function simultaneously creates the shell and its constructor.\n \~
|
|
\param[in] initialShell - \ru Исходная оболочка.
|
|
\en The source shell. \~
|
|
\param[in] sameShell - \ru Режим копирования исходной оболочки.
|
|
\en Mode of copying the source shell. \~
|
|
\param[in] targetFace - \ru Грань штамповки.
|
|
\en The face for stamping. \~
|
|
\param[in] toolShell - \ru Оболочка тела-инструмента.
|
|
\en A shell of tool solid. \~
|
|
\param[in] sameShellTool - \ru Режим копирования оболочки тела-инструмента.
|
|
\en Mode of copying the tool shell. \~
|
|
\param[in] isPunch - \ru Является тело-инструмент пуансоном или матрицей.
|
|
\en Is tool body a punch or a die. \~
|
|
\param[in] pierceFaces - \ru Вскрываемые для вырубки грани инструмента,
|
|
\en Pierce faces of tool body. \~
|
|
\param[in] params - \ru Параметры штамповки.
|
|
\en The parameters of stamping. \~
|
|
\param[in] nameMaker - \ru Именователь.
|
|
\en An object for naming the new objects. \~
|
|
\result \ru - тело со штамповкой.
|
|
\en - The solid with stamping. \~
|
|
\ingroup Model_Creators
|
|
*/
|
|
// ---
|
|
DEPRECATE_DECLARE_REPLACE( StampWithToolSolid with 'MbStampWithToolPartsParams' argument )
|
|
MbFaceShell * MakeUserStampShellForStampParts ( MbFaceShell * initialShell, // Исходная оболочка,
|
|
const MbeCopyMode sameShell, // флаг способа использования исходной оболочки,
|
|
const MbFace & targetFace, // грань штамповки,
|
|
MbFaceShell & toolShell, // оболочка тела-инструмента,
|
|
const MbeCopyMode sameShellTool, // флаг способа использования оболочки инструмента,
|
|
bool isPunch, // является инструмент пуансоном или матрицей,
|
|
const RPArray<MbFace> & pierceFaces, // вскрываемые для вырубки грани инструмента,
|
|
const MbToolStampingValues & params, // параметры штамповки,
|
|
const MbSNameMaker & nameMaker ); // именователь,
|
|
|
|
|
|
//------------------------------------------------------------------------------
|
|
/** \brief \ru Построение результирующей оболочки.
|
|
\en Construction of result shell. \~
|
|
\details \ru На базе исходной оболочки из листового материала построить оболочку методом закрытой или открытой штамповки. \n
|
|
Одновременно с построением оболочки функция создаёт её строитель.\n
|
|
\en A shell is to be constructed on the basis of the source shell by the method of closed or open stamping. \n
|
|
The function simultaneously creates the shell and its constructor.\n \~
|
|
\param[in] initialShell - \ru Исходная оболочка.
|
|
\en The source shell. \~
|
|
\param[in] sameShell - \ru Режим копирования исходной оболочки.
|
|
\en Mode of copying the source shell. \~
|
|
\param[in] toolShell - \ru Оболочка тела-инструмента.
|
|
\en A shell of tool solid. \~
|
|
\param[in] sameShellTool - \ru Режим копирования оболочки тела-инструмента.
|
|
\en Mode of copying the tool shell. \~
|
|
\param[in] params - \ru Параметры штамповки.
|
|
\en The parameters of stamping. \~
|
|
\result \ru - тело со штамповкой.
|
|
\en - The solid with stamping. \~
|
|
\ingroup Model_Creators
|
|
*/
|
|
// ---
|
|
MbFaceShell * MakeUserStampShellForStampParts ( c3d::ShellSPtr & initialShell,
|
|
const MbeCopyMode sameShell,
|
|
MbFaceShell & toolShell,
|
|
const MbeCopyMode sameShellTool,
|
|
const MbStampWithToolPartsParams & params );
|
|
|
|
|
|
#endif // __CR_STAMP_USER_SOLID_H
|