Цикл фрезерования кругового кармана
INCT_PocketCycleFormer — интерфейс CAM-системы, реализующий функционал для упрощения формирования движений для цикла фрезерования круглых карманов. Объект, реализующий этот интерфейс, возвращается методом INCT_CLData_PocketCycleFormer.CreatePocketCycleFormer
Предназначение:
Выполнение перемещений в различных типах цикла фрезерования круговых карманов, для разных стоек в общем случае повторяют одинаковую траекторию:
- Подвод к центру отверстия на начальном уровне
- Подвод к безопасной дистанции
- Подвод к базовой точке
- Врезание (по спирали или прямолинейное) до указанной глубины резания или до конца глубины
- Отход на безопасное расстояние и т. д. циклично до глубины кармана или сразу до глубины кармана при чистовой фрезеровке.
- Отход к центру отверстия до уровня с которого начиналась обработка в данном случае до начального уровня
Примеры таких циклов, Sinumerik: POCKET4.
Использование формирователя позволяет сформировать траекторию движения инструмента по заданным параметрам. А также добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности, изменить тип или значение подачи, либо пропустить перемещение инструмента, подготовленное формирователем.
Использование формирователя:
Рекомендуем создавать новый формирователь для каждого нового цикла в кадре управляющей программы. Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или в случае завершения работы интерпретатора.
- Получить интерфейс формирователя (INCT_CLData_PocketCycleFormer.CreatePocketCycleFormer).
- Задать индексы осей, по которым будут производиться перемещения (Set_AxisIndexes).
- Задать текущую плоскость (Set_Plane).
- Задать центр отверстия (Set_HoleCenter).
- Задать безопасный уровень (Set_SafeLevel).
- Задать начало кармана (Set_BaseLevel).
- Задать уровень дна кармана (Set_BottomLevel).
- Задать диаметр кармана (Set_Diameter).
- Задать шаг плоской спирали (Set_FlatSpiralStep).
- Задать тип шага плоской спирали (Set_FlatSpiralStepType).
- Задать направление плоской спирали (Set_FlatSpiralDirection).
- Задать направление обычной спирали (Set_SpiralDirection).
- Задать шаг обычной спирали (Set_SpiralStep).
- Задать тип обработки (Set_TypeOfHoleProcessing).
- Задать глубину резания за проход (Set_Degression).
- Задать радиус врезания (Set_PlungeRadius).
- Задать припуск края кармана (Set_EdgeStock).
- Задать припуск дна кармана (Set_BottomStock).
- Назначить обработчик событий цикла (Set_Events), если в траекторию цикла нужно вносить изменения.
- Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).
Описание методов интерфейса:
| Метод | Описание метода |
|---|---|
| Set_AxisIndexes | Метод устанавливает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла. Входные параметры: Value (TNCDCAxisIndexes) - X (целое число) - индекс оси X, Y (целое число) - индекс оси Y, Z (целое число) - индекс оси Z. Выходных параметров нет. |
| Get_AxisIndexes | Функция возвращает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла (TNCDCAxisIndexes). Входных параметров нет. |
| Set_Plane | Метод устанавливает текущую плоскость. Входной параметр: Value (TNCPlaneType) - текущая плоскость. ptXY - плоскость XY, обработка кармана производится вдоль оси Z. ptYZ - плоскость YZ, обработка кармана производится вдоль оси X. ptZX - плоскость ZX, обработка кармана производится вдоль оси Y. Выходных параметров нет. |
| Get_Plane | Функция возвращает текущую плоскость (TNCPlaneType). Входных параметров нет. |
| Set_HoleCenter | Метод устанавливает точку центра кармана. Входной параметр: Value (TNC3DPoint) - точка центра кармана. Выходных параметров нет. |
| Get_HoleCenter | Функция возвращает точку центра кармана(TNC3DPoint). Входных параметров нет. |
| Set_SafeLevel | Метод устанавливает значение безопасного расстояния Входной параметр: Value (вещественное число) - значение безопасного расстояния Выходных параметров нет. |
| Get_SafeLevel | Функция возвращает значение безопасного расстояния. Входных параметров нет. |
| Set_BaseLevel | Метод устанавливает значение начала кармана. Входной параметр: Value (вещественное число) - значение начала кармана Выходных параметров нет. |
| Get_BaseLevel | Функция возвращает значение начала кармана. Входных параметров нет. |
| Set_Diameter | Метод устанавливает значение диаметра кармана. Входной параметр: Value (вещественное число) - значение диаметра кармана. Выходных параметров нет. |
| Get_Diameter | Функция возвращает значение диаметра кармана. Входных параметров нет. |
| Set_FlatSpiralStep | Метод устанавливает значение шага плоской спирали. Входной параметр: Value (вещественное число) - значение шага плоской спирали Выходных параметров нет. |
| Get_FlatSpiralStep | Функция возвращает значение шага плоской спирали. Входных параметров нет. |
| Set_BottomLevel | Метод устанавливает значение уровня дна кармана. Входной параметр: Value (вещественное число) - значение уровня дна кармана. Выходных параметров нет. |
| Get_BottomLevel | Функция возвращает значение уровня дна кармана. Входных параметров нет. |
| Set_FlatSpiralStepType | Метод устанавливает значение типа шага плоской спирали. Входной параметр: Value (TNCFlatSpiralStepType) - значение типа шага плоской спирали. fsByMillimeters - Расчет шага спирали производится в миллиметрах. fsByPersentOfToolDiameter - Расчет шага спирали производится в процентах от диаметра инструмента. Выходных параметров нет. |
| Get_FlatSpiralStepType | Функция возвращает значение типа шага плоской спирали (TNCFlatSpiralStepType) Входных параметров нет. |
| Set_FlatSpiralDirection | Метод устанавливает значение направления плоской спирали. Входной параметр: Value (TNCSpiralDirection) - значение направления плоской спирали. sdCW - По часовой стрелке. sdCCW - Против часовой стрелки. Выходных параметров нет. |
| Get_FlatSpiralDirection | Функция возвращает значение направления плоской спирали (TNCSpiralDirection) Входных параметров нет. |
| Set_SpiralDirection | Метод устанавливает значение направления обычной спирали. Входной параметр: Value (TNCSpiralDirection) - значение направления обычной спирали. sdCW - По часовой стрелке. sdCCW - Против часовой стрелки. Выходных параметров нет. |
| Get_SpiralDirection | Функция возвращает значение направления обычной спирали (TNCSpiralDirection) Входных параметров нет. |
| Set_TypeOfHoleProcessing | Метод устанавливает значение типа обработки кармана. Входной параметр: Value (TNCTypeOfProcessing) - значение типа обработки кармана. tpHelicalPlungeRoughing - Черновое, врезание по спирали, обработка плоской спиралью tpLinearPlungeRoughing - Черновое, линейное врезание, обработка плоской спиралью tpOnlyHelicalRoughing - Черновое, полностью спиральная обработка tpOnlyHelicalFinishing - Чистовая, спиральная обработка по краю tpOnlyCircularFinishing - Чистовая, обработка по краю окружностями tpOnlyHelicalFinishingAndBottom - Чистовая, спиральная обработка по краю, обработка дна плоской спиралью. Выходных параметров нет. |
| Get_TypeOfHoleProcessing | Функция возвращает значение типа обработки кармана (TNCTypeOfProcessing) Входных параметров нет. |
| Set_SpiralStep | Метод устанавливает значение шага обычной спирали. Входной параметр: Value (вещественное число) - значение шага обычной спирали Выходных параметров нет. |
| Get_SpiralStep | Функция возвращает значение шага обычной спирали Входных параметров нет. |
| Set_Degression | Метод устанавливает значение глубины резания. Входной параметр: Value (вещественное число) - значение глубины резания Выходных параметров нет. |
| Get_Degression | Функция возвращает значение глубины резания. Входных параметров нет. |
| Set_DepthOfCut | Метод сохраняет значение глубины резания. Входной параметр: Value (вещественное число) - значение глубины резания. Внимание! В текущей версии значение только хранится и на траекторию не влияет. Глубину резания задаёт Set_Degression. Выходных параметров нет. |
| Get_DepthOfCut | Функция возвращает значение, заданное методом Set_DepthOfCut (вещественное число). Входных параметров нет. |
| Set_PlungeRadius | Метод устанавливает радиус врезания: боковой сдвиг от центра кармана перед врезанием по спирали (тип обработки tpHelicalPlungeRoughing). Входной параметр: Value (вещественное число) - радиус врезания. Выходных параметров нет. |
| Get_PlungeRadius | Функция возвращает радиус врезания. Входных параметров нет. |
| Set_EdgeStock | Метод устанавливает значение припуска по краю для черновой обработки. Входной параметр: Value (вещественное число) - значение припуска по краю для черновой обработки Выходных параметров нет. |
| Get_EdgeStock | Функция возвращает значение припуска по краю для черновой обработки Входных параметров нет. |
| Set_BottomStock | Метод устанавливает значение припуска по дну кармана для черновой обработки. Входной параметр: Value (вещественное число) - значение припуска по дну кармана для черновой обработки Выходных параметров нет. |
| Get_BottomStock | Функция возвращает значение припуска по дну кармана для черновой обработки Входных параметров нет. |
| Set_Events | Метод назначает события для управления поведением цикла. При использовании событий можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности, изменить тип или значение подачи, либо пропустить перемещение инструмента, подготовленное формирователем. Входной параметр: Value (INCT_PocketCycleEvents) - объект, реализующий события. Подробное описание ниже. Выходных параметров нет. |
| Get_Events | Функция возвращает объект, реализующий события, связанный с формирователем цикла (INCT_PocketCycleEvents). Входных параметров нет. |
| MakeWorkpath | Метод формирует траекторию цикла по заданным параметрам. |
INCT_PocketCycleEvents - интерфейс, реализуемый в интерпретаторе, который позволяет управлять поведением цикла фрезерования кругового кармана. Интерфейс представляет из себя набор методов-событий, которые выполняются при перемещении инструмента внутри формирователя траектории цикла. Используя методы интерфейса можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов и прочее, изменить тип подачи, либо пропустить перемещение инструмента, подготовленное формирователем.
Если для формирователя траектории цикла назначены события, то любое перемещение инструмента внутри формирователя состоит из 3-х этапов:
- Выполняется метод INCT_PocketCycleEvents.BeforeMove. В качестве параметров методу передаются заданные циклом: тип перемещения, координаты точки перемещения, тип подачи.
- Выполняется метод INCT_PocketCycleEvents.OnMove.
Для OnMove в качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, признак выполнения перемещения. Все параметры, кроме типа перемещения, в реализации метода могут быть изменены. В зависимости от заданного в OnMove признака, производится выполнение перемещения инструмента в заданную точку с указанной подачей, или перемещение не производится. - Выполняется метод INCT_PocketCycleEvents.AfterMove. В качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, возвращённые методом OnMove.
Описание методов интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| BeforeMove | Метод будет выполнен перед каждым перемещением инструмента при формировании траектории цикла. Входные параметры: MoveType (TNCPocketCycleMoveType ) - тип перемещения, описание см. ниже; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи. pcmMoveToHoleCenter - Перемещение к центру кармана pcmMoveToSafeLevel - Перемещение к безопасной дистанции pcmMoveToCutOfDepthByLine - Перемещение по линейной траектории до следующего уровня реза pcmMoveToCutOfDepthByHelic - Перемещение по спиральной траектории до следующего уровня реза pcmMoveToAside - Перемещение от центра в сторону края кармана pcmMoveToHoleEdge - Перемещение на край кармана pcmMoveOnHoleEdge - Перемещение непосредственно на траектории края кармана pcmMoveToTopLevel - Перемещение к начальной точке pcmMoveFromHoleEdgeToCenter - Перемещение от края в центр кармана. Выходных параметров нет. |
При необходимости добавления тех или иных команд перед выполнением перемещения, их нужно добавить в реализацию метода. Например, если есть необходимость включить систему охлаждения станка перед созданием кругового кармана, сделать это можно добавив в реализацию метода BeforeMove вызов INCT_CLData.AddCoolant с соответствующими параметрами по условию MoveType = pcmMoveToSafeLevel |
| OnMove | Метод будет выполнен непосредственно перед каждым перемещением инструмента при формировании траектории цикла. Входные параметры: MoveType (TNCPocketCycleMoveType) - тип перемещения, описание см. выше; Входные и выходные параметры: Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи; Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено). Если после вызова OnMove параметр Handled принимает значение Истина, это значит, что перемещение было выполнено внутри реализации метода OnMove и формирователь цикла не добавляет команду перемещения в траекторию движения инструмента. Если после вызова OnMove параметр Handled принимает значение Ложь, формирователь считает, что перемещение не было выполнено внутри реализации метода OnMove и добавляет в траекторию движения инструмента команду перемещения в точку Point с типом подачи Feed. |
При необходимости переопределения значений точки перемещения или подачи, либо для отказа от перемещения (пропуска). Например, если нужно изменить тип подачи на ускоренную, при возврате на начальный уровень, после фрезерования, то в реализации метода OnMove необходимо изменить значение возвращаемого методом параметра Feed на ffRapid по условию MoveType = pcmMoveToTopLevel (типы подачи см. в описании OutStandardFeed). Если нужно выполнить перемещение инструмента в точку, отличную от рассчитанной циклом, необходимо изменить значение возвращаемого методом OnMove параметра Point. Если перемещение в рассчитанную циклом точку выполнять не нужно, тогда внутри реализации метода OnMove нужно изменить значение параметра Handled на Истина. |
| AfterMove | Метод будет выполнен после каждого перемещения инструмента при формировании траектории цикла, даже если перемещение было отменено в OnMove Входные параметры: MoveType (TNCPocketCycleMoveType) - тип перемещения, описание см. выше; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи. Выходных параметров нет. |
При необходимости добавления тех или иных команд после выполнения перемещения, их нужно добавить в реализацию метода. |