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