C3D Kernel  104065
Открытые типы | Открытые члены | Защищенные данные

Резьба. Подробнее...

Граф наследования:MbThread:
Inheritance graph
[см. легенду]
Граф связей класса MbThread:
Collaboration graph
[см. легенду]

Полный список членов класса

Открытые типы

typedef std::pair< const
MbSpaceItem *, MbMatrix3D
ThreadLimiter
typedef std::pair
< ThreadLimiter, ThreadLimiter > 
ThreadLimiters

Открытые члены

 MbThread (const MbPlacement3D &place, double rObj, double rThr, double len, double ang)
 Конструктор.
 MbThread (const MbPlacement3D &place, double rObj, double rThr, double begPos, double endPos, double ang)
 Конструктор.
virtual ~MbThread ()
 Деструктор.
const MbFace_GetObjectFace () const
const MbFace_GetThreadFace () const
Общие функции геометрического объекта.
virtual MbeSpaceType IsA () const
 Получить тип объекта.
virtual MbeSpaceType Type () const
 Получить групповой тип объекта.
virtual MbSpaceItemDuplicate (MbRegDuplicate *=NULL) const
 Создать копию объекта.
virtual bool IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли объекты равными.
virtual bool IsSimilar (const MbSpaceItem &) const
 Определить, являются ли объекты подобными.
virtual bool SetEqual (const MbSpaceItem &)
 Сделать объекты равным, если они подобны.
virtual void Transform (const MbMatrix3D &, MbRegTransform *=NULL)
 Преобразовать объект согласно матрице.
virtual void Move (const MbVector3D &, MbRegTransform *=NULL)
 Сдвинуть объект вдоль вектора.
virtual void Rotate (const MbAxis3D &, double, MbRegTransform *=NULL)
 Повернуть объект вокруг оси на заданный угол.
virtual double DistanceToPoint (const MbCartPoint3D &) const
 Определить расстояние до точки.
virtual void AddYourGabaritTo (MbCube &) const
 Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.
virtual void Refresh ()
 Перевести все временные (mutable) данные объекта в неопределённое (исходное) состояние.
virtual void CalculateWire (const MbStepData &stepData, MbMesh &) const
 Создать полигональную копию.
virtual MbPropertyCreateProperty (MbePrompt n) const
 Создать собственное свойство с заданием его имени.
virtual void GetProperties (MbProperties &)
 Выдать свойства объекта.
virtual void SetProperties (const MbProperties &)
 Изменить свойства объекта.
virtual void GetBasisPoints (MbControlData3D &) const
 Выдать контрольные точки объекта.
virtual void SetBasisPoints (const MbControlData3D &)
 Изменить объект по контрольным точкам.
Функции инициализации.
bool SetThreadParams (const MbPlacement3D &place, double radObj, double radThr, double len, double ang)
 Инициализация.
bool SetThreadParams (const MbPlacement3D &place, double diamObj, double depth, bool bOutThr, double len, double ang)
 Инициализация.
Функции работы с именами.
void SetName (const MbName &n)
 Установить имя.
MbNameGetName () const
 Получить имя.
bool IsName () const
 Есть ли имя.
Функции работы с телами, на которых нарезана резьба.
void AddBodies (const RPArray< MbLump > &lumps)
 Добавить тела.
size_t FindBody (const MbLump *) const
 Найти тело.
size_t GetBodiesCount () const
 Количество тел.
ptrdiff_t GetBodiesMaxIndex () const
 Индекс последнего тела.
const MbLumpGetBody (size_t ind) const
 Получить тело.
void GetBodies (RPArray< MbLump > &lumps) const
 Получить тела.
bool DetachBody (size_t ind)
 Отцепить тело.
void DetachBodies ()
 Отцепить тела, на которых нарезана резьба.
Функции доступа к данным. Информация о резьбе.
bool IsValid () const
 Корректны ли параметры.
bool IsConical () const
 Является ли резьба конической.
bool IsOutside () const
 Является ли резьба внешней.
bool IsLeft () const
 Является ли резьба левой.
const MbPlacement3DGetPlacement () const
 Получить СК резьбы в мировой СК.
double GetObjBegRadius () const
 Получить начальный радиус резьбы на поверхности.
double GetObjEndRadius () const
 Получить конечный радиус резьбы на поверхности.
double GetThrBegRadius () const
 Получить начальный радиус резьбы в теле.
double GetThrEndRadius () const
 Получить конечный радиус резьбы в теле.
double GetLength () const
 Получить длину резьбы.
double GetAngle () const
 Получить угол конусности поверхности резьбы.
