Разработка интерпретаторов
  • Разработка интерпретаторов
v3.0.3
Search Results for

    Show / Hide Table of Contents

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

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

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

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

    PeckDrillingCycle

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

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

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

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

    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 (вещественное число) - значение отвода на заданной итерации.

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