Цикл сверления

INCT_DrillingCycleFormer - интерфейс SprutCAM, который реализует функциональность по упрощению формирования перемещений в циклах сверления. Объект, реализующий этот интерфейс возвращает функция INCT_CLData.CreateDrillingCycleFormer, INCT_GeomCLData.CreateDrillingCycleFormer при её выполнении с любым из параметров: dctSimple, dctWithShift, dctPeck.

images/download/attachments/95428003/DrillingCycleFormer.png

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

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

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

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

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

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

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

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


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

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

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

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

  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. Сформировать команды движения инструмента по траектории цикла (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.
ptYZ - плоскость YZ, сверление отверстия производится вдоль оси X.
ptZX - плоскость ZX, сверление отверстия производится вдоль оси Y.

Выходных параметров нет.

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). Если координаты точки центра отверстия заданы в абсолютных значениях, то:

  • для количества повторений = 0 будет произведено только позиционирование инструмента над центром отверстия;

  • для количества повторений = 1 будет выполнена одна итерация цикла;

  • для количества повторений > 1 цикл повторится заданное количество раз: если координаты точки центра отверстия заданы в абсолютных значениях - на одном месте; если координаты точки центра отверстия заданы в относительных значениях - на каждой итерации будет производиться сдвиг на значение, заданное в Set_HoleCenter, относительно точки, в которой завершилась предыдущая итерация.

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-х этапов:

  1. Выполняется метод INCT_DrillingCycleEvents.BeforeMove. В качестве параметров методу передаются заданные циклом: тип перемещения, координаты точки перемещения, тип подачи.

  2. Выполняется метод INCT_DrillingCycleEvents.OnMove. В качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, признак выполнения перемещения. Все параметры, кроме типа перемещения в реализации метода могут быть изменены. В зависимости от заданного в OnMove признака, производится выполнение перемещения инструмента в заданную точку с заданной подачей, или перемещение не производится.

  3. Выполняется метод INCT_DrillingCycleEvents.AfterMove. В качестве параметров методу передаются: тип перемещения, координаты точки перемещения, тип подачи, возвращённые методом OnMove.


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

Метод

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

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

BeforeMove

Метод будет выполнен перед каждым перемещением инструмента при формировании траектории цикла.

Входные параметры: MoveType (TNCDrillingCycleMoveType) - тип перемещения, описание см. ниже; Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи.

mtMoveToNextHole - перемещение к первому или следующему отверстию;
mtMoveToRapidLevel - перемещение к уровню ускоренного перемещения;
mtMoveToBottomLevel - перемещение к дну отверстия;
mtReturnToRapidLevel - возврат к уровню ускоренного перемещения;
mtReturnToTopLevel - возврат к уровню отхода/возврата;
mtPeck* - используются при формировании цикла с ломкой стружки.

Выходных параметров нет.

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

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