MbeThrState GetState () const
 Узнать состояние резьбы.
double GetDepth () const
 Глубина нарезки.
void GetBegAxisPoint (MbCartPoint3D &) const
 Получить начальную точку резьбы на оси.
void GetEndAxisPoint (MbCartPoint3D &) const
 Получить конечную точку резьбы на оси.
bool IsMatedTo (const MbThread &otherThread) const
 Сопрягаются ли резьбы.
bool IsFaceThread (const MbFace *, const MbMatrix3D &) const
 Принадлежит ли резьба грани.
bool IsBodyThread (const MbSolid &solid, const MbMatrix3D &matrix, SArray< ptrdiff_t > *simObjNumbers=NULL, SArray< ptrdiff_t > *intObjNumbers=NULL) const
 Принадлежит ли резьба телу.
bool AdaptToBody (const MbSolid &solid, const MbMatrix3D &matrix, MbeThrAdapt thrAdapt, const ThreadLimiters *limiters=NULL)
 Адаптировать начало и конец резьбы к телу.
bool GetLimitPositions (const MbThread &thread, double &begPos, double &endPos) const
 Выдать начало и конец изменённой резьбы относительно исходной.
bool FindThreadBodies (const RPArray< MbSolid > &solids, const SArray< MbMatrix3D > &matrix, SArray< size_t > &solidsNumbers) const
 Найти тела, которым может принадлежать резьба.
const MbCubeCalculateGabarit () const
 Рассчитать габаритный куб резьбы.
void CalculateLocalGabarit (const MbMatrix3D &mIntoLocal, MbCube &cubeLocal) const
 Рассчитать габаритный куб резьбы.
void Init (const MbThread &)

Защищенные данные

MbPlacement3D place
 Система координат резьбы (в мировой системе координат).
double radObj
 Начальный радиус резьбы на поверхности.
double radThr
 Начальный радиус резьбы в теле.
double length
 Длина резьбы.
double angle
 Угол конусности поверхности резьбы.

Подробное описание

Резьба отверстий и валов.


Конструктор(ы)

MbThread::MbThread ( const MbPlacement3D place,
double  rObj,
double  rThr,
double  len,
double  ang 
)

Конструктор.

Аргументы:
[in]place- Система координат.
[in]rObj- Начальный радиус резьбы на поверхности.
[in]rThr- Начальный радиус резьбы в теле.
[in]len- Длина резьбы.
[in]ang- Угол конусности поверхности резьбы.
MbThread::MbThread ( const MbPlacement3D place,
double  rObj,
double  rThr,
double  begPos,
double  endPos,
double  ang 
)

Конструктор.

Аргументы:
[in]place- Система координат.
[in]rObj- Начальный радиус резьбы на поверхности.
[in]rThr- Начальный радиус резьбы в теле.
[in]begPos- Положение начала резьбы вдоль оси Z системы координат.
[in]begPos- Положение конца резьбы вдоль оси Z системы координат.
[in]ang- Угол конусности поверхности резьбы.

Методы

virtual MbSpaceItem& MbThread::Duplicate ( MbRegDuplicate iReg = NULL) const [virtual]

Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.

Аргументы:
[in]iReg- Регистратор.
Возвращает:
Копия объекта.

Замещает MbLegend.

virtual bool MbThread::IsSame ( const MbSpaceItem other,
double  accuracy = LENGTH_EPSILON 
) const [virtual]

Равными считаются однотипные объекты, все данные которых одинаковы (равны).

Аргументы:
[in]item- Объект для сравнения.
[in]accuracy- Точность сравнения.
Возвращает:
Равны ли объекты.

Замещает MbLegend.

virtual bool MbThread::IsSimilar ( const MbSpaceItem item) const [virtual]

Подобными считаются однотипные объекты, данные которых можно приравнять или данные так же являются подобными (указатели). Подобный объект можно инициализировать по данным подобного ему объекта (приравнять один другому без изменения адресов).

Аргументы:
[in]item- Объект для сравнения.
Возвращает:
Подобны ли объекты.

Замещает MbLegend.

virtual bool MbThread::SetEqual ( const MbSpaceItem item) [virtual]

Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.

Аргументы:
[in]item- Объект для инициализации.
Возвращает:
Сделан ли объект равным присланному.

Замещает MbLegend.

virtual void MbThread::Transform ( const MbMatrix3D matr,
MbRegTransform iReg = NULL 
) [virtual]

Преобразовать исходный объект согласно матрице c использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то вложенные объекты так же преобразуются согласно матрице. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих трансформации.

