Цикл сверления
INCT_DrillingCycleFormer - интерфейс SprutCAM, который реализует функциональность по упрощению формирования перемещений в циклах сверления. Объект, реализующий этот интерфейс возвращает функция INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer при её выполнении с любым из параметров: dctSimple, dctWithShift, dctPeck.
Предназначение:
Перемещения в различных циклах сверления, для разных стоек в общем случае повторяют одну и ту же траекторию (Fanuc: G74, G81, G82, G84, G85, G86, G88, G89; Sinumerik: CYCLE81, CYCLE82, CYCLE85, CYCLE87, CYCLE88, CYCLE89; Heidenhain: CYCL DEF 201, CYCL DEF 206, CYCL DEF 207 и др.):
Позиционирование инструмента над центром отверстия/следующего отверстия на ускоренной подаче.
Перемещение инструмента к уровню ускоренного перемещения на ускоренной подаче.
Перемещение инструмента к уровню дна отверстия на рабочей подаче.
Возврат к уровню ускоренного перемещения на ускоренной подаче.
Возврат к уровню отхода/возврата на ускоренной подаче.
Если количество повторений не закончилось, вернуться к пункту 1.
Использование формирователя позволяет по заданным параметрам: первоначальное положение, уровни ускоренного перемещения, дна отверстия, количества повторов и пр. сформировать траекторию движения инструмента. А так же добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов, нарезание резьбы и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем.
Использование формирователя:
Рекомендуем создавать новый формирователь цикла сверления для каждого нового цикла в кадре управляющей программы, кроме случаев повторения работы цикла в новом кадре (аналог CYCL CALL для Heidenhain). Таким образом, интерфейс старого формирователя должен освобождаться при создании нового или завершении работы интерпретатора.
Для формирования команд движения инструмента по траектории цикла, необходимо выполнить следующие шаги:
Получить интерфейс формирователя (INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer).
Задать индексы осей 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), если в траекторию цикла нужно вносить изменения.
Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).
Описание методов интерфейса:
Метод |
Описание метода |
Set_AxisIndexes |
Метод устанавливает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла. Входные параметры: Value (TNCDCAxisIndexes) - X (целое число) - индекс оси X, Y (целое число) - индекс оси Y, Z (целое число) - индекс оси Z. Выходных параметров нет. |
Get_AxisIndexes |
Функция возвращает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла (TNCDCAxisIndexes). Входных параметров нет. |
Set_HoleCenter |
Метод устанавливает координаты точки центра отверстия. Входные параметры: Value (TNC3DPoint), X, Y, Z - значение координат для соответствующих осей. Выходных параметров нет. |
Get_HoleCenter |
Функция возвращает координаты центра точки отверстия (TNC3DPoint). Выходных параметров нет. |
Set_HoleCenterMode |
Метод устанавливает режим точки центра. Входной параметр: Value (логическое) - режим точки центра. Истина - координаты точки центра отверстия (Set_HoleCenter) заданы в абсолютных значениях. Ложь - координаты точки центра отверстия заданы в относительных значениях от текущего положения инструмента. Выходных параметров нет. |
Get_HoleCenterMode |
Функция возвращает значение режима точки центра (логическое). |
Set_Plane |
Метод устанавливает текущую плоскость. Входной параметр: Value (TNCPlaneType) - текущая плоскость. ptXY - плоскость XY, сверление отверстия производится вдоль оси Z. Выходных параметров нет. |
Get_Plane |
Функция возвращает текущую плоскость (TNCPlaneType). Входных параметров нет. |
Set_RapidLevel |
Метод устанавливает уровень ускоренного перемещения по оси сверления. Входной параметр: Value (вещественное число) - уровень ускоренного перемещения. Выходных параметров нет. |
Get_RapidLevel |
Функция возвращает уровень ускоренного перемещения по оси сверления (вещественное число). Входных параметров нет. |
Set_BottomLevel |
Метод устанавливает уровень дна отверстия по оси сверления. Входной параметр: Value (вещественное число) - уровень дна отверстия. Выходных параметров нет. |
Get_BottomLevel |
Функция возвращает уровень дна отверстия по оси сверления (вещественное число). Входных параметров нет. |
Set_TopLevel |
Метод устанавливает уровень отхода/возврата по оси сверления. Входной параметр: Value (вещественное число) - уровень отхода/возврата. Выходных параметров нет. |
Get_TopLevel |
Функция возвращает уровень отхода/возврата по оси сверления (вещественное число). Входных параметров нет. |
Set_Feedrate |
Метод устанавливает значение рабочей подачи. Входной параметр: Value (вещественное число) - значение подачи. Выходных параметров нет. |
Get_Feedrate |
Функция возвращает значение рабочей подачи (вещественное число). Входных параметров нет. |
Set_MPM |
Метод устанавливает признак единиц измерения подачи. Входной параметр: Value (логическое) - признак единиц измерения подачи. Истина - мм в мин. Ложь - мм на оборот. Выходных параметров нет. |
Get_MPM |
Функция возвращает признак единиц измерения подачи (логическое). Выходных параметров нет. |
Set_Count |
Метод устанавливает количество повторений цикла. Входной параметр: Value (целое число) - количество повторений цикла. Выходных параметров нет. Работа цикла различается в зависимости от режима точки центра отверстия (Set_HoleCenterMode). Если координаты точки центра отверстия заданы в абсолютных значениях, то:
|
Get_Count |
Функция возвращает количество повторений цикла (целое число). Выходных параметров нет. |
Set_Events |
Метод назначает события для управления поведением цикла. При использовании событий можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов, нарезание резьбы и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем. Входной параметр: Value (INCT_DrillingCycleEvents) - объект, реализующий события. Подробное описание ниже. Выходных параметров нет. |
Get_Events |
Функция возвращает объект, реализующий события, связанный с формирователем цикла (INCT_DrillingCycleEvents). Выходных параметров нет. |
MakeWorkpath |
Метод формирует траекторию цикла по заданным параметрам. |
Get_NextHole |
Функция возвращает рассчитанные для текущей итерации координаты точки текущего отверстия (TNC3DPoint). Значение доступно для использования только внутри событий (Set_Events). |
Get_RapidPoint |
Функция возвращает рассчитанные для текущей итерации координаты точки ускоренного перемещения (TNC3DPoint). Значение доступно для использования только внутри событий (Set_Events). |
Get_TopPoint |
Функция возвращает рассчитанные для текущей итерации координаты точки отхода/возврата (TNC3DPoint). Значение доступно для использования только внутри событий (Set_Events). |
Get_BottomPoint |
Функция возвращает рассчитанные для текущей итерации координаты точки дна отверстия (TNC3DPoint). Значение доступно для использования только внутри событий (Set_Events). |
INCT_DrillingCycleEvents - интерфейс реализуемый в интерпретаторе, который позволяет управлять поведением цикла сверления. Интерфейс представляет из себя набор методов-событий, которые выполняются при перемещении инструмента внутри формирователя траектории цикла. Используя методы интерфейса можно добавить в траекторию движения на любом формируемом участке необходимые для конкретного цикла особенности: выстой, ориентированный останов, нарезание резьбы и прочее, изменить тип или значение подачи, либо пропустить перемещение инструмента подготовленное формирователем.
Если для формирователя траектории цикла назначены события, то любое перемещение инструмента внутри формирователя состоит из 3-х этапов:
Выполняется метод INCT_DrillingCycleEvents.BeforeMove. В качестве параметров методу передаются заданные циклом: тип перемещения, координаты точки перемещения, тип подачи.
Выполняется метод INCT_DrillingCycleEvents.OnMove. В качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, признак выполнения перемещения. Все параметры, кроме типа перемещения в реализации метода могут быть изменены. В зависимости от заданного в OnMove признака, производится выполнение перемещения инструмента в заданную точку с заданной подачей, или перемещение не производится.
Выполняется метод INCT_DrillingCycleEvents.AfterMove. В качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, возвращённые методом OnMove.
Описание методов интерфейса:
Метод |
Описание метода |
Описание использования |
BeforeMove |
Метод будет выполнен перед каждым перемещением инструмента при формировании траектории цикла. Входные параметры: MoveType (TNCDrillingCycleMoveType) - тип перемещения, описание см. ниже; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи. mtMoveToNextHole - перемещение к первому или следующему отверстию; Выходных параметров нет. |
При необходимости добавления тех или иных команд перед выполнением перемещения, их нужно добавить в реализацию метода. Например, если есть необходимость установить направление вращения шпинделя по часовой стрелке перед высверливанием отверстия, сделать это можно добавив в реализацию метода BeforeMove вызов INCT_CLData.AddSpindleSpeedOnRPM с соответствующими параметрами по условию MoveType = mtMoveToBottomLevel. |
OnMove |
Метод будет выполнен перед каждым перемещением инструмента при формировании траектории цикла. Входные параметры: MoveType (TNCDrillingCycleMoveType) - тип перемещения, описание см. выше; Входные и выходные параметры: Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи; Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено). Если после вызова OnMove параметр Handled принимает значение Истина, это значит, что перемещение было выполнено внутри реализации метода OnMove и формирователь цикла не добавляет команду перемещения в траекторию движения инструмента. Если после вызова OnMove параметр Handled принимает значение Ложь, формирователь считает, что перемещение не было выполнено внутри реализации метода OnMove и добавляет в траекторию движения инструмента команду перемещения в точку Point с типом подачи Feed. |
При необходимости переопределения значений точки перемещения или подачи, либо для отказа от перемещения (пропуска). Например, если нужно изменить тип подачи с ускоренной на рабочую, при возврате после высверливания, то в реализации метода OnMove необходимо изменить значение возвращаемого методом параметра Feed на ffWorking по условию MoveType = mtReturnToRapidLevel (тип подачи описан в этой статье, см. OutStandardFeed). Если нужно выполнить перемещение инструмента в точку, отличную от рассчитанной циклом, необходимо изменить значение возвращаемого методом OnMove параметра Point. Если перемещение в рассчитанную циклом точку выполнять не нужно, тогда внутри реализации метода OnMove нужно изменить значение параметра Handled на Истина. |
AfterMove |
Метод будет выполнен после каждого перемещения инструмента при формировании траектории цикла, даже если перемещение было отменено в OnMove. Входные параметры: MoveType (TNCDrillingCycleMoveType) - тип перемещения, описание см. выше; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи. Выходных параметров нет. |
При необходимости добавления тех или иных команд после выполнением перемещения, их нужно добавить в реализацию метода. Например, если есть необходимость добавить выстой после высверливания отверстия, сделать это можно добавив в реализацию метода AfterMove вызов INCT_CLData.AddDelay с соответствующими параметрами по условию MoveType = mtMoveToBottomLevel. |