Уклонение граней тела
Функция
MbResultType DraftSolid( MbSolid & solid,
MbeCopyMode sameShell,
const MbDraftSolidParams & draftParams,
MbDraftSolidResults & result );
выполняет построение тела с уклонением указанных граней тела от нейтральной изоплоскости или нейтральных рёбер на заданный угол.
Входными параметрами функции являются:
solid – исходное тело;
sameShell – режим копирования исходного тела;
draftParams – параметры уклона.
Выходным параметром функции является объект result класса MbDraftSolidResults, содержащий построенное тело уклона и атрибут хот-точки уклона.
Функция возвращает код результата операции из перечисления MbResultType.
Функция объявлена в файле action_solid.h.
Функция строит тело, грани которого уклонены относительно их положения в исходном теле solid.
Параметр sameShell управляет передачей граней, рёбер и вершин от исходного тела solid построенному телу result и может принимать одно из четырёх значений:
cm_Same = 0 (оболочка не копируется);
cm_KeepHistory (исходная оболочка и её копия имеют общие базовые поверхности, вершины и неизменённые операцией грани);
cm_KeepSurface (исходная оболочка и её копия имеют общие базовые поверхности);
cm_Copy (исходная оболочка и её копия не имеют общих данных).
Перечисление MbeCopyMode подробно описано в параграфе Копирование множества граней MbFaceShell.
Параметр draftParams задаёт параметры построения.
В классе MbDraftSolidParams для инициализации объекта draftParams с параметрами уклона используются следующие конструкторы (см. op_shell_parameter.h):
Конструкторы по нейтральной плоскости и именователю операции:
MbDraftSolidParams( const c3d::FacesSPtrVector & faces,
const MbPlacement3D & neutralPlane,
const MbSNameMaker & names,
double angle,
MbeFacePropagation faceProp,
bool reverse );
MbDraftSolidParams( const c3d::FacesSPtrVector & faces,
const MbPlacement3D & neutralPlane,
const MbSNameMaker & names,
double angle,
MbeFacePropagation faceProp,
bool reverse,
bool rebuildFillets );
MbDraftSolidParams( const RPArray<MbFace> & faces,
const MbPlacement3D & neutralPlane,
const MbSNameMaker & names,
double angle,
MbeFacePropagation faceProp,
bool reverse );
где
faces – уклоняемые грани;
neutralPlane – нейтральная плоскость;
names – именователь;
angle – угол уклона;
faceProp – признак захвата граней, гладко стыкующихся с уклоняемыми гранями;
reverse – флаг обратного направления уклона.
Конструкторы по набору рёбер и именователю:
MbDraftSolidParams( const c3d::FacesSPtrVector & faces,
const c3d::EdgesSPtrVector & edges,
const MbVector3D & dir,
const MbSNameMaker & names,
double angle,
MbeFacePropagation faceProp,
bool reverse );
MbDraftSolidParams( const c3d::FacesSPtrVector & faces,
const c3d::EdgesSPtrVector & edges,
const MbVector3D & dir,
const MbSNameMaker & names,
double angle,
MbeFacePropagation faceProp,
bool reverse,
bool rebuildFillets );
где
faces – уклоняемые грани;
edges – нейтральные рёбра;
dir – базовое направление;
names – именователь;
angle – угол уклона;
faceProp – признак захвата граней, гладко стыкующихся с уклоняемыми гранями;
reverse – флаг обратного направления уклона;
rebuildFillets – флаг перестройки прилежащих скруглений.
Параметр angle задаёт угол уклона указанных граней тела из множества faces относительно нейтральной плоскости neutralPlane или относительно нейтральных рёбер edges и направления dir (в зависимости от используемого конструктора).
Параметр faceProp управляет добавлением к множеству уклоняемых граней faces других граней тела, гладко стыкующихся с уклоняемыми гранями.
Параметр reverse управляет направлением уклона.
Параметр rebuildFillets управляет перестройкой прилежащих скруглений.
Параметр names обеспечивает именование граней, рёбер и вершин построенного тела.
На рис. 1 показаны исходное тело solid, нейтральная плоскость neutralPlane, относительно плоскости XY которой выполняется уклон граней, и уклоняемые грани faces:
Рис. 1
На рис. 2 приведён результат построения тела с уклоном указанных граней:
Рис. 2
Функция DraftSolid() добавляет в журнал построенного тела строитель MbDraftSolid, который содержит все необходимые данные для выполнения операции. Строитель MbDraftSolid объявлен в файле cr_draft_solid.h.
В тестовом приложении test.exe уклонение указанных граней тела выполняется командой меню «Создать→Тело→Обработкой граней→Уклонением граней».