Цикл сверления с ломкой стружки
INCT_PeckDrillingCycleFormer - интерфейс SprutCAM, который реализует функциональность по упрощению формирования перемещений в циклах с ломкой стружки. При вызове с параметром 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 значения начинается отсчёт первой глубины реза. Выходных параметров нет. |
Get_StartLevelType |
Функция возвращает тип значения 'Начальный уровень' (TNCStartLevelType). Входных параметров нет. |
Set_StartLevel |
Метод устанавливает уровень, относительно которого отсчитывается первая глубина реза или первую глубину реза в зависимости от установленного в Set_StartLevelType значения. Входной параметр: Value (вещественное число) - заданное значение. Выходных параметров нет. |
Get_StartLevel |
Функция возвращает уровень, относительно которого отсчитывается первая глубина реза или первую глубину реза в зависимости от установленного в Set_StartLevelType значения (вещественное число). |
Set_Degression |
Метод устанавливает значение дегрессии - изменения глубины реза на каждой итерации. Входной параметр: Value (вещественное число) - значение дегрессии. Расчётное значение дегрессии будет зависеть от типа дегрессии, заданного в Set_DegressionType. Выходных параметров нет. |
Get_Degression |
Функция возвращает текущее значение дегрессии (вещественное число). Входных параметров нет. |
Set_DegressionType |
Метод устанавливает тип дегрессии. Входной параметр: Value (TNCDegressionType) - тип дегрессии. dtNone - нет дегрессии, глубина реза не изменяется; Выходных параметров нет. |
Get_DegressionType |
Функция возвращает текущий тип дегрессии (TNCDegressionType). Входных параметров нет. |
Set_MinDepthOfCut |
Метод устанавливает значение минимальной глубины реза. Как правило, значение используется для циклов с дегрессией. Входной параметр: Value (вещественное число) - значение минимальной глубины реза. Выходных параметров нет. |
Get_MinDepthOfCut |
Функция возвращает текущее значение минимальной глубины реза (вещественное число). Входных параметров нет. |
Set_Retraction |
Метод устанавливает текущее значение отвода. Отвод - значение, на которое поднимается инструмент для ломки стружки, после достижения текущей глубины реза на итерации, если для этой итерации не производится возврат на уровень ускоренного перемещения (т.е. признак возврата в Set_FullReturn задан в значении - Ложь). Входной параметр: Value (вещественное число) - значение отвода. Расчётное значение отвода будет зависеть от типа отвода, заданного в Set_RetractionType. Выходных параметров нет. |
Get_Retraction |
Функция возвращает текущее значение отвода (вещественное число). Входных параметров нет. |
Set_RetractionType |
Метод устанавливает значение типа отвода. Входной параметр: Value (TNCRetractionType) - значение типа отвода. rtNone - отвод не производится: Выходных параметров нет. |
Get_RetractionType |
Функция возвращает текущее значение типа отвода (TNCRetractionType). Входных параметров нет. |
Set_RetractionCount |
Метод устанавливает количество отходов для ломки стружки. Входной параметр: Value (целое число) - значение количества отходов для ломки стружки. Выходных параметров нет. |
Get_RetractionCount |
Функция возвращает количество отходов для ломки стружки (целое число). Входных параметров нет. |
Set_ClearanceType |
Метод устанавливает тип зазора. Зазор - значение, на которое инструмент не достигает уровня глубины реза текущей итерации, после возврата из уровня ускоренного перемещения (т.е. признак возврата в Set_FullReturn задан в значении - Истина). Входной параметр: Value (TNCClearanceType) - тип зазора. ctNone - без зазора; Выходных параметров нет. |
Get_ClearanceType |
Функция возвращает текущий тип зазора (TNCClearanceType). Входных параметров нет. |
Set_Clearance |
Метод устанавливает значение зазора. Входной параметр: Value (вещественное число) - значение зазора. Расчётное значение зазора будет зависеть от типа зазора, заданного в Set_ClearanceType. Выходных параметров нет. |
Get_Clearance |
Функция возвращает текущее значение зазора (вещественное число). Входных параметров нет. |
Set_FullReturn |
Метод устанавливает признак возврата к уровню ускоренного перемещения. Если признак установлен, то при достижении глубины реза на текущей итерации, производится возврат к уровню ускоренного перемещения, а затем перемещение к уровню глубины реза на итерации без учёта зазора. Входной параметр: 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 (вещественное число) - значение отвода на заданной итерации. |
Для изменения признака значения отвода для текущей итерации при реализации алгоритмов расчёта значения, не заложенных в функциональность цикла. |