C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

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

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

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

 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 ()
 Деструктор.
 
Общие функции геометрического объекта.
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 CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Построить полигональную копию mesh. Подробнее...
 
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
 Есть ли имя. Подробнее...
 
Функции работы с телами, на которых нарезана резьба.
template<class ConstLumps >
void AddBodies (const ConstLumps &initBodies)
 Добавить тела. Подробнее...
 
bool IsBody (const MbLump *) const
 Найти тело. Подробнее...
 
size_t GetBodiesCount () const
 Количество тел.
 
template<class ConstLumps >
void GetBodies (ConstLumps &lumps) const
 Получить тело. Подробнее...
 
void DetachWrongBodies ()
 Отцепить тела, не принадлежащие этой резьбе. Подробнее...
 
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 IsBodyThread (const MbLump &lump) 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 &)
 
- Открытые члены унаследованные от MbLegend
virtual ~MbLegend ()
 Деструктор.
 
virtual MbeSpaceType Family () const
 Получить семейство объекта.
 
- Открытые члены унаследованные от MbSpaceItem
virtual ~MbSpaceItem ()
 Деструктор.
 
void PrepareWrite ()
 Регистрация объекта. Подробнее...
 
virtual MbeRefType RefType () const
 Получить регистрационный тип (для копирования, дублирования).
 
virtual bool IsFamilyRegistrable () const
 Принадлежит ли объект к регистрируемому семейству.
 
void CalculateWire (const MbStepData &stepData, MbMesh &mesh) const
 
void CalculateWire (double sag, MbMesh &mesh) const
 
virtual void GetBasisItems (RPArray< MbSpaceItem > &)
 Выдать базовые объекты в присланный контейнер.
 
- Открытые члены унаследованные от TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Конструктор.
 
 TapeBase (const TapeBase &other)
 Конструктор копирования
 
virtual ~TapeBase ()
 Деструктор.
 
RegistrableRec GetRegistrable () const
 Является ли потоковый класс регистрируемым.
 
void SetRegistrable (RegistrableRec regs=registrable) const
 Установить состояние регистрации потокового класса.
 
virtual ClassDescriptor GetClassDescriptor (const VersionContainer &) const =0
 Получить дескриптор класса
 
virtual const char * GetPureName (const VersionContainer &) const
 Получить имя класса.
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 

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

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

Дополнительные унаследованные члены

- Защищенные члены унаследованные от MbLegend
 MbLegend ()
 Конструктор.
 
- Защищенные члены унаследованные от MbSpaceItem
 MbSpaceItem ()
 Конструктор без параметров.
 

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

Резьба.

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

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

◆ MbThread() [1/2]

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

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

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

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

◆ MbThread() [2/2]

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- Угол конусности поверхности резьбы.

Методы

◆ Duplicate()

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

Создать копию объекта.

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

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

Замещает MbLegend.

◆ IsSame()

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

Определить, являются ли объекты равными.

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

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

Замещает MbLegend.

◆ IsSimilar()

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

Определить, являются ли объекты подобными.

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

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

Замещает MbLegend.

◆ SetEqual()

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

Сделать объекты равным, если они подобны.

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

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

Замещает MbLegend.

◆ Transform()

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

Преобразовать объект согласно матрице.

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

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

Замещает MbLegend.

◆ Move()

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

Сдвинуть объект вдоль вектора.

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

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

Замещает MbLegend.

◆ Rotate()

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

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

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

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

Замещает MbLegend.

◆ DistanceToPoint()

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

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

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

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

Замещает MbLegend.

◆ AddYourGabaritTo()

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

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

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

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

Замещает MbLegend.

◆ CalculateMesh()

virtual void MbThread::CalculateMesh ( const MbStepData stepData,
const MbFormNote note,
MbMesh mesh 
) const
virtual

Построить полигональную копию mesh.

Построить полигональную копию данного объекта, представленную полигонами, или/и плоскими пластинами.

Аргументы
[in]stepData- Данные для вычисления шага при построении полигонального.
[in]note- Способ построения полигонального объекта.
[in,out]mesh- Построенный полигональный объект.

Замещает MbLegend.

◆ GetProperties()

virtual void MbThread::GetProperties ( MbProperties properties)
virtual

Выдать свойства объекта.

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

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

Замещает MbLegend.

◆ SetProperties()

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

Изменить свойства объекта.

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

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

Замещает MbLegend.

◆ SetThreadParams() [1/2]

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

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

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

Аргументы
[in]place- Система координат.
[in]radObj- Начальный радиус резьбы (на поверхности).
[in]radThr- Конечный радиус резьбы.
[in]len- Длина резьбы.
[in]ang- Угол.

◆ SetThreadParams() [2/2]

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- Угол.

◆ SetName()

void MbThread::SetName ( const MbName n)
inline

Установить имя.

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

Аргументы
[in]n- Новое имя.

◆ GetName()

MbName* MbThread::GetName ( ) const
inline

Получить имя.

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

Возвращает
Указатель на имя.

◆ IsName()

bool MbThread::IsName ( ) const
inline

Есть ли имя.

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

Возвращает
true, если имя есть и оно не пустое.

◆ AddBodies()

template<class ConstLumps >
void MbThread::AddBodies ( const ConstLumps &  initBodies)
inline

Добавить тела.

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

Аргументы
[in]lumps- Набор тел.

◆ IsBody()

bool MbThread::IsBody ( const MbLump ) const

Найти тело.

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

Возвращает
Индекс тела.
SYS_MAX_T, если тело не найдено.

◆ GetBodies()

template<class ConstLumps >
void MbThread::GetBodies ( ConstLumps &  lumps) const
inline

Получить тело.

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


Аргументы
[in]ind- Индекс тела.
Возвращает
Указатель на тело,
или NULL в случае некорректного индекса. Получить тела.

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

Аргументы
[out]lumps- Результат - набор тел.

◆ DetachWrongBodies()

void MbThread::DetachWrongBodies ( )

Отцепить тела, не принадлежащие этой резьбе.

Отцепить тела, не принадлежащие этой резьбе.

◆ IsValid()

bool MbThread::IsValid ( ) const

Корректны ли параметры.

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

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

◆ IsConical()

bool MbThread::IsConical ( ) const

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

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

Возвращает
true, если значение угла не нулевое.

◆ IsOutside()

bool MbThread::IsOutside ( ) const

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

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

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

Возвращает
Признак внешней резьбы.

◆ IsLeft()

bool MbThread::IsLeft ( ) const
inline

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

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

Возвращает
true, если система координат резьбы левая.

◆ IsMatedTo()

bool MbThread::IsMatedTo ( const MbThread otherThread) const

Сопрягаются ли резьбы.

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

Аргументы
[in]otherThread- Вторая резьба.


Возвращает
true, если резьбы сопрягяемые.

◆ IsBodyThread() [1/2]

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, если резьба принадлежит одной из граней тела.

◆ IsBodyThread() [2/2]

bool MbThread::IsBodyThread ( const MbLump lump) const
inline

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

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

Аргументы
[in]solid- Тело.
[in]matrix- Матрица преобразования в мировую систему координат.
[out]simObjNumbers- Индексы граней, которым может принадлежать резьба.
[out]intObjNumbers- Индексы граней, c которым может пересекаться резьба.
Возвращает
true, если резьба принадлежит одной из граней тела.

◆ AdaptToBody()

bool MbThread::AdaptToBody ( const MbSolid solid,
const MbMatrix3D matrix,
MbeThrAdapt  thrAdapt,
const ThreadLimiters *  limiters = NULL 
)

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

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

Аргументы
[in]solid- Тело.
[in]matrix- Матрица преобразования в мировую систему координат.
[in]thrAdapt- Метод подгонки резьбы.
[in]limiters- Начальный и конечный ограничители резьбы.
Возвращает
true в случае успеха операции.

◆ GetLimitPositions()

bool MbThread::GetLimitPositions ( const MbThread thread,
double &  begPos,
double &  endPos 
) const

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

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

Аргументы
[in]thread- Исходная резьба.
[out]begPos- Положение начала резьбы.
[out]endPos- Положение конца резьбы.
Возвращает
true Если резьбы подобны.

◆ FindThreadBodies()

bool MbThread::FindThreadBodies ( const RPArray< MbSolid > &  solids,
const SArray< MbMatrix3D > &  matrix,
SArray< size_t > &  solidsNumbers 
) const

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

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

Аргументы
[in]solids- Набор тел.
[in]matrix- Набор матриц преобразования тел в мировую систему координат. Количество должно соответствовать количеству тел.
[out]solidsNumbers- Номера тел, которым может принадлежать резьба.
Возвращает
true, если резьба принадлежит хотя бы одному телу.

◆ CalculateLocalGabarit()

void MbThread::CalculateLocalGabarit ( const MbMatrix3D mIntoLocal,
MbCube cubeLocal 
) const
virtual

Рассчитать габаритный куб резьбы.

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

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

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


Объявления и описания членов класса находятся в файле: