Цикл фрезерования резьбы

INCT_ThreadMillingCycleFormer - интерфейс CAM системы, который реализует функциональность по упрощению формирования перемещений цикла фрезерования резьбы. Объект, реализующий этот интерфейс, возвращает функция INCT_CLData.CreateMillingCycleFormer, при её выполнении с параметром mctThreadMilling.

images/download/attachments/137013675/milling.png

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

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

  1. Подвод инструмента на начальный уровень на ускоренной подаче.

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

  3. Подвод по дуге или хелику к точке начала фрезерования на рабочей подаче (перебег).

  4. Фрезерование резьбы с заданными параметрами (центр, диаметр, шаг) до уровня окончания фрезерования.

  5. Отвод по дуге или хелику на рабочей подаче на уровне перебега при отводе (перебег).

  6. Возврат на начальный уровен на ускоренной подаче.

Примеры таких циклов, Sinumerik: CYCLE90.

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


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

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

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

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

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

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

  4. Задать рабочую подачу (Set_Feedrate).

  5. Задать тип резьбы (Set_ThreadType).

  6. Задать направление резьбы (Set_ThreadDirection).

  7. Задать шаг резьбы (Get_ThreadStep).

  8. Задать диаметр резьбы (Set_Diameter).

  9. Задать точку центра резьбы (Set_CenterPoint).

  10. Задать уровень подвода (Set_TopLevel)

  11. Задать уровень безопасной плоскости (Set_RapidLevel).

  12. Задать уровень окончания фрезерования (Set_BottomLevel).

  13. Задать уровень перебега при подводе (Set_TravelInOvershoot).

  14. Задать уровень перебега при отводе (Set_TravelOutOvershoot).

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

  16. Сформировать команды движения инструмента по траектории цикла (MakeWorkpath).


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

Метод

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

Set_AxisIndexes

Метод устанавливает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла.

Входные параметры: Value (TNCDCAxisIndexes) - X (целое число) - индекс оси X, Y (целое число) - индекс оси Y, Z (целое число) - индекс оси Z.

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

Get_AxisIndexes

Функция возвращает индексы осей X, Y, Z в которых будут производиться перемещения при формировании траектории цикла (TNCDCAxisIndexes).

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

Set_Plane

Метод устанавливает текущую плоскость.

Входной параметр: Value (TNCPlaneType) - текущая плоскость.

ptXY - плоскость XY, сверление отверстия производится вдоль оси Z.
ptYZ - плоскость YZ, сверление отверстия производится вдоль оси X.
ptZX - плоскость ZX, сверление отверстия производится вдоль оси Y.

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

Get_Plane

Функция возвращает текущую плоскость (TNCPlaneType).

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

Set_ThreadType

Метод устанавливает тип резьбы.

Входной параметр: Value (TNCMillingThreadType) - тип резьбы.

mttInternal - внутренняя

mttExternal - наружная

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

Get_ThreadType

Функция возвращает тип резьбы.

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

Set_ThreadDirection

Метод устанавливает направление резьбы.

Входной параметр: Value (TNCCircularMode) - направление резьбы.

cmCW - по часовой стрелке

cmCCW - против часовой стрелки

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

Get_ThreadDirection

Функция возвращает значение направления резьбы.

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

Set_ThreadStep

Метод устанавливает значение шага резьбы.

Входной параметр: Value (вещественное число) - значение шага резьбы.

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

Get_ThreadStep

Функция возвращает значение шага резьбы.

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

Set_Diameter

Метод устанавливает значение диаметра резьбы.

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

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

Get_Diameter

Функция возвращает значение диаметра резьбы.

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

Set_CenterPoint

Метод устанавливает точку центра резьбы.

Входной параметр: Value (TNC2DPoint) - точка центра резьбы.

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

Get_CenterPoint

Функция возвращает точку центра резьбы (TNC2DPoint).

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

Set_TopLevel

Метод устанавливает уровень подвода.

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

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

Get_TopLevel

Функция возвращает значение уровня подвода.

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

Set_RapidLevel

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

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

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

Get_RapidLevel

Функция возвращает значение уровня безопасной плоскости.

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

Set_BottomLevel

Метод устанавливает значение уровня окончания фрезерования.

Входной параметр: Value (вещественное число) - значение уровня окончания фрезерования.

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

Get_BottomLevel

Функция возвращает значение уровня окончания фрезерования.

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

Set_TravelInOvershoot

Метод устанавливает уровень перебега при подводе.

Входной параметр: Value (вещественное число) - уровень перебега при подводе.

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

Get_TravelInOvershoot

Функция возвращает уровень перебега при подводе.

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

Set_TravelOutOvershoot

Метод устанавливает уровень перебега при отводе.

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

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

Get_TravelOutOvershoot

Функция возвращает уровень перебега при отводе.

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

Set_Feedrate

Метод устанавливает значение рабочей подачи.

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

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

Get_Feedrate

Функция возвращает значение рабочей подачи.

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

Set_MPM

Метод устанавливает тип рабочей подачи.

Входной параметр: Value (логическое) - тип рабочей подачи. Истина - мм/мин, Ложь - об/мин.

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

Get_MPM

Функция возвращает тип рабочей подачи.

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

Set_Events

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

Входной параметр: Value (INCT_MillingCycleEvents) - объект, реализующий события. Подробное описание ниже.

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

Get_Events

Функция возвращает объект, реализующий события, связанный с формирователем цикла (INCT_MillingCycleEvents).

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

MakeWorkpath

Метод формирует траекторию цикла по заданным параметрам.


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

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

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

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

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


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

Метод

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

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

BeforeMove

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

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

mmMoveToTopLevel - перемещение к стартовой точке на уровне TopLevel
mmMoveToRapidLevel - перемещение к уровню начала подвода
mmTravelInMovement - подвод к резьбе по дуге
mmThreadMilling - нарезание резьбы
mmTravelOutMovement - отвод от резьбы к центру по дуге
mmReturnToTopLevel - возврат на TopLevel

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

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

Например, если есть необходимость включить систему охлаждения станка перед точением канавки, сделать это можно добавив в реализацию метода BeforeMove вызов INCT_CLData.AddCoolant с соответствующими параметрами по условию MoveType = mmMoveToTopLevel.

OnMove

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

Входные параметры: MoveType (TNCMillingCycleMoveType) - тип перемещения, описание см. выше;

Входные и выходные параметры: Point (TNC3DPoint) - координаты точки перемещения; Feed (TNCFeedType) - тип подачи; Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено).

Если после вызова OnMove параметр Handled принимает значение Истина, это значит, что перемещение было выполнено внутри реализации метода OnMove и формирователь цикла не добавляет команду перемещения в траекторию движения инструмента.

Если после вызова OnMove параметр Handled принимает значение Ложь, формирователь считает, что перемещение не было выполнено внутри реализации метода OnMove и добавляет в траекторию движения инструмента команду перемещения в точку Point с типом подачи Feed.

При необходимости переопределения значений точки перемещения или подачи, либо для отказа от перемещения (пропуска).

Например, если нужно изменить тип подачи на ускоренную, при возврате на начальный уровень, после фрезерования, то в реализации метода OnMove необходимо изменить значение возвращаемого методом параметра Feed на ffRapid по условию MoveType = mmReturnToTopLevel (тип подачи описан в этой статье, см. OutStandardFeed).

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

Если перемещение в рассчитанную циклом точку выполнять не нужно, тогда внутри реализации метода OnMove нужно изменить значение параметра Handled на Истина.

OnArc

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

Входные параметры: MoveType (TNCMillingCycleMoveType) - тип перемещения, описание см. выше;

Входные и выходные параметры: Center, Point (TNC3DPoint) - координаты центра и точки перемещения; Radius (вещественное число) - радиус дуги, Feed (TNCFeedType) - тип подачи; Handled (логическое) - признак выполнения перемещения внутри реализации (Истина - перемещение выполнено, Ложь - перемещение не выполнено).

Если после вызова OnArc параметр Handled принимает значение Истина, это значит, что перемещение было выполнено внутри реализации метода OnArc и формирователь цикла не добавляет команду перемещения в траекторию движения инструмента.

Если после вызова OnArc параметр Handled принимает значение Ложь, формирователь считает, что перемещение не было выполнено внутри реализации метода OnArc и добавляет в траекторию движения инструмента команду перемещения по дуге в точку Point с типом подачи Feed.

При необходимости переопределения значений точки перемещения или подачи, либо для отказа от перемещения (пропуска).

AfterMove

Метод будет выполнен после каждого перемещения инструмента при формировании траектории цикла, даже если перемещение было отменено в OnMove/OnArc.

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

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

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