Аргументы:
[in]matr- Матрица преобразования.
[in]iReg- Регистратор.

Замещает MbLegend.

virtual void MbThread::Move ( const MbVector3D to,
MbRegTransform iReg = NULL 
) [virtual]

Сдвинуть геометрический объект вдоль вектора с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция сдвига. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих сдвигу.

Аргументы:
[in]to- Вектор сдвига.
[in]iReg- Регистратор.

Замещает MbLegend.

virtual void MbThread::Rotate ( const MbAxis3D axis,
double  angle,
MbRegTransform iReg = NULL 
) [virtual]

Повернуть объект вокруг оси на заданный угол с использованием регистратора. Если объект содержит ссылки на другие геометрические объекты, то к вложенным объектам так же применяется операция поворота. Регистратор служит для предотвращения многократного преобразования объекта. Допустимо использовать функцию без регистратора, если надо преобразовать одиночный объект. Если надо преобразовать набор взаимосвязанных объектов, необходимо использовать регистратор для предотвращения повторного преобразования вложенных объектов, поскольку не исключена ситуация, когда несколько объектов из набора содержат ссылки на один или несколько общих объектов, подлежащих повороту.

Аргументы:
[in]axis- Ось поворота.
[in]angle- Угол поворота.
[in]iReg- Регистратор.

Замещает MbLegend.

virtual double MbThread::DistanceToPoint ( const MbCartPoint3D point) const [virtual]

Определить расстояние до точки.

Аргументы:
[in]point- Точка.
Возвращает:
Расстояние от объекта до точки.

Замещает MbLegend.

virtual void MbThread::AddYourGabaritTo ( MbCube cube) const [virtual]

Расширить присланный габаритный куб так, чтобы он включал в себя данный объект.

Аргументы:
[in,out]cube- Принимающий габаритный куб с информацией по габаритам.

Замещает MbLegend.

virtual void MbThread::CalculateWire ( const MbStepData stepData,
MbMesh mesh 
) const [virtual]

Создать полигональную копию данного объекта, представленную полигонами. Полигональный объект будет содержать только полигоны MbPolygon3D.

Аргументы:
[in]sag- Максимальное отклонение полигонального объекта от оригинала по прогибу.
[in,out]mesh- Принимающий полигональный объект.

Замещает MbLegend.

virtual void MbThread::GetProperties ( MbProperties properties) [virtual]

Выдать внутренние данные (свойства) объекта для их просмотра и модификации.

Аргументы:
[in]properties- Контейнер для внутренних данных объекта.

Замещает MbLegend.

virtual void MbThread::SetProperties ( const MbProperties properties) [virtual]

Изменение внутренних данных (свойств) объекта выполняется копированием соответствующих значений из присланного объекта.

Аргументы:
[in]properties- Контейнер для внутренних данных объекта.

Замещает MbLegend.

bool MbThread::SetThreadParams ( const MbPlacement3D place,
double  radObj,
double  radThr,
double  len,
double  ang 
)

Инициализация.

Аргументы:
[in]place- Система координат.
[in]radObj- Начальный радиус резьбы (на поверхности).
[in]radThr- Конечный радиус резьбы.
[in]len- Длина резьбы.
[in]ang- Угол.
bool MbThread::SetThreadParams ( const MbPlacement3D place,
double  diamObj,
double  depth,
bool  bOutThr,
double  len,
double  ang 
)

Инициализация.

Аргументы:
[in]place- Система координат.
[in]diamObj- Начальный диаметр.
[in]depth- Глубина нарезки
[in]bOutThr- Признак внешней резьбы.
если true - резьба внешняя,
если false - резьба внутренняя.
[in]len- Длина резьбы.
[in]ang- Угол.
void MbThread::SetName ( const MbName n) [inline]

Установить имя резьбы.

Аргументы:
[in]n- Новое имя.
MbName* MbThread::GetName ( ) const [inline]

Получить имя резьбы.

Возвращает:
Указатель на имя.
bool MbThread::IsName ( ) const [inline]

Есть ли имя у резьбы.

Возвращает:
true, если имя есть и оно не пустое.
void MbThread::AddBodies ( const RPArray< MbLump > &  lumps)

Добавить тела, на которых нарезана резьба.
Не добавляются нулевые указатели из присланного массива, не добавляются повторяющиеся объекты.

Аргументы:
[in]lumps- Набор тел.
size_t MbThread::FindBody ( const MbLump ) const

Найти тело в массиве.

Возвращает:
Индекс тела.
SYS_MAX_T, если тело не найдено.
const MbLump* MbThread::GetBody ( size_t  ind) const [inline]

