Цикл сверления с ломкой стружки
INCT_PeckDrillingCycleFormer - интерфейс CAM системы, который реализует функциональность по упрощению формирования перемещений в циклах с ломкой стружки. При вызове с параметром dctPeck функция INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer в качестве результата возвращает объект, реализующий два интерфейса: INCT_DrillingCycleFormer, INCT_PeckDrillingCycleFormer.
Посредством интерфейса INCT_DrillingCycleFormer для цикла сверления с ломкой стружки задаются основные параметры. Описание использования приведено в этой статье Цикл сверления.
Интерфейс INCT_PeckDrillingCycleFormer добавляет в реализацию формирователя возможность управления параметрами построения траектории с ломкой стружки.
Предназначение:
Перемещения в различных циклах сверления с ломкой стружки, для разных стоек в общем случае повторяют одинаковую траекторию:
- Позиционирование инструмента над центром отверстия/следующего отверстия на ускоренной подаче.
- Перемещение инструмента к уровню ускоренного перемещения на ускоренной подаче.
- Перемещение инструмента к уровню дна отверстия на рабочей подаче.
- Возврат к уровню ускоренного перемещения на ускоренной подаче.
- Возврат к уровню отхода/возврата на ускоренной подаче.
- Если количество повторений не закончилось, вернуться к пункту 1.
Выполнение сверления отверстия для таких циклов (этап перемещения к уровню дна отверстия) происходит не за один проход, а в несколько итераций. Примеры таких циклов, Fanuc: G73, G83; Sinumerik: CYCLE83; Heidenhain: CYCL DEF 200, 203, 205 и др.
Использование формирователя:
Рекомендуем создавать новый формирователь цикла сверления для каждого нового цикла в кадре управляющей программы, кроме случаев повторения работы цикла в новом кадре (аналог CYCL CALL для Heidenhain). Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или завершении работы интерпретатора.
Использование интерфейса INCT_DrillingCycleFormer позволяет по заданным параметрам: первоначальное положение, уровни ускоренного перемещения, дна отверстия, количества повторов и пр. сформировать траекторию движения инструмента. А так же добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов, нарезание резьбы и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем.
Использование интерфейса INCT_PeckDrillingCycleFormer позволяет задать различные параметры, которые управляют количеством итераций, глубиной реза на итерации, типом отвода инструмента и пр.
Для формирования команд движения инструмента по траектории цикла, необходимо выполнить следующие шаги:
- Получить интерфейсы формирователя (INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer с параметром dctPeck).
- Задать индексы осей X, Y, Z по которым будут производиться перемещения (Set_AxisIndexes).
- Задать текущую плоскость (Set_Plane).
- Задать значение точки центра отверстия (Set_HoleCenter).
- Задать режим точки центра (Set_HoleCenterMode).
- Задать уровень ускоренного перемещения (Set_RapidLevel).
- Задать уровень дна отверстия (Set_BottomLevel).
- Задать уровень возврата (Set_TopLevel).
- Задать подачу (Set_Feedrate), единицы измерения подачи (Set_MPM).
- Задать количество повторений работы цикла (Set_Count).
- Назначить обработчик событий цикла (Set_Events), если в траекторию цикла нужно вносить изменения.
- Установить параметры итераций для ломки стружки (Set_StartLevel, Set_DepthOfCut, Set_DegressionType, Set_Degression, Set_FullReturn и пр. описание см. ниже).
- Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).
Метод INCT_DrillingCycleFormer.Set_Events для цикла с ломкой стружки в качестве входного параметра принимает на вход объект, реализующий два интерфейса: INCT_DrillingCycleEvents и INCT_PeckDrillingCycleEvents. Для событий интерфейса INCT_DrillingCycleEvents: BeforeMove, OnMove, AfterMove в качестве типа перемещения, наряду с ранее описанными в статье Цикл сверления значениями, будут передаваться следующие:
mtPeckMoveToNextDepthLevel - перемещение к следующей глубине реза (очередная итерация);
mtPeckReturnToRapidLevel - возврат к уровню ускоренного перемещения на текущей итерации (вывод стружки);
mtPeckMoveToClearanceLevel - перемещение к текущему уровню реза за вычетом зазора, после возврата с уровня ускоренного перемещения;
mtPeckMoveToRetractionLevel - отвод и возврат к текущему уровню реза (ломка стружки).
Описание методов интерфейса INCT_PeckDrillingCycleFormer:
| Метод | Описание метода |
|---|---|
| Set_DepthOfCut | Метод устанавливает глубину реза для итерации. Глубина реза это значение, на которое перемещается инструмент при высверливании отверстия, на каждой итерации. Входной параметр: Value (вещественное число) - глубина реза. Выходных параметров нет. |
| Get_DepthOfCut | Функция возвращает глубину реза (вещественное число). Входных параметров нет. |
| Set_StartLevelType | Метод устанавливает тип значения 'Начальный уровень'. Входной параметр: Value (TNCStartLevelType) - тип значения: slFromLevel - от заданного в Set_StartLevel значения начинается отсчёт первой глубины реза. slFirstLevel - заданное в Set_StartLevel значение это первая глубина реза. Выходных параметров нет. |
| Get_StartLevelType | Функция возвращает тип значения 'Начальный уровень' (TNCStartLevelType). Входных параметров нет. |
| Set_StartLevel | Метод устанавливает уровень, относительно которого отсчитывается первая глубина реза или первую глубину реза в зависимости от установленного в Set_StartLevelType значения. Входной параметр: Value (вещественное число) - заданное значение. Выходных параметров нет. |
| Get_StartLevel | Функция возвращает уровень, относительно которого отсчитывается первая глубина реза или первую глубину реза в зависимости от установленного в Set_StartLevelType значения (вещественное число). Входных параметров нет. |
| Set_Degression | Метод устанавливает значение дегрессии - изменения глубины реза на каждой итерации. Входной параметр: Value (вещественное число) - значение дегрессии. Расчётное значение дегрессии будет зависеть от типа дегрессии, заданного в Set_DegressionType. Выходных параметров нет. |
| Get_Degression | Функция возвращает текущее значение дегрессии (вещественное число). Входных параметров нет. |
| Set_DegressionType | Метод устанавливает тип дегрессии. Входной параметр: Value (TNCDegressionType) - тип дегрессии. dtNone - нет дегрессии, глубина реза не изменяется; dtValue - глубина реза уменьшается на постоянное значение при каждой итерации (постоянное значение задаётся в Set_Degression); dtCoef - глубина реза умножается на коэффициент при каждой итерации (значение коэффициента задаётся в Set_Degression). Выходных параметров нет. |
| Get_DegressionType | Функция возвращает текущий тип дегрессии (TNCDegressionType). Входных параметров нет. |
| Set_MinDepthOfCut | Метод устанавливает значение минимальной глубины реза. Как правило, значение используется для циклов с дегрессией. Входной параметр: Value (вещественное число) - значение минимальной глубины реза. Выходных параметров нет. |
| Get_MinDepthOfCut | Функция возвращает текущее значение минимальной глубины реза (вещественное число). Входных параметров нет. |
| Set_Retraction | Метод устанавливает текущее значение отвода. Отвод - значение, на которое поднимается инструмент для ломки стружки, после достижения текущей глубины реза на итерации, если для этой итерации не производится возврат на уровень ускоренного перемещения (т.е. признак возврата в Set_FullReturn задан в значении - Ложь). Входной параметр: Value (вещественное число) - значение отвода. Расчётное значение отвода будет зависеть от типа отвода, заданного в Set_RetractionType. Выходных параметров нет. |
| Get_Retraction | Функция возвращает текущее значение отвода (вещественное число). Входных параметров нет. |
| Set_RetractionType | Метод устанавливает значение типа отвода. Входной параметр: Value (TNCRetractionType) - значение типа отвода. rtNone - отвод не производится: rtValue - значение отвода (задаётся в Set_Retraction). Выходных параметров нет. |
| Get_RetractionType | Функция возвращает текущее значение типа отвода (TNCRetractionType). Входных параметров нет. |
| Set_RetractionCount | Метод устанавливает количество отходов для ломки стружки. Входной параметр: Value (целое число) - значение количества отходов для ломки стружки. Выходных параметров нет. |
| Get_RetractionCount | Функция возвращает количество отходов для ломки стружки (целое число). Входных параметров нет. |
| Set_ClearanceType | Метод устанавливает тип зазора. Зазор - значение, на которое инструмент не достигает уровня глубины реза текущей итерации, после возврата из уровня ускоренного перемещения (т.е. признак возврата в Set_FullReturn задан в значении - Истина). Входной параметр: Value (TNCClearanceType) - тип зазора. ctNone - без зазора; ctValue - значение (задаётся в Set_Clearance). Выходных параметров нет. |
| Get_ClearanceType | Функция возвращает текущий тип зазора (TNCClearanceType). Входных параметров нет. |
| Set_Clearance | Метод устанавливает значение зазора. Входной параметр: Value (вещественное число) - значение зазора. Расчётное значение зазора будет зависеть от типа зазора, заданного в Set_ClearanceType. Выходных параметров нет. |
| Get_Clearance | Функция возвращает текущее значение зазора (вещественное число). Входных параметров нет. |
| Set_FullReturn | Метод устанавливает признак возврата к уровню ускоренного перемещения. Если признак установлен, то при достижении глубины реза на текущей итерации, производится возврат к уровню ускоренного перемещения, а затем перемещение к уровню глубины реза на итерации с учётом зазора (см. Set_ClearanceType). Входной параметр: Value (логическое) - признак возврата. Истина - с возвратом к уровню ускоренного перемещения; Ложь - без возврата. Выходных параметров нет. |
| Get_FullReturn | Функция возвращает признак возврата к уровню ускоренного перемещения (логическое). Входных параметров нет. |
| Set_FullReturnStep | Метод устанавливает шаг итераций реза, на котором осуществляется возврат к уровню ускоренного перемещения. Пример. В качестве шага итераций реза установлено значение 3. В этом случае на каждой третьей итерации производится возврат к уровню ускоренного перемещения (итерации 3, 6, 9 и т.д.). На остальных итерациях возврат не производится (итерации 1, 2, 4, 5, 7, 8 и т.д.). Входной параметр: Value (целое число) - шаг итераций реза. Только, если в Set_FullReturn задано значение Истина (с возвратом). Выходных параметров нет. |
| Get_FullReturnStep | Функция возвращает шаг итераций реза, на котором осуществляется возврат к уровню ускоренного перемещения (целое число). Входных параметров нет. |
| Set_SameLastSteps | Метод устанавливает количество последних одинаковых шагов реза. Если значение отлично от 0 или 1, то заданное методом количество последних итераций будет выполнено с одинаковой глубиной реза. Входной параметр: Value (целое число) - количество последних одинаковых шагов реза. Выходных параметров нет. |
| Get_SameLastSteps | Функция возвращает текущее количество последних одинаковых шагов реза (целое число). Входных параметров нет. |
INCT_PeckDrillingCycleEvents - интерфейс реализуемый в интерпретаторе, который позволяет получать и управлять рассчитываемыми значениями внутри цикла сверления с ломкой стружки. Интерфейс представляет собой набор методов-событий, которые выполняются при расчёте тех или иных значений внутри формирователя траектории цикла. Используя методы интерфейса можно получить и изменить в процессе формирования траектории цикла уровни реза для итераций, признак возврата к уровню ускоренного перемещения на итерации, значения зазора и отвода.
Если для формирователя траектории цикла назначены события, то для каждого рассчитанного значения выполняется вызов соответствующего метода:
- Метод INCT_PeckDrillingCycleEvents.OnCalcNextDepth выполняется при добавлении во внутренний список формирователя очередного рассчитанного уровня реза. Количество уровней реза (размер списка) будет являться количеством итераций за которые инструмент переместится на дно отверстия. В качестве параметра методу передаётся рассчитанный уровень глубины реза.
- Метод INCT_PeckDrillingCycleEvents.OnGetNextFullReturn выполняется после расчёта признака возврата к уровню ускоренного перемещения по параметрам цикла. В качестве параметра методу передаётся номер итерации и рассчитанный признак.
- Метод INCT_PeckDrillingCycleEvents.OnGetNextClearance выполняется после расчёта значения зазора. В качестве параметра методу передаётся номер итерации и рассчитанное значение зазора.
- Метод INCT_PeckDrillingCycleEvents.OnGetNextRetraction выполняется после расчёта значения отвода. В качестве параметра методу передаётся номер итерации и рассчитанное значение отвода.
Описание методов интерфейса:
| Метод | Описание метода | Описание использования |
|---|---|---|
| OnCalcNextDepth | Метод выполняется при каждом добавлении во внутренний список формирователя очередного рассчитанного уровня реза. Размер сформированного списка (количество элементов) будет являться количеством итераций за которые инструмент переместится на дно отверстия. Входной и выходной параметр: Depth (вещественное число) - значение уровня реза для итерации (абсолютное значение). |
|
| OnGetNextFullReturn | Метод выполняется после расчёта признака возврата к уровню ускоренного перемещения по параметрам цикла для текущей итерации. Входные параметры: Iteration (целое) - номер итерации. Входной и выходной параметр: FullReturn (логическое) - признак возврата к уровню ускоренного перемещения на заданной итерации. | Для изменения признака возврата к уровню ускоренного перемещения для текущей итерации при реализации алгоритмов расчёта признака, не заложенных в функциональность цикла. |
| OnGetNextClearance | Метод выполняется после расчёта значения зазора по параметрам цикла для текущей итерации. Вызывается, только если признак возврата к уровню ускоренного перемещения для итерации установлен (FullReturn = Истина). Входные параметры: Iteration (целое) - номер итерации. Входной и выходной параметр: Clearance (вещественное число) - значение зазора на заданной итерации. | Для изменения значения зазора для текущей итерации при реализации алгоритмов расчёта значения, не заложенных в функциональность цикла. |
| OnGetNextRetraction | Метод выполняется после расчёта значения отвода по параметрам цикла для текущей итерации. Вызывается, только если признак возврата к уровню ускоренного перемещения для итерации не установлен (FullReturn = Ложь). Входные параметры: Iteration (целое) - номер итерации. Входной и выходной параметр: Retraction (вещественное число) - значение отвода на заданной итерации. | Для изменения значения отвода для текущей итерации при реализации алгоритмов расчёта значения, не заложенных в функциональность цикла. |