Цикл сверления с ломкой стружки

INCT_PeckDrillingCycleFormer - интерфейс SprutCAM, который реализует функциональность по упрощению формирования перемещений в циклах с ломкой стружки. При вызове с параметром dctPeck функция INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer в качестве результата возвращает объект, реализующий два интерфейса: INCT_DrillingCycleFormer, INCT_PeckDrillingCycleFormer.

Посредством интерфейса INCT_DrillingCycleFormer для цикла сверления с ломкой стружки задаются основные параметры. Описание использования приведено в этой статье Цикл сверления.

Интерфейс INCT_PeckDrillingCycleFormer добавляет в реализацию формирователя возможность управления параметрами построения траектории с ломкой стружки.

images/download/attachments/113361608/PeckDrillingCycle.png

Предназначение:

Перемещения в различных циклах сверления с ломкой стружки, для разных стоек в общем случае повторяют одинаковую траекторию:

  1. Позиционирование инструмента над центром отверстия/следующего отверстия на ускоренной подаче.

  2. Перемещение инструмента к уровню ускоренного перемещения на ускоренной подаче.

  3. Перемещение инструмента к уровню дна отверстия на рабочей подаче.

  4. Возврат к уровню ускоренного перемещения на ускоренной подаче.

  5. Возврат к уровню отхода/возврата на ускоренной подаче.

  6. Если количество повторений не закончилось, вернуться к пункту 1.

Выполнение сверления отверстия для таких циклов (этап перемещения к уровню дна отверстия) происходит не за один проход, а в несколько итераций. Примеры таких циклов, Fanuc: G73, G83; Sinumerik: CYCLE83; Heidenhain: CYCL DEF 200, 203, 205 и др.


Использование формирователя:

Рекомендуем создавать новый формирователь цикла сверления для каждого нового цикла в кадре управляющей программы, кроме случаев повторения работы цикла в новом кадре (аналог CYCL CALL для Heidenhain). Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или завершении работы интерпретатора.

Использование интерфейса INCT_DrillingCycleFormer позволяет по заданным параметрам: первоначальное положение, уровни ускоренного перемещения, дна отверстия, количества повторов и пр. сформировать траекторию движения инструмента. А так же добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов, нарезание резьбы и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем.

Использование интерфейса INCT_PeckDrillingCycleFormer позволяет задать различные параметры, которые управляют количеством итераций, глубиной реза на итерации, типом отвода инструмента и пр.

Для формирования команд движения инструмента по траектории цикла, необходимо выполнить следующие шаги:

  1. Получить интерфейсы формирователя (INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer с параметром dctPeck).

  2. Задать индексы осей X, Y, Z по которым будут производиться перемещения (Set_AxisIndexes).

  3. Задать текущую плоскость (Set_Plane).

  4. Задать значение точки центра отверстия (Set_HoleCenter).

  5. Задать режим точки центра (Set_HoleCenterMode).

  6. Задать уровень ускоренного перемещения (Set_RapidLevel).

  7. Задать уровень дна отверстия (Set_BottomLevel).

  8. Задать уровень возврата (Set_TopLevel).

  9. Задать подачу (Set_Feedrate), единицы измерения подачи (Set_MPM).

  10. Задать количество повторений работы цикла (Set_Count).

  11. Назначить обработчик событий цикла (Set_Events), если в траекторию цикла нужно вносить изменения.

  12. Установить параметры итераций для ломки стружки (Set_StartLevel, Set_DepthOfCut, Set_DegressionType, Set_Degression, Set_FullReturn и пр. описание см. ниже).

  13. Сформировать команды движения инструмента по траектории цикла (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

Метод устанавливает признак возврата к уровню ускоренного перемещения. Если признак установлен, то при достижении глубины реза на текущей итерации, производится возврат к уровню ускоренного перемещения, а затем перемещение к уровню глубины реза на итерации без учёта зазора.

Входной параметр: 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 - интерфейс реализуемый в интерпретаторе, который позволяет получать и управлять рассчитываемыми значениями внутри цикла сверления с ломкой стружки. Интерфейс представляет собой набор методов-событий, которые выполняются при расчёте тех или иных значений внутри формирователя траектории цикла. Используя методы интерфейса можно получить и изменить в процессе формирования траектории цикла уровни реза для итераций, признак возврата к уровню ускоренного перемещения на итерации, значения зазора и отвода.

Если для формирователя траектории цикла назначены события, то для каждого рассчитанного значения выполняется вызов соответствующего метода:

  1. Метод INCT_PeckDrillingCycleEvents.OnCalcNextDepth выполняется при добавлении во внутренний список формирователя очередного рассчитанного уровня реза. Количество уровней реза (размер списка) будет являться количеством итераций за которые инструмент переместится на дно отверстия. В качестве параметра методу передаётся рассчитанный уровень глубины реза.

  2. Метод INCT_PeckDrillingCycleEvents.OnGetNextFullReturn выполняется после расчёта признака возврата к уровню ускоренного перемещения по параметрам цикла. В качестве параметра методу передаётся номер итерации и рассчитанный признак.

  3. Метод INCT_PeckDrillingCycleEvents.OnGetNextClearance выполняется после расчёта значения зазора. В качестве параметра методу передаётся номер итерации и рассчитанное значение зазора.

  4. Метод INCT_PeckDrillingCycleEvents.OnGetNextRetraction выполняется после расчёта значения отвода. В качестве параметра методу передаётся номер итерации и рассчитанное значение отвода.


Описание методов интерфейса:

Метод

Описание метода

Описание использования

OnCalcNextDepth

Метод выполняется при каждом добавлении во внутренний список формирователя очередного рассчитанного уровня реза.

Размер сформированного списка (количество элементов) будет являться количеством итераций за которые инструмент переместится на дно отверстия.

Входной и выходной параметр: Depth (вещественное число) - значение уровня реза для итерации (абсолютное значение).

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

  2. Для изменения уровней глубин реза при реализации алгоритмов расчёта, не заложенных в функциональность цикла.

OnGetNextFullReturn

Метод выполняется после расчёта признака возврата к уровню ускоренного перемещения по параметрам цикла для текущей итерации.

Входные параметры: Iteration (целое) - номер итерации.

Входной и выходной параметр: FullReturn (логическое) - признак возврата к уровню ускоренного перемещения на заданной итерации.

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

OnGetNextClearance

Метод выполняется после расчёта значения зазора по параметрам цикла для текущей итерации. Вызывается, только если признак возврата к уровню ускоренного перемещения для итерации установлен (FullReturn = Истина).

Входные параметры: Iteration (целое) - номер итерации.

Входной и выходной параметр: Clearance (вещественное число) - значение зазора на заданной итерации.

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

OnGetNextRetraction

Метод выполняется после расчёта значения отвода по параметрам цикла для текущей итерации. Вызывается, только если признак возврата к уровню ускоренного перемещения для итерации не установлен (FullReturn = Ложь).

Входные параметры: Iteration (целое) - номер итерации.

Входной и выходной параметр: Retraction (вещественное число) - значение отвода на заданной итерации.

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