Получить указатель на тело по индексу.

Аргументы:
[in]ind- Индекс тела.
Возвращает:
Указатель на тело,
или NULL в случае некорректного индекса.
void MbThread::GetBodies ( RPArray< MbLump > &  lumps) const [inline]

Получить массив тел.

Аргументы:
[out]lumps- Результат - набор тел.
bool MbThread::DetachBody ( size_t  ind)

Отцепить тело по индексу.

Аргументы:
[in]ind- Индекс тела.
Возвращает:
true, если тело отцеплено,
false, если индекс некорректен.
bool MbThread::IsValid ( ) const

Корректны ли параметры резьбы:

  • резьба не должна быть вырожденной,
  • cистема координат резьбы должна быть ортонормированной,
  • значения радиусов и длины должны быть не меньше минимального радиуса объекта MIN_RADIUS, не больше максимального радиуса объекта MAX_RADIUS,
  • радиусы должны быть различны,
  • угол не должен превосходить полный оборот,
  • резьба не должна иметь самопересечения.
Возвращает:
bool MbThread::IsConical ( ) const

Является ли резьба конической.

Возвращает:
true, если значение угла не нулевое.
bool MbThread::IsOutside ( ) const

Является ли резьба внешней.
Резьба внешняя, если начальный радиус резьбы больше конечного.

Возвращает:
Признак внешней резьбы.
bool MbThread::IsLeft ( ) const [inline]

Является ли резьба левой.

Возвращает:
true, если система координат резьбы левая.
bool MbThread::IsMatedTo ( const MbThread otherThread) const

Сопрягаются ли резьбы (внутренняя с внешней.
1) Резьбы должны иметь одинаковый угол.
2) Одна резьба должна быть внутренней, другая внешней.
3) У обоих объектов должны быть корректные параметры.
4) Оси резьб должны быть параллельны.

Аргументы:
[in]otherThread- Вторая резьба.
Возвращает:
true, если резьбы сопрягяемые.
bool MbThread::IsBodyThread ( const MbSolid solid,
const MbMatrix3D matrix,
SArray< ptrdiff_t > *  simObjNumbers = NULL,
SArray< ptrdiff_t > *  intObjNumbers = NULL 
) const

Принадлежит ли резьба телу.

Аргументы:
[in]solid- Тело.
[in]matrix- Матрица преобразования в мировую систему координат.
[out]simObjNumbers- Индексы граней, которым может принадлежать резьба.
[out]intObjNumbers- Индексы граней, c которым может пересекаться резьба.
Возвращает:
true, если резьба принадлежит одной из граней тела.
bool MbThread::AdaptToBody ( const MbSolid solid,
const MbMatrix3D matrix,
MbeThrAdapt  thrAdapt,
const ThreadLimiters *  limiters = NULL 
)

Адаптировать начало и конец резьбы к телу, если резьба может принадлежать телу.

Аргументы:
[in]solid- Тело.
[in]matrix- Матрица преобразования в мировую систему координат.
[in]thrAdapt- Метод подгонки резьбы.
[in]limiters- Начальный и конечный ограничители резьбы.
Возвращает:
true в случае успеха операции.
bool MbThread::GetLimitPositions ( const MbThread thread,
double &  begPos,
double &  endPos 
) const

Выдать начало и конец изменённой резьбы относительно исходной вдоль оси Z системы координат исходной резьбы.

Аргументы:
[in]thread- Исходная резьба.
[out]begPos- Положение начала резьбы.
[out]endPos- Положение конца резьбы.
Возвращает:
true Если резьбы подобны.
bool MbThread::FindThreadBodies ( const RPArray< MbSolid > &  solids,
const SArray< MbMatrix3D > &  matrix,
SArray< size_t > &  solidsNumbers 
) const

Найти тела, которым может принадлежать резьба.

Аргументы:
[in]solids- Набор тел.
[in]matrix- Набор матриц преобразования тел в мировую систему координат. Количество должно соответствовать количеству тел.
[out]solidsNumbers- Номера тел, которым может принадлежать резьба.
Возвращает:
true, если резьба принадлежит хотя бы одному телу.
void MbThread::CalculateLocalGabarit ( const MbMatrix3D mIntoLocal,
MbCube cubeLocal 
) const [virtual]

Рассчитать габаритный куб резьбы в локальной системе координат.

Аргументы:
[in]mIntoLocal- Локальная система координат.
[out]cubeLocal- Результат - посчитанный габарит.

Переопределяет метод предка MbLegend.


Объявления и описания членов класса находятся в файле:
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы