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

    Show / Hide Table of Contents

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

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

    milling

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

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

    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. Задать шаг резьбы (Set_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 Функция возвращает тип резьбы (TNCMillingThreadType).
    Входных параметров нет.
    Set_ThreadDirection Метод устанавливает направление резьбы.
    Входной параметр: Value (TNCCircularMode) - направление резьбы.
    cmCW - по часовой стрелке
    cmCCW - против часовой стрелки
    Выходных параметров нет.
    Get_ThreadDirection Функция возвращает значение направления резьбы (TNCCircularMode).
    Входных параметров нет.
    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) - тип подачи.
    Выходных параметров нет.
    При необходимости добавления тех или иных команд после выполнения перемещения, их нужно добавить в реализацию метода.
    